Linux ADSM Mini-Howto by Thomas König, Thomas.Koenig@ciw.uni-karlsruhe.de v, 15 January 1997 °ø¹®Çå rain@physix.chonbuk.ac.kr 2000³â 3¿ù 26ÀÏ ÀÌ ¹®¼­´Â Linux/i386¿¡¼­ ADSM ¹é¾÷ ½Ã½ºÅÛÀ» »ç¿ëÇϱâ À§ÇÑ Å¬¶óÀ̾ð Æ® ÇÁ·Î±×·¥ÀÇ ¼³Ä¡¿Í »ç¿ë¿¡ °üÇؼ­ ´Ù·é´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. ¼Ò°³ 2. iBCS ¸ðµâ ¼³Ä¡ 3. ADSM Ŭ¶óÀ̾ðÆ® ¼³Ä¡Çϱâ 4. Ŭ¶óÀ̾ðÆ® ½ÇÇàÇϱâ 5. ¾Ë·ÁÁø ¹®Á¦Á¡µé ______________________________________________________________________ 1. ¼Ò°³ ADSMÀº ¸¹Àº ´Üü¿¡¼­ »ç¿ëµÇ°í ÀÖ´Â IBM¿¡¼­ ÆǸÅÇÏ´Â ³×Æ®¿öÅ© ±âº»ÀÇ ¹é¾÷ ½Ã½º ÅÛÀÌ´Ù. ¸Å¿ì ´Ù¾çÇÑ ½Ã½ºÅÛ(¿©·¯ Á¾·ùÀÇ À¯´Ð½º ºê·£µå, À©µµ¿ì, ³ëº§, ¸Æ, À©µµ¿ì NT)À» Áö¿øÇÑ´Ù. ºÒÇàÇÏ°Ôµµ À̱ÛÀ» ¾²°í ÀÖ´Â ½ÃÁ¡¿¡, °íÀ¯ÀÇ ¸®´ª½º ¹öÀüÀÌ Á¸Àç ÇÏÁö ¾Ê´Â´Ù. ¿©·¯ºÐÀÌ SCO ¹ÙÀ̳ʸ®¸¦ »ç¿ëÇØ¾ß Çϸç, ADSMÀ» ½ÇÇà½ÃÅ°±â À§ÇØ iBCS2-¿¡¹Ä·¹ÀÌÅÍ ¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ¿©±â¼­´Â ADSM v2r1À» ´Ù·é´Ù. À̱ÛÀ» ¾²°í ÀÖ´Â ÇöÀç, ³­ ¸®´ª½ºÀÇ i386¹öÀü¿¡¼­ ÀÛ¾÷À» ÇÏ°í ÀÖ´Ù. 2. iBCS ¸ðµâ ¼³Ä¡ iBCS2 ¸ðµâÀº ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2 ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¸®´ª½º Ä¿³Î 1.2.13À» »ç¿ëÇÏ°í ÀÖ´Ù¸é ibcs-1.2-950721.tar.gz¸¦ ¹Þ¾Æ¿Í ¾ÐÃàÀ» Ç®°í ibcs-1.2-950808.patch¿Í ibcs-1.2-950828.patch2·Î ÆÐÄ¡¸¦ Àû¿ëÇØ¾ß ÇÑ ´Ù. "make"¸¦ ÀÔ·ÂÇÑ ´ÙÀ½ "insmod" ¸í·ÉÀ¸·Î iBCS ¸ðµâÀ» ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù. 2.0Ä¿³Î ¹öÀüÀ» »ç¿ëÇÑ ´Ù¸é, ibcs-2.0-960610.tar.gz¸¦ ¹Þ¾Æ¼­ Àû´çÇÑ µð·ºÅä ¸®¿¡ ¾ÐÃàÀ» Ç®°í µð·ºÅ丮·Î À̵¿ÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÆÐÄ¡¸¦ Àû¿ë½ÃÅ°¸é µÈ´Ù: --- 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) ±×·± ´ÙÀ½, CONFIG.i386À» CONFIG·Î º¹»çÇÏ°í make¸¦ ÃĶó. ¸¸¾à ¿©·¯ºÐÀÌ ÀÌ¹Ì ±× °úÁ¤À» °ÅÄ¡Áö ¾Ê¾Ò´Ù¸é, ½ÇÇàÁß¿¡ ÇÊ¿äÇÑ µð¹ÙÀ̽º ÆÄÀÏÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. # cd /dev # ln -s null XOR # ln -s null X0R # mknod socksys c 30 0 # mknod spx c 30 1 3. ADSM Ŭ¶óÀ̾ðÆ® ¼³Ä¡Çϱâ SCO ¹ÙÀ̳ʸ®´Â ¼¼ °³ÀÇ tar ÆÄÀÏ ¶Ç´Â µð½ºÅ©¸¦ Á¦°øÇÑ´Ù. root µð·ºÅ丮·Î ¹Ù²Ù°í ¿© ·¯ºÐÀÇ Á¤Ã¥¿¡ µû¶ó ¿©·¯ºÐÀÇ umask¸¦ ¼³Á¤ÇÏ°í ±× ÆÄÀÏÀÇ ¾ÐÃàÀ» Ç®¾î¶ó(root ±ÇÇÑÀ¸ ·Î). /tmp µð·ºÅ丮¿¡¼­ ¼³Ä¡ ½ºÅ©¸³Æ®¸¦ ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù; ±×°ÍÀ» ½ÇÇà½ÃÄѶó. /usr/adsm/dsm.sys¿Í /usr/adsm/dsm.opt¸¦ ¼Õ¼ö ÆíÁýÇØ¾ß ÇÒ °ÍÀÌ´Ù. dsm.sys¿¡¼­ ÁöÁ¤ÇؾßÇÒ Áß¿äÇÑ ¶óÀÎÀº ´ÙÀ½°ú °°´Ù: Servername ¼­¹öÀÇ À̸§ TCPServeraddress ¼­¹ö¿¡ ºÎ¿©µÈ È£½ºÆ®¸í NODename ¿©·¯ºÐ¸¸ÀÇ È£½ºÆ®¸í dsm.opt¿¡¼­ ¿©·¯ºÐÀº ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. Server Àü¿¡ Á¤ÇØÁÖ¾ú´ø µ¥·Î Followsymbolic ½Éº¼¸¯ ¸µÅ©¸¦ ÇÒ °ÍÀÎÁö, ¸» °ÍÀÎÁö(º¸Åë ÁÁÀº »ý°¢Àº ¾Æ´Ô) SUbdir ¹é¾÷ÇÒ ÇÏÀ§ µð·ºÅ丮(¿©·¯ºÐÀÌ ¿øÇÏ´Â °÷) /etc/fstab¿¡¼­ ºÎÅÍ SCO-ȣȯ /etc/mnttabÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. ´ÙÀ½ °ú °°Àº ÆÞ ½ºÅ©¸³Æ®, fstab2mnttabÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ______________________________________________________________________ #!/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() { 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 "Mode entry for: $device $mountpt $fstype\n"; } } close(MNTTAB); exit 0; ______________________________________________________________________ À̵é Ŭ¶óÀ̾ðÆ®¸¦ À§ÇØ °øÀ¯ ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾ø´Ù; ¸ðµÎ Á¤ÀûÀ¸·Î ¸µÅ© µÇ¾î ÀÖ´Ù. 4. Ŭ¶óÀ̾ðÆ® ½ÇÇàÇϱâ X11 ÀÎÅÍÆäÀ̽º¿¡¼­ÀÇ dsm°ú Ä¿¸Çµå¶óÀÎ ÀÎÅÍÆäÀ̽º¿¡¼­ÀÇ dsmc µÎ °¡Áö Ŭ ¶óÀ̾ðÆ®°¡ ÀÖ´Ù. ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ °ü¸®ÀÚ°¡ ¾î¶²°É ½ÇÇà½ÃÄÑ¾ß ÇÒÁö ¾Ë·ÁÁÙ °ÍÀÌ´Ù. ºÎÆýÿ¡ ¸î °¡Áö ½ºÅ©¸³Æ®°¡ ½ÃÀÛµÉ °ÍÀÌ°í ´ÙÀ½ ¿¹Á¦°¡ ÇÊ¿äÇÏ°Ô µÉ °ÍÀÌ´Ù. dsmc schedule -quiet 2>&1 >/dev/null & 5. ¾Ë·ÁÁø ¹®Á¦Á¡µé ºÒÇàÇÏ°Ôµµ, SCO´Â 8ÀÚ ÀÌ»óÀÇ È£½ºÆ®¸íÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ¸¸¾à ¿©·¯ºÐÀÇ È£½ºÆ®¸íÀÌ ´õ ±æ°Ô ÁöÁ¤µÇ¾î ÀÖ´Ù¸é /usr/adsm/dsm.sys¿¡¼­ NODenameÀÇ È£½ºÆ®¸íÀ» »õ·Î ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¿©·¯ºÐÀÌ ´Ù¾çÇÑ DISPLAY¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é ¿ÏÀüÇÑ È£½ºÆ®¸íÀ» ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÒ °Í ÀÌ´Ù(¹Ù²ã ¸»Çϸé DISPLAY=host:0´ë½Å¿¡ DISPLAY=host.full.do.main:0À¸·Î).