\documentclass[letterpaper]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{Linux ADSM Mini-Howto}
\author{§@ªÌ: by Thomas K\"onig, {\ttfamily Thomas.Koenig@ciw.uni-karlsruhe.de}
Ä¶ªÌ: Mile Yeh {\ttfamily mile@mail.timenet.net}}
\date{v, 15 January 1997}
\abstract{³o¤å¥ó´y­z¦p¦ó¦b Linux/i386 ¤§¤¤°w¹ï°Ó·~©Êªº ADSM ³Æ¥÷¨t²Î¥h¦w¸Ë¨Ï¥Î¤@­Ó«È¤áºÝ.}


\begin{document}
\maketitle
\tableofcontents

\section{¤¶²Ð}

ADSM ¬O¤@­Ó¥Ñ IBM ½æ¥X¥B¥Hºô¸ô¬°°òÂ¦ªº³Æ¥÷¨t²Î,¥¦¦b¦h¼Æ²ÕÂ´¤¤¨Ï¥Î
¨ä¤¤¥]²[¦³³\¦h¦U¦¡¦U¼Ëªº¨t²Î (¤£¦Pªº«~µPªº UNIX,µøµ¡¨t¦C, Novell, Mac,µøµ¡ NT).
¤£©¯ªº,¦b³o­Ó®É­Ô¨S¦³­ì¥Íªº Linux ª©¥».

§A¥²¶·­n¨Ï¥Î SCO ¤G¶i¦ì¤¸ÀÉ,¦w¸Ë iBCS2-emulator
¨Ó°õ¦æ ADSM.³o¥÷´y­z¬O°w¹ï ADSM v2r1.

·í§Ú¼gªº¦P®É,³o¬O§Ú°ß¤@ªºµoÄ±¨ì¥i¥H
»P i386ª©¥»ªº Linux ¤@°_¤u§@ªºª©¥».


\section{¦w¸Ë iBCS ¼Ò²Õ}

iBCS2¼Ò²Õ¬O¥i¥H±q¦¹³B¨ú±o
\onlynameurl{ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2}. ¦pªG§A¬O°õ¦æ®Ö¤ß
ª©¥» 1.2.13,¨ú±o ¸Ñ¶}¥¦³o¹B¥Î
{\ttfamily ibcs-1.2-950721.tar.gz}, ¸Ñ¶}¥¦³o¹B¥Î
{\ttfamily ibcs-1.2-950808.patch1}  {\ttfamily ibcs-1.2-950828.patch2}.
§A¯à°÷µM«áÁä¤J {\tt\char`\"}{\ttfamily make}{\tt\char`\"}µM«á¨Ï¥Î
{\tt\char`\"}{\ttfamily insmod}{\tt\char`\"} ¦w¸Ë iBCS modlue ;.

°w¹ï¤@­Ó 2.0®Ö¤ßª©¥»,¨ú±o {\ttfamily ibcs-2.0-960610.tar.gz},¸Ñ¶}¥¦©ñ¦b¤@­Ó
¦X¾Aªº©ñ¸m,§ïÅÜ¥Ø¿ý¨ì¦¹¥Ø¿ý¤¤,¨Ï¥Î¤U¦C­×¸ÉÀÉ:
\begin{verbatim}

--- iBCSemul/ipc.c.orig Wed Jan 15 21:32:15 1997
+++ iBCSemul/ipc.c      Wed Jan 15 21:32:31 1997
@@ -212,7 +212,7 @@
        switch (command) {
                case U_SEMCTL:
                        cmd = ibcs_sem_trans(arg3);
-                       arg4 = (union semun *)get_syscall_parameter (regs, 4);
+                       arg4 = (union semun *)(((unsigned long *) regs->esp) + (5));
                        is_p = (struct ibcs_semid_ds *)get_fs_long(arg4->buf);
 #ifdef IBCS_TRACE
                        if ((ibcs_trace & TRACE_API) || ibcs_func_p->trace)
\end{verbatim}

µM«á,½Æ»s {\ttfamily CONFIG.i386}¨ì {\ttfamily CONFIG},Áä¤J {\ttfamily make}.

¦pªG§A¨S¦³¤w¦³³o¨Ç³]³Æ,¨ÌµÛ¤U¦C°õ¦æ«Ø¥ß¥²­nªº³]³ÆÀÉ®×

\begin{verbatim}
# cd /dev
# ln -s null XOR
# ln -s null X0R
# mknod socksys c 30 0
# mknod spx c 30 1
\end{verbatim}





\section{¦w¸Ë ADSM«È¤áºÝ}

SCO¤G¶i¦ì¤¸ÀÉªº¬O¥Ñ¤T­Ó tar ÀÉ®×´£¨Ñªº,©ÎªÌ¥ÑºÏºÐ´£¨Ñ.§ïÅÜ¸ô®|¨ì
®Ú¥Ø¿ý,®Ú¾Ú§Aªº¬Fµ¦³]©w§Aªº umask ,µM«á
¦b¤@­Ó¥Ø¿ý¸Ñ¶}¥L­Ì (Ä´¦p ®Ú¥Ø¿ý).¦b¥Ø¿ý /tmp,§A·|
§ä¨ì¤@­Óµ{§ÇÀÉ;°õ¦æ¥¦

³o®É§A­n¥²¶·¤â°Ê½s¿è {\ttfamily /usr/adsm/dsm.sys}
{\ttfamily /usr/adsm/dsm.opt}.
¦b {\ttfamily dsm.sys},­«­nªº¦æ¼Æ¸Ô²Ó»¡©ú¦p¤U:
\begin{description}
\item[Servername] \mbox{}

The name of the server(¦øªA¾¹¦WºÙ)

\item[TCPServeraddress] \mbox{}

¦øªA¾¹ DNS ¥þ¦W

\item[NODename] \mbox{}

§Aªº¦Û¤vªº¥D¾÷¦W

\end{description}

In {\ttfamily dsm.opt},§A¥²¶·­n¸Ô²Ó»¡©ú
\begin{description}
\item[Server] \mbox{}

¦p¦P«e­±ªº´y­z

\item[Followsymbolic] \mbox{}

­n©Î¤£­n¸òÀH²Å¸¹³s±µÂI (¤@¯ë¨Ó»¡¡A¤£¬O¤@­Ó¦n¥D·N)

\item[SUbdir] \mbox{}

¤ä´©¤l¥Ø¿ý (§A³q±`»Ý­n¥¦)

\item[domain] \mbox{}

ÀÉ®×¨t²Î³Æ¥÷

\end{description}


³o®É§A­n¥²¶·³Ð³y¤@­Ó SCO-¬Û®eªº {\ttfamily /etc/mnttab}
±q§Aªº {\ttfamily /etc/fstab}.§A¥i¥H¨Ï¥Î¤U¦C¦U¶µ Perl µ{§ÇÀÉ,
{\ttfamily fstab2mnttab},¹ï©ó³o.
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
#!/usr/bin/perl

$mnttab_struct = "a32 a32 I L";
open(MTAB, "/etc/mtab") || die "Cannot open /etc/mtab: $!\n";
open(MNTTAB, ">/etc/mnttab") || die "Cannot open /etc/mnttab: $!\n";

while(<MTAB>) {
    next if /pid/;
    chop;
    /^(\S*)\s(\S*)\s(\S*)\s.*$/;
    $device = $1;
    $mountpt = $2;
    $fstype = $3;
    if($fstype ne "nfs" && $fstype ne "proc") {
        $mnttab_rec =
            pack($mnttab_struct, $device, $mountpt, 0x9d2f, time());
        syswrite(MNTTAB, $mnttab_rec, 72);
        print "Made entry for: $device $mountpt $fstype\n";
    }
}

close(MNTTAB);
exit 0;
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}

°w¹ï³o¨Ç«È¤áºÝ§A¤£»Ý­n¦w¸Ë¥ô¦óªº¦@¨Éµ{¦¡®w;
¨C¥ó¨Æ¬OÃì±µ¨ì©T©wµ{§Ç®w.




\section{°õ¦æ«È¤áºÝ}

¦³¨âºØ«È¤áºÝ, {\ttfamily dsm},¤@ºØ¬O X11¬É­±, 
{\ttfamily dsmc},¤@­Ó©R¥O¦æ¬É­±.§Aªº¹q¸£¤¤¤ß·|§i¶D§A¦p¦ó¾Þ§@
¥¦.¤@¨Ç°_°Ê®Éªº°_°Êµ{§ÇÀÉ,¨Ò¦p
\begin{verbatim}
dsmc schedule -quiet 2>&1 >/dev/null &
\end{verbatim}


¥i¯à±N¬O»Ý­nªº


\section{¤wª¾ªº°ÝÃD}

¤£©¯ªº, SCO ¥u¯à³B²z¤ñ 8 ­Ó¦r¤¸ÁÙµuªº¥D¾÷¦W
.¦pªG§Aªº¥D¾÷¦W§óªø,©ÎªÌ¬O¥Î Internet ¥þ¦W,§A¤]³\
»Ý­n¦b {\ttfamily NODename}line in
{\ttfamily /usr/adsm/dsm.sys}¦æ¸Ô²Ó»¡©ú§Aªº¾÷¾¹¦W..

¦pªG§A¨Ï¥Î DISPLAY ÅÜ¼Æ,§A­n¥²¶·´£¨Ñ
¦øªA¾¹ DNS ¥þ¦W (Á|¨Ò. {\ttfamily DISPLAY=host.full.do.main:0} instead of
{\ttfamily DISPLAY=host:0}).

\end{document}
