[ Home | Freetime works | FreeBSD | KFUG ]

Hurd: OS ¼³°èÀÇ »õ·Î¿î Àü·«À» ÇâÇÏ¿©


ÀÌ ±â»ç´Â ¿Ö FSF°¡ Àüü GNU½Ã½ºÅÛÀÇ ±âÃʰ¡ µÉ Hurd¶ó´Â À̸§ÀÇ »õ ¿î¿µÃ¼Á¦¸¦ °³¹ßÇϰí ÀÖ´ÂÁö¿¡ ´ëÇÑ °ÍÀÌ´Ù. Hurd´Â CMUÀÇ Mach 3.0 Ä¿³Î À§¿¡ ¸¸µé¾îÁ³°í, MachÀÇ °¡»ó¸Þ¸ð¸® °ü¸®¿Í ¸Þ½ÃÁö Àü´Þ ±â´ÉÀ» »ç¿ëÇÑ´Ù. GNU C¶óÀ̺귯¸®´Â À¯´Ð½º ½Ã½ºÅÛ ÄÝ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϰí, ½º½º·Î Á¦°øÇÒ ¼ö ¾ø´Â ¼­ºñ½º¿¡ ´ëÇØ Hurd¸¦ ºÎ¸¥´Ù. HurdÀÇ ¼³°è°ú ±¸ÇöÀº Richard Stallman, Roland McGrath, Jan Brittenson°ú ´Ù¸¥ »ç¶÷µé°ú ÇÔ²² Michael BushnellÀÌ À̲ø°í ÀÖ´Ù.


Á¦ 1 ºÎ : OS ¼³°è·ÎÀÇ ´õ À¯¿ëÇÑ Á¢±Ù

OSÀÇ ±âº»ÀûÀÎ ¸ñÀûÀº ¿©·¯ ÇÁ·Î±×·¥µéÀÌ ÇϳªÀÇ ÄÄÇ»Å͸¦ È¿°úÀûÀÌ°í »ý»êÀûÀ¸·Î °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. À̰ÍÀº ¸Þ¸ð¸® º¸È£, ¼±Á¡Çü ½ºÄÉÁ층À» ÇÏ´Â ½ÃºÐÇÒ, I/OÁÖº¯±â±â¿¡ ´ëÇÑ µ¿µîÇÑ ¾ï¼¼½º, ±×¸®°í ´Ù¸¥ ¼­ºñ½º¸¦ ¿ä±¸ÇÑ´Ù. Ãß°¡ÀûÀ¸·Î, OS´Â ¿©·¯ »ç¶÷µéÀÌ ÇÑ ÄÄÇ»Å͸¦ °øÀ¯ÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. ÀÌ °æ¿ì È¿À²¼ºÀº »ç¿ëÀÚ¸¦ ¼­·Î ¹æÇØÇÏÁö ¸øÇϵµ·Ï Çϰí, ±×µéÀ» »çÀü Á¤¸® ¾øÀÌ °øÀ¯ÇÒ ¼ö ÀÖ°Ô Çϰí, ¶Ç´Â ¹°¸®Àû ÀåÄ¡ÀÇ ¾ï¼¼½º¸¦ Á¶Á¤ÇÏ´Â ¼­ºñ½º¸¦ ¿ä±¸ÇÑ´Ù.

¿À´Ã³¯ÀÇ ÄÄÇ»ÅÍ ½Ã½ºÅÛ¿¡¼­, ÇÁ·Î±×·¡¸Ó´Â ÀÌ ¸ñÀûÀ» Ä¿³ÎÀ̶ó ºÒ¸®´Â °Å´ëÇÑ ÇÁ·Î±×·¥À» ÅëÇØ ±¸ÇöÇÑ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¸ðµç »ç¿ëÀÚ ÇÁ·Î±×·¥¿¡¼­ ¾ï¼¼½º °¡´ÉÇØ¾ß Çϱ⠶§¹®¿¡, ½Ã½ºÅÛ¿¡ ±â´ÉÀ» ÷°¡ÇÏ´Â °ÍÀº ÀÚ¿¬½º·¯¿î ÀÏÀÌ´Ù. ÇÁ·Î¼¼½º »óÈ£ÀÛ¿ëÀ» À§ÇÑ À¯ÀÏÇÑ ¸ðµ¨Àº Ä¿³ÎÀÌ Á¦°øÇϴ Ưº°ÇÏ°í °³ÀÎÀûÀÎ ¼­ºñ½ºÀ̱⠶§¹®¿¡, ¾Æ¹«µµ ±â´ÉÀ» ÷°¡Çϱâ À§ÇØ Ä¿³Î ÀÌ¿ÜÀÇ ´Ù¸¥ Àå¼Ò¸¦ ¸¸µéÁö ¸øÇÑ´Ù. ½Ã°£ÀÌ È带¼ö·Ï, ´õ ¸¹Àº °ÍµéÀÌ Ä¿³Î¿¡ ÷°¡µÈ´Ù.

ÀüÅëÀûÀÎ ½Ã½ºÅÛÀº »ç¿ëÀÚ°¡ ½Ã½ºÅÛÀÇ °ÅÀÇ ¸ðµÎ¸¦ ÀÌÇØÇϰí, ½Ã½ºÅÛ ¾È¿¡¼­ Ư±Ç »óȲÀ» °¡Áú ¼ö ÀÖ¾î¾ß¸¸ ±×¿¡°Ô ºÎ¼ÓÀ» Ä¿³Î¿¡ ´õÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. »õ ºÎ¼ÓÀ» ´õÇÏ´Â ÀÏÀº ´Ù¸¥ ÇÁ·Î±×·¥À» Å×½ºÆ®ÇÏ´Â °Í º¸´Ù ´õ ¸¹Àº °íÅ뽺·¯¿î ÆíÁý-ÄÄÆÄÀÏ-µð¹ö±×ÀÇ »çÀÌŬÀ» ¿ä±¸ÇÑ´Ù. ÀÌ´Â ´Ù¸¥»ç¶÷ÀÌ ½Ã½ºÅÛÀ» »ç¿ëÇϰí ÀÖ´Â µ¿¾ÈÀº ÇÒ ¼ö ¾ø´Ù. ¹ö±×´Â º¸Åë Ä¡¸íÀûÀÎ ½Ã½ºÅÛ ºØ±«¸¦ À¯¹ßÇϸç, ³ª¾Æ°¡ ´Ù¸¥»ç¶÷ÀÌ ½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÑ´Ù. Àüü Ä¿³ÎÀº º¸Åë ÆäÀÌ¡ÀÌ ºÒ°¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Ù(ÆäÀÌ¡ °¡´ÉÇÑ Ä¿³ÎÀÌ ÀÖÁö¸¸, ¾îµð°¡ ÆäÀÌ¡ °¡´ÉÇÑÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀº ¾î·Æ°í, ¿¡·¯°¡ ³ª±â ½±´Ù. º¸Åë ÀÌ ¸ÞÄ«´ÏÁòÀº ¾î·Æ°í, °£´ÜÇÑ È®ÀåÀ» ÇÒ ¶§ Á¶Â÷µµ ÀÌ ÀÏÀ» ¾î·Æ°Ô ÇÑ´Ù).

ÀÌ Á¦ÇÑ ¶§¹®¿¡, Àý´ëÀûÀ¸·Î ÇʼöÀûÀÌÁö ¾Ê´Â ÇÑ ÀüÅëÀûÀÎ Ä¿³ÎÀÇ º® µÚ¿¡ ÀûÀýÈ÷ ¼ÓÇÏ´Â ±â´ÉÀº º¸Åë ½Ã½ºÅÛ¿¡¼­ ºüÁ® ÀÖ´Ù. ¿­±â/Àбâ/¾²±â ÀÎÅÍÆäÀ̽º·Î ¾ÆÁÖ Àß ÇÒ ¼ö ÀÖ´Â ¸¹Àº ÁÁÀº »ý°¢µéÀÌ ÀüÅëÀû ½Ã½ºÅÛ ¾ÈÀÇ °íÀ¯ÇÑ µ¶Á¡ÀûÀÎ º»¼ºÀÇ ¹®Á¦ ¶§¹®¿¡ ±¸ÇöµÇÁö ¸øÇÑ´Ù. °Ô´Ù°¡ ÂüÀ»¼º ÀÖ°Ô »õ·Î¿î »ý°¢À» ±¸ÇöÇÏ·Á´Â »ç¶÷µé »çÀÌ¿¡¼­Á¶Â÷ ±×µéÀÇ ÄÄÇ»ÅÍÀÇ Æ¯±Ç À¯ÀúÀÎ »ç¶÷µé¸¸ ±×·¸°Ô Çϰí ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾îÀÇ ÀúÀÛ±Ç ½Ã½ºÅÛÀº ¶óÀ̼¾½º¹ÞÁö ¸øÇÑ »ç¶÷µéÀº Ä¿³ÎÀÇ ¼Ò½ºÁ¶Â÷ º¸´Â ÀÏÀ» ¹æÇØÇÏ¿© ±× ÁøÈëÅÁÀ» ´õ¿í ¾îµÓ°Ô Çϰí ÀÖ´Ù.

¸î¸îÀÇ ½Ã½ºÅÛÀº ÀÌ ¾î·Á¿òÀ» ÇØ¼ÒÇÏ·Á°í ³ë·ÂÇß´Ù. Smalltalk-80°ú Lisp¸Ó½ÅÀº ¸ðµÎ ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ÇÑ ¹æ¹ýÀ» Á¦½ÃÇÏ¿´´Ù. ½Ã½ºÅÛ ÄÚµå´Â »ç¿ëÀÚ ÄÚµå¿Í ´Ù¸£Áö ¾Ê´Ù. ¸ðµç ½Ã½ºÅÛÀº »ç¿ëÀÚ¿¡°Ô ¾ï¼¼½º °¡´ÉÇϸç, ÇÊ¿äÇÏ¸é ¹Ù²ð ¼ö ÀÖ´Ù. µÎ ½Ã½ºÅÛÀº ¾ÆÁÖ ½¬¿î ´ëü¿Í È®ÀåÀÇ ±â´ÉÀ» °¡Áø ¾ð¾î·Î ¸¸µé¾îÁ³°í, ºñ±³Àû ¼º°øÀûÀ̾ú´Ù. ±×·¯³ª ±×µé ¸ðµÎ´Â »ç¿ëÀÚ¿Í ÇÁ·Î±×·¥À» ¼­·Î °í¸³½ÃŰ´Â ÀÏ¿¡´Â ¾ÆÁÖ ¾ÈÁÁ¾Æ¼­ OS¼³°èÀÇ Áß¿äÇÑ ¸ñÀû Çϳª¿¡´Â ½ÇÆÐÇß´Ù.

Mach 3.0Ä¿³ÎÀ» »ç¿ëÇÏ´Â ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ®´Â OS¼³°èÀÇ ¹Ù²î±â ¾î·Á¿î °æÇâÀ» ±×´ë·Î °®°í ¿Ô´Ù. ³»ºÎ±¸Á¶´Â ´Ù¸£Áö¸¸, »ç¿ëÀÚ¿Í ½Ã½ºÅÛ »çÀÌ¿¡´Â °°Àº ¹«°Å¿î À庮ÀÌ ³²¾Æ ÀÖ´Ù. ´ÜÀϼ­¹ö(single-servers)µéÀº ¾ÆÁÖ ¸¸µé±â ½¬¿î ¹Ý¸é¿¡ µ¶Á¡Àû Ä¿³ÎÀÇ ¸ðµç °áÁ¡À» À̾î¹Þ¾Ò´Ù.

´ÙÁß¼­¹ö(multi-server)´Â Ä¿³Î ±â´ÉÀ» Àß Á¤ÀÇµÈ ÀÎÅÍÆäÀ̽ºÀÇ ³í¸®ÀûÀÎ ºí·ÏÀ¸·Î ³ª´«´Ù. Àß ¸¸µé¾îÁö¸é ±â´ÉÀ» ¹Ù²Ù°Å³ª ´õÇÏ´Â ÀÏÀº ½±´Ù. ±×·¡¼­ ´ëºÎºÐÀÇ ´ÙÁß ¼­¹ö ÇÁ·ÎÁ§Æ®´Â ´Ù¼Ò ³´´Ù. ´õ ¸¹Àº ½Ã½ºÅÛÀÇ ºÎºÐÀÌ ÆäÀÌ¡ °¡´ÉÇÏ°Ô µÈ´Ù. ½Ã½ºÅÛÀ» ´õ ½±°Ô µð¹ö±ëÇÒ ¼ö ÀÖ´Ù. »õ ½Ã½ºÅÛ ºÎ¼ÓÀ» ´Ù¸¥ »ç¿ëÀÚ¸¦ ¹æÇØÇÏÁö ¾Ê°í Å×½ºÆ®ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª »ç¿ëÀÚ¿Í ½Ã½ºÅÛ°£ÀÇ À庮Àº ¿©ÀüÈ÷ ³²´Â´Ù. ¾Æ¹«µµ Ư±Ç ¾øÀÌ´Â ÀÌ º®À» ³ÑÀ» ¼ö ¾ø´Ù.

GNU Hurd´Â ¹Ý´ë·Î ½Ã½ºÅÛ ÄÚµåÀÇ ¿µ¿ªÀÌ µÉ ¼ö ÀÖ´Â ÇÑ ÇÑÁ¤µÇ°Ô ¼³°èµÇ¾ú´Ù. ÇÁ·Î±×·¥Àº Ä¿³ÎÀÇ ¸î ¾ÈµÇ´Â ÇʼöÀûÀÎ ºÎºÐ°ú Åë½ÅÇÏ¸é µÈ´Ù. ½Ã½ºÅÛÀÇ ³ª¸ÓÁö´Â µ¿ÀûÀ¸·Î ´ëüÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚ´Â ±×µéÀÌ ¿øÇÏ´Â ½Ã½ºÅÛÀÇ ¾î¶² ºÎºÐÀÌ¶óµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ´Ù¸¥ »ç¶÷µéÀÌ ÀÌ ÀåÁ¡À» ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï ½º½º·Î ÀÌ ºÎ¼ÓÀ» ½±°Ô ´õÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚµéÀÌ ¼­·ÎÀÇ ¼­ºñ½º¸¦ ÀÌ¿ëÇϱâ À§ÇØ ¹Ì¸® »óÈ£ÀÌÇØ°¡ ÇÊ¿äÇÏÁöµµ ¾Ê°í, ÀÓÀÇ »ç¿ëÀÚÀÇ ¼­ºñ½º¸¦ ¹Ï¾î¼­ ½Ã½ºÅÛÀÌ Ãë¾àÇÏ°Ô µÇÁöµµ ¾Ê´Â´Ù.

À̸¦ À§ÇØ »ç¿ëÀÚ´Â ¼­·Î¿Í Åë½ÅÇϱâ À§ÇØ ½á¾ß ÇÒ ÀÌµé ½Ã½ºÅÛ ºÎ¼ÓÀ» µî·ÏÇÏ¸é µÈ´Ù. À̵é Áß Çϳª´Â »ç¿ëÀÚ¸¦ È®ÀÎÇÏ´Â ÀÏÀ» Ã¥ÀÓÁö¸ç, ÀÎÁõ ¼­¹ö(authentication server)¶ó°í ºÒ¸°´Ù. ¼­·Î¸¦ È®ÀÎÇϱâ À§ÇØ ÇÁ·Î±×·¥Àº °¢°¢Àº ±×µéÀÌ ¹Ï´Â ÀÎÁõ ¼­¹ö¿Í ÇÔ²² ¹Ýµå½Ã Åë½ÅÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ºÎ¼ÓÀº ÀüüÀûÀÎ °ü¸®¸¦ ´ã´çÇÏ´Â ¼öÆÛÀ¯Àú¿¡ ÀÇÇÑ ½Ã½ºÅÛ ºÎ¼ÓÀ» Á¦¾îÇϸç, ÀÌ´Â ÇÁ·Î¼¼½º ¼­¹ö(process server)¶ó ºÒ¸°´Ù.

¸ðµç »ç¿ëÀÚ ÇÁ·Î±×·¥ÀÌ ÇÁ·Î¼¼½º ¼­¹ö¿Í Åë½ÅÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÀÌ´Â ±× ¼­ºñ½º¸¦ ÇÊ¿ä·Î ÇÏ´Â ÇÁ·Î±×·¥¿¡¸¸ ÇÊ¿äÇÏ´Ù. ÀÌ¿Í ºñ½ÁÇÏ°Ô ÀÎÁõ ¼­¹ö´Â ¼­·Î°£ÀÇ È®ÀÎÀ» ÇÏ°í ½Í¾îÇÏ´Â ÇÁ·Î±×·¥¿¡¸¸ ÇÊ¿äÇÏ´Ù. ³²Àº ¼­ºñ½ºÀÇ ¾î¶² °Íµµ Ưº°ÇÑ »óŸ¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù: ³×Æ®¿÷ ±¸Çöµµ, ÆÄÀϽýºÅÛµµ, ÇÁ·Î±×·¥ ½ÇÇà ¸ÞÄ«´ÏÁòµµ(setuid¸¦ Æ÷ÇÔÇÑ), ÀÌ¿ÜÀÇ ¾î¶² °Íµµ.

º¯È¯±â(Translator) ¸ÞÄ«´ÏÁò

Hurd´Â ±âº»ÀûÀÎ »ç¿ëÀÚ¿Í ¼­¹ö°£ÀÇ Åë½Å¼ö´ÜÀ¸·Î MachÀÇ Æ÷Æ®¸¦ »ç¿ëÇÑ´Ù(MachÀÇ Æ÷Æ®´Â ¸Þ½ÃÁö¸¦ ÁÖ°í¹Þ´Â MachÀÇ ÀÛ¾÷(Task)ÀÇ Åë½Å ÁöÁ¡ÀÌ´Ù). °¢°¢ÀÇ Æ÷Æ®´Â Ưº°ÇÑ ÇÁ·ÎÅäÄÝÀÇ ÁýÇÕÀ» ±¸ÇöÇϰí, Æ÷Æ®¿¡ ÀÇÇØ Ç¥ÇöµÇ´Â ³»ÀçÇÑ °´Ã¼¿¡¼­ ÃëÇÏ´Â ÀÛ¾÷À» Ç¥ÇöÇÑ´Ù. Hurd¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ÇÁ·ÎÅäÄÝÀÇ ÀϺδ I/OÇÁ·ÎÅäÄÝÀ̰í, ÀϹÝÀûÀÎ I/OÀÛ¾÷¿¡ »ç¿ëÇÑ´Ù. ÆÄÀÏ ÇÁ·ÎÅäÄÝÀº ÆÄÀϽýºÅÛ ÀÛ¾÷¿¡ »ç¿ëÇÑ´Ù. ¼ÒÄÏ ÇÁ·ÎÅäÄÝÀº ³×Æ®¿÷ ÀÛ¾÷¿¡ »ç¿ëÇÑ´Ù. ÇÁ·Î¼¼½º ÇÁ·ÎÅäÄÝÀº ÇÁ·Î¼¼½º¸¦ ´Ù·ç±â À§ÇØ »ç¿ëÇÑ´Ù. ´Ù¸¥ °Íµéµµ ¸¶Âù°¡ÁöÀÌ´Ù.

´ëºÎºÐÀÇ ¼­¹ö´Â ÆÄÀÏÀ» ¿©´Â °ÍÀ¸·Î ¾ï¼¼½ºµÈ´Ù. º¸Åë ÆÄÀÏÀ» ¿­ ¶§¿¡´Â ÆÄÀÏÀ» °¡Áø µð·ºÅ丮¸¦ ¼ÒÀ¯ÇÏ´Â ¼­¹ö°¡ °¡Áö´Â ÆÄÀÏ¿¡ °ü·ÃµÈ(associated) Æ÷Æ®¸¦ ¿¬´Ù. ¿¹¸¦ µé¾î µð½ºÅ© ±â¹Ý ÆÄÀϽýºÅÛÀº º¸Åë °¢°¢ ¿­¸° ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ Ç¥ÇöÇÏ´Â ¸¹Àº Æ÷Æ®¸¦ Á¦°øÇÑ´Ù. ÆÄÀÏÀÌ ¿­¸®¸é, ¼­¹ö´Â »õ Æ÷Æ®¸¦ ¸¸µé°í, À̸¦ ÆÄÀϰú ¿¬°ü½Ã۰í, ºÎ¸¥ ÇÁ·Î±×·¥ÇÑÅ× Æ÷Æ®¸¦ µÇµ¹·Á ÁØ´Ù.

±×·¯³ª ÆÄÀÏÀº ±×¿Í °ü·ÃµÈ º¯È¯±â¸¦ °¡Áú ¼ö ÀÖ´Ù. ÀÌ °æ¿ì, ÆÄÀÏÀÇ ³»¿ëÀ» ÂüÁ¶ÇÏ´Â Æ÷Æ®¸¦ µ¹·ÁÁÖ´Â ´ë½Å ¼­¹ö´Â ±× ÆÄÀϰú ¿¬°üµÈ º¯È¯±â ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. ÀÌ º¯È¯±â¿¡´Â ÆÄÀÏÀÇ ½ÇÁ¦ ³»¿ëÀ» °¡¸®Å°´Â Æ÷Æ®°¡ ÁÖ¾îÁö°í, ¿­±â µ¿ÀÛÀ» ¿Ï·áÇϱâ À§ÇØ ¿ø·¡ »ç¿ëÀÚ¿¡°Ô Æ÷Æ®¸¦ µ¹·ÁÁÖµµ·Ï ¿äûÇÑ´Ù.

ÀÌ ¸ÞÄ«´ÏÁòÀº °¢ ¸¶¿îÆ® ÁöÁ¡°ú °ü·ÃµÈ º¯È¯±â¸¦ °®´Â ÀÏ¿¡ ÀÇÇØ mount¿¡¼­ »ç¿ëÇÑ´Ù. ÇÁ·Î±×·¥ÀÌ ¸¶¿îÆ® ÁöÁ¡À» ¿­¸é º¯È¯±â(ÀÌ °æ¿ì¿¡´Â ¸¶¿îÆ®µÈ ÆÄÀϽýºÅÛÀÇ µð½ºÅ© Çü½ÄÀ» ¾Æ´Â ÇÁ·Î±×·¥)°¡ ½ÇÇàµÇ°í Æ÷Æ®°¡ ÇÁ·Î±×·¥¿¡ µ¹·ÁÁø´Ù. º¯È¯±â°¡ ½ÃÀÛÇÑ ÈÄ¿¡´Â À̰ÍÀÌ Á¾·áÇÏÁö ¾Ê´Â ÇÑ ´Ù½Ã ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø´Ù. ºÎ¸ð ÆÄÀϽýºÅÛÀº ³ªÁßÀÇ ¿äû¿¡ ´ëºñÇØ º¯È¯±â·ÎÀÇ Æ÷Æ®¸¦ º¸Á¸ÇÑ´Ù.

ÆÄÀÏÀÇ ¼ÒÀ¯Àڴ Ưº°ÇÑ ±ÇÇÑ ¾øÀÌ º¯È¯±â¸¦ ÆÄÀÏ¿¡ °ü·Ã½Ãų ¼ö ÀÖ´Ù. ÀÌ´Â ¾î¶² ÇÁ·Î±×·¥µµ º¯È¯±â°¡ µÉ ¼ö ÀÖ´Ù´Â ¶æÀÌ´Ù. ºÐ¸íÈ÷ ½Ã½ºÅÛÀº º¯È¯±â°¡ ÆÄÀÏ ÇÁ·ÎÅäÄÝÀ» Á¤È®È÷ ±¸ÇöÇÏÁö ¾ÊÀ¸¸é ÀûÀýÈ÷ µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ±×·¯³ª Hurd´Â ÃÖ¾ÇÀÇ °á°ú°¡ ÁßÁöÇÒ ¼ö ÀÖ´Â Á¤Áö »óÅÂ(interruptible hang)°¡ µÇµµ·Ï ¼³°èµÇ¾ú´Ù.

º¯È¯±â¸¦ »ç¿ëÇÏ´Â ÇϳªÀÇ ¹æ¹ýÀº ÆÄÀÏ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© °èÃþÀûÀ¸·Î ±¸¼ºµÈ ÀڷḦ ¾ï¼¼½ºÇÏ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ftpÇÁ·Î±×·¥ÀÇ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽ºÀÇ ¸ðµç º¹À⼺Àº ¾ø¾îÁ³´Ù. »ç¿ëÀÚ´Â FTP¸¦ ³ªÅ¸³»´Â Ưº°ÇÑ µð·ºÅ丮¸¦ ¾Ë±â¸é ÇÏ¸é ¿ø°Ý ½Ã½ºÅÛÀ» ¾ï¼¼½ºÇϱâ À§ÇØ »õ·Î¿î ¸í·ÉÀ» ¹è¿ì±â º¸´Ù´Â ¸ðµç Ç¥ÁØ ÆÄÀÏ °ü·Ã ¸í·É(¿¹¸¦ µé¾î ls³ª cp)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ºñ½ÁÇÏ°Ô °£´ÜÇÑ º¯È¯±â´Â tar³ª gzipÀÇ º¹À⼺À» ÁÙÀÏ ¼ö ÀÖ´Ù(ÀÌ·± Åõ¸í ¾ï¼¼½º¿¡´Â ¾à°£ÀÇ ´ë°¡°¡ Ãß°¡µÇÁö¸¸ Æí¸®ÇÏ´Ù).

ÀÏ¹Ý ¼­ºñ½º

º¯È¯±â¸¦ °¡Áö°í ÆÄÀϽýºÅÛÀº ÆÄÀÏ¿Í À¯»çÇÏÁö ¾ÊÀº ÀÎÅÍÆäÀ̽º¿Í Á¢ÃËÁ¡À¸·Î ÇൿÇÒ ¼ö ÀÖ´Ù. ³»ºÎ Àü¼ÛÀ¸·Î Mach ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ´Â ¾î¶² ¹öÀüÀÇ XÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÏ´Â ¼­ºñ½º¸¦ »ý°¢ÇØ º¸ÀÚ. °¢ Xµð½ºÇ÷¹ÀÌ¿¡ ´ëÇØ ¾î¶² ÆÄÀÏÀ» ±× º¯È¯±â·Î¼­ ÀûÀýÇÑ ÇÁ·Î±×·¥À¸·Î ¸¸µé ¼ö ÀÖ´Ù. XŬ¶óÀÌ¾ðÆ®´Â ±× ÆÄÀÏÀ» ¿­ °ÍÀÌ´Ù. ÀÌ ¼ø°£ À¯¿ëÇÑ ÆÄÀÏ ¸í·ÉÀº °ÅÀÇ ¾ø´Ù(¿¹¸¦ µé¾î ÀÐ°í ¾²±â´Â ¼Ò¿ë¾ø´Ù). ±×·¯³ª »õ·Î¿î ¸í·É(XCreateWindow³ª XDrawText)Àº Àǹ̸¦ °¡Áö°Ô µÈ´Ù. ÀÌ °æ¿ì ÆÄÀϽýºÅÛ ÇÁ·ÎÅäÄÝÀº Á¢ÃËÁ¡¿¡ ¾²ÀÌ´Â ³ëµåÀÇ Æ¯¼ºÀ» ´Ù·ç±â À§Çؼ­¸¸ »ç¿ëÇÑ´Ù. ³ëµå´Â I/O¸í·ÉÀ» Áö¿øÇÏÁö ¾ÊÀ¸¸ç, ±×·± ¸Þ½ÃÁö¿¡´À message_not_understood ¸®ÅÏ Äڵ带 µ¹·ÁÁØ´Ù.

ÀÌ º¯È¯±â ±â¹ýÀº °èÃþÀû ÆÄÀϽýºÅÛ°ú °°ÀÌ ±¸¼ºµÇÁö ¾ÊÀº HurdÀÇ ´ëºÎºÐÀÇ ¼­ºñ½º¿¡ Á¢ÃËÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î ¾ÏÈ£ÀÇ ±³È¯À» À§ÇØ ÀÎÁõ ²¿¸®¸»(authorization tags)À» »ç¿ëÇÏ´Â ¾ÏÈ£ ¼­¹ö¿¡ ÀÌ·± ¹æ½ÄÀ¸·Î Á¢ÃËÇÑ´Ù. ¶ÇÇÑ ³×Æ®¿÷ ÇÁ·ÎÅäÄÝ ¼­¹ö´Â ÀÌ·± Çü½ÄÀ¸·Î Á¢ÃËÇÒ ¼ö ÀÖ´Ù. Roland McGrath°¡ º¯È¯±âÀÇ ÀÌ·± »ç¿ë¹ýÀ» »ý°¢ÇØ ³Â´Ù.

Çö¸íÇÑ ÆÄÀϽýºÅÛµµ(Óñ)

Hurd¿¡¼­´Â º¯È¯±â´Â ¾à°£ÀÇ Àǹ̸¦ ¹Ù²Ù¾î¼­ ÆÄÀϽýºÅÛÀÇ ÀϺηΠÆÄÀϽýºÅÛ°ú À¯»çÇÑ °üÁ¡À» Á¦°øÇϴµ¥ ¾²ÀÏ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ±× ÀÚü´Â ¹Ù²Ü ¼ö ¾øÁö¸¸, ±×·³¿¡µµ ´Ù¸¥ °÷¿¡ ±× ÆÄÀÏÀÇ ¹Ù²ï ¹öÀüÀ» ±â·ÏÇÏ´Â ÆÄÀϽýºÅÛÀ» °¡Áú ¼ö ÀÖ´Ù¸é ÁÁÀ» °ÍÀÌ´Ù(ÀÌ´Â ¼Ò½ºÄÚµå °ü¸®¿¡ À¯¿ëÇÏ´Ù).

Hurd´Â ´Ù¸¥ µð·ºÅ丮ÀÇ °³³äÀûÀÎ ÁýÇÕÀÎ µð·ºÅ丮¸¦ ¸¸µå´Â º¯È¯±â¸¦ °¡Áú ¼ö ÀÖ´Ù. ÀÌ´Â ½ÇÇàÇÏ°í ½Í¾îÇÏ´Â ¸ðµç ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ´Â ÇϳªÀÇ µð·ºÅ丮¸¦ »ç¿ëÀÚ¿¡°Ô Á¦°øÇϴµ¥ ¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ ÁÖÁ¦¿¡ ´ëÇÑ ¿©·¯ °¡Áö À¯¿ëÇÑ º¯Á¾µéÀÌ ÀÖ´Ù.

»ç¿ëÀÚ°¡ ÇÒ ¼ö ÀÖ´Â ÀÏ

¾î¶² º¯È¯±â·Îµµ ÆÄÀϽýºÅÛÀ» °¡·Îä¾î º°µµÀÇ Æ¯±ÇÀ» ¾òÀ» ¼ö ¾ø´Ù. º¯È¯±â´Â º¯È¯ÇÏ´Â ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÇ »ç¿ëÀÚ id(uid)·Î ½ÇÇàÇϸç, ±× ¼ÒÀ¯ÀÚ¿¡ ÀÇÇØ¼­¸¸ ¼³Á¤µÇ°Å³ª ¹Ù²ð ¼ö ÀÖ´Ù. I/O¿Í ÆÄÀϽýºÅÛ ÇÁ·ÎÅäÄÝÀº »óÈ£ ¹ÏÀ» ¼ö ¾ø´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö¿¡ »ç¿ëÀ» Çã°¡ÇÒ ¼ö ÀÖµµ·Ï ÁÖÀDZí°Ô ¼³°èµÇ¾ú´Ù. °á±¹ º¯È¯±â´Â ´ÜÁö º¸Åë ÇÁ·Î±×·¥ÀÌ´Ù. GNU C¶óÀ̺귯¸®¿¡´Â °øÅëÀûÀÎ Á¾·ùÀÇ º¯È¯±â¸¦ ¸¸µé±â ½±µµ·Ï ÇÏ´Â ¿©·¯ ±â´ÉÀÌ ÀÖ´Ù.

¾ÏÈ£ ¼­¹ö³ª setuid ½ÇÇàÀ» Çã¶ôÇÏ´Â º¯È¯±â¿Í °°Àº º¯È¯±â´Â Ưº°ÇÑ ±ÇÇÑÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ º¯È¯±âµéÀº ´©±¸³ª ½ÃÇàÇÒ ¼ö ÀÖÁö¸¸, À̵éÀº ·çÆ®°¡ ¼ÒÀ¯ÇÑ ³ëµå À§¿¡ ¼³Á¤µÇ¾î¾ß¸¸ À̵éÀÇ ¸ðµç ¼­ºñ½º¸¦ ¼º°øÀûÀ¸·Î Á¦°øÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ´Â ¾î¶² »ç¿ëÀÚ¶óµµ reboot ½Ã½ºÅÛ ÄÝÀ» ºÎ¸¦ ¼ö ÀÖ´Ù´Â ¸»°ú °°Áö¸¸, ±× »ç¿ëÀÚ°¡ ·çÆ®À̾î¾ß¸¸ À̸¦ Á¸ÁßÇÑ´Ù.

¿Ö ÀÌ·¸°Ô ´Ù¸¥°¡

ÀÌ ¼³°è°¡ Á¦°øÇÏ´Â °ÍÀº ¿ÏÀüÈ÷ À¯´Ð½º ¼¼°èÀÇ ¼Ò¼³ÀÌ´Ù. Áö±Ý±îÁö OSµéÀº ½Ã½ºÅÛ ÄÚµåÀÇ ¿µ¿ª¿¡ ±×µéÀÇ ±â´ÉÀÇ ¸¹Àº ¿µ¿ªÀ» À¯ÁöÇØ ¿ÔÀ¸¸ç, À̰ÍÀº ¼öÁ¤¿Í ¼ö¸¹Àº ¿ä±¸¿¡ ÀÇÇÑ °ÍÀ» Á¦¿ÜÇÑ È®ÀåÀ» ¸·¾Ò´Ù. »ç¿ëÀÚ´Â ÀÌ ÀÏÀÌ ¾Æ¹«¸® ÀÛ¾÷À» ½±°Ô ÇØµµ ÇÁ·Î±×·¥¿¡¼­ ½Ã½ºÅÛÀÇ ÀϺθ¦ ¹Ù²Ü ¼ö ¾øÀ¸¸ç, ½Ã½ºÅÛ °ü¸®ÀÚ´Â ³×Æ®¿÷À» ²ô°í Ä¿³Î¿¡ ÀÓÀÇÀÇ ºÎºÐÀ» ¼³Ä¡ÇÏ´Â °ÍÀ» ²¨¸°´Ù.

Hurd¿¡¼­´Â »ç¿ëÀÚ´Â ÀüÅëÀû ½Ã½ºÅÛ¿¡ ÀÇÇØ ¹Ì¸® Á¤ÇØÁø °ÅÀÇ ¸ðµç °ÍÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. ÀÛ¾÷ ÁÖ¼Ò °ø°£°ú Ư¼º À§ÀÇ MachÄ¿³ÎÀÌ Á¦°øÇÏ´Â ¼ö¸¹Àº Á¦¾î¿Í ÇÔ²² Hurd´Â ÃÖÃÊ·Î ´Ù¸¥ »ç¿ëÀÚ¸¦ ¹æÇØÇÏÁö ¾Ê°í ±×µéÀÌ ½È¾îÇÏ´Â ½Ã½ºÅÛÀÇ ÀϺθ¦ ¹Ù²Ü ¼ö ÀÖ´Â ½Ã½ºÅÛÀ» Á¦°øÇÑ´Ù.

Áö±Ý±îÁöÀÇ ´ëºÎºÐÀÇ Mach±â¹ÝÀÇ OS´Â »õ ȯ°æ¿¡¼­ ´ëºÎºÐ °°Àº ³°Àº À¯´Ð½ºÀÇ ´õ ³ÐÀº ÁýÇÕÀ» ±¸ÇöÇØ ¿Ô´Ù. ¹Ý´ë·Î, GNU´Â ÀÌ Àǹ̸¦ È®ÀåÇÏ¿© »ç¿ëÀÚ°¡ À̸¦ °³¼±ÇÏ°í »©°í ´ëüÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.



Á¦ 2 ºÎ : HurdÀÇ Æ¯Â¡À» »ìÆìº¸ÀÚ

ÀÎÁõ ¼­¹ö(Authentication Server)

HurdÀÇ Á᫐ ¼­¹ö ÁßÀÇ Çϳª´Â ÀÎÁõ ¼­¹öÀÌ´Ù. ÀÌ ¼­¹ö·ÎÀÇ °¢ Æ÷Æ®´Â »ç¿ëÀÚ¸¦ È®ÀÎÇϰí, ÀÌ ¼­¹ö¸¦ idºí·°°ú ¿¬°ü½ÃŲ´Ù. °¢ idºí·°Àº »ç¿ëÀÚ¿Í ±×·ì idÀÇ ÁýÇÕÀ» Æ÷ÇÔÇÑ´Ù. ¾î´ÀÂÊ ÁýÇÕµµ ºñ¾îÀÖÀ» ¼ö ÀÖ´Ù. ÀÌ ¼­¹ö´Â À§¿¡¼­ ¸»ÇÑ ¾ÏÈ£ ¼­¹ö¿Í °°Áö ¾Ê´Ù.

ÀÎÁõ ¼­¹ö´Â ¼¼°¡Áö ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. ù¹øÂ°·Î ÀÌ´Â ÀÎÁõ Æ÷Æ®¿¡¼­ °£´ÜÇÑ ºÎ¿ï(boolean) ¿¬»êÀ» Á¦°øÇÑ´Ù: ÁÖ¾îÁø µÎ°³ÀÇ ÀÎÁõ Æ÷Æ®¿¡¼­, ÀÌ ¼­¹ö´Â uid¿Í gidÀÇ µÎ ÁýÇÕÀ» ³ªÅ¸³»´Â ¼¼¹øÂ° Æ÷Æ®¸¦ Á¦°øÇÑ´Ù. µÎ¹øÂ°·Î, ÀÌ ¼­¹ö´Â ÀÓÀÇÀÇ ÀÎÁõ Æ÷Æ®¸¦ ¸¸µé±â À§ÇØ uid 0ÀÇ ¾î¶² »ç¿ëÀÚµµ Çã¿ëÇÑ´Ù. ¸¶Áö¸·À¸·Î ÀÌ ¼­¹ö´Â ¼­·Î ¹ÏÁö ¸øÇϴ Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°¡ ±×µéÀ» È®ÀÎÇÏ°í ¼­·Î¿¡°Ô Ãʱâ Á¤º¸¸¦ ³Ñ°ÜÁÖ´Â °ÍÀ» Çã¿ëÇÏ´Â RPC(´Ù¸¥ ÇÁ·Î±×·¥°ú ¾Æ¸¶µµ ´Ù¸¥ È£½ºÆ®°£ÀÇ ¿ø°Ý ÇÁ·Î½ÃÀú ÄÝ(Remote Procedure Calls))¸¦ Á¦°øÇÑ´Ù. ÀÌ´Â ÆÄÀϽýºÅÛ°ú I/OÇÁ·ÎÅäÄÝÀÇ º¸¾È¿¡ Áß¿äÇÑ °ÍÀÌ´Ù.

¾î¶² »ç¿ëÀÚµµ ÀÎÁõ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÏ´Â ÇÁ·Î±×·¥À» ¾µ ¼ö ÀÖ´Ù. ÀÌ´Â ½Ã½ºÅÛÀÇ º¸¾ÈÀ» À§¹ÝÇÏÁö ¾Ê´Â´Ù. ¼­ºñ½º°¡ »ç¿ëÀÚÀÇ ÀÎÁõÀ» ÇÊ¿ä·Î ÇÒ ¶§¿¡´Â ÀÌ´Â À̰ÍÀÇ ¹ÏÀ» ¼ö ÀÖ´Â ÀÎÁõ ¼­¹ö¿Í Åë½ÅÇÑ´Ù. ¸¸¾à ±× »ç¿ëÀÚ°¡ ´Ù¸¥ ÀÎÁõ ¼­¹ö¸¦ »ç¿ëÇϸé, ó¸®(transaction)´Â Áß´ÜµÇ°í ¼­¹ö´Â ´õÀÌ»ó Åë½ÅÇϱ⸦ °ÅºÎÇÒ ¼ö ÀÖ´Ù. »ç½Ç ÀÌ´Â ½Ã½ºÅÛÀÇ ¸ðµç ÇÁ·Î±×·¥ÀÌ °°Àº ÀÎÁõ ¼­¹ö¸¦ »ç¿ëÇϵµ·Ï °­Á¦Çϱ⠶§¹®¿¡, ¿ì¸®´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ¾î¶² ¾ÈÁ¤ÇÑ µ¿ÀÛÀÌ¶óµµ °¡´ÉÇÏ°í °ü°è¾ø´Â ¸í·ÉÀ» Æ÷ÇÔÇÏÁö ¾Êµµ·Ï ÀÎÅÍÆäÀ̽º¸¦ ¼³°èÇß´Ù(À̰ÍÀÌ ºÐ¸®µÈ ¾ÏÈ£ ¼­¹ö°¡ ÀÖ´Â ÀÌÀ¯ÀÌ´Ù).

ÇÁ·Î¼¼½º ¼­¹ö(Process Server)

ÇÁ·Î¼¼½º ¼­¹ö´Â Á¤º¸ ºÐ·ù â°í·Î¼­ µ¿ÀÛÇÑ´Ù. ¿©±â¿¡´Â ¼­¹ö°¡ Áö¿øÇÏ´Â ³×°¡Áö ÁÖ ¼­ºñ½º°¡ ÀÖ´Ù. ¸ÕÀú ÇÁ·Î¼¼½º ¼­¹ö´Â MachÄ¿³ÎÀÌ ´Ù·ç¾îÁöÁö ¾Ê´Â È£½ºÆ® ·¹º§ÀÇ ÀϹÝÀûÀÎ Á¤º¸¸¦ ÃßÀûÇÑ´Ù. ¿¹¸¦ µé¾î È£½ºÆ® À̸§(hostname), È£½ºÆ® id, ½Ã½ºÅÛ ¹öÀüÀº ÇÁ·Î¼¼½º ¼­¹ö¿¡ ÀÇÇØ °ü¸®µÈ´Ù. µÎ¹øÂ°·Î, ÀÌ ¼­¹ö´Â POSIX±â´ÉÀ» »ç¿ëÇϰíÀÚ ÇÏ´Â ÇÁ·Î±×·¥À» µ½±â À§ÇØ ¼¼¼Ç°ú ÇÁ·Î¼¼½º ±×·ì¿¡ ´ëÇÑ POSIX°³³äÀ» °ü¸®ÇÑ´Ù.

¼¼¹øÂ°·Î ÇÁ·Î¼¼½º ¼­¹ö´Â Mach ÀÛ¾÷(task)¿Í Hurd ÇÁ·Î¼¼½º »çÀÌÀÇ ÀÏ´ëÀÏ »ç¿µ(mapping)À» °ü¸®ÇÑ´Ù. ¸ðµç ÀÛ¾÷Àº pid¸¦ ÇÒ´ç¹Þ´Â´Ù. ÇÁ·Î¼¼½º´Â ÀÌ ¼­¹ö¿¡ ¸Þ¼¼Áö Æ÷Æ®¸¦ µî·ÏÇÒ ¼ö ÀÖ°í, ÀÌ Æ÷Æ®´Â ¿ä±¸ÇÏ´Â ¾î¶² ÇÁ·Î±×·¥¿¡°Ôµµ Á¦°øµÉ ¼ö ÀÖ´Ù. ÀÌ ¼­¹ö´Â ÀÌ ¸Þ¼¼Áö Æ÷Æ®¸¦ »çÀûÀ¸·Î ¸¸µé·Á´Â ¾î¶² ½Ãµµµµ ÇÏÁö ¾ÊÀ¸¸ç, µû¶ó¼­ »ç¿ëÀÚ ÇÁ·Î±×·¥Àº ÇÊ¿äÇÑ º¸¾È»çÇ×Àº ½º½º·Î ±¸ÇöÇØ¾ß ÇÑ´Ù(GNU C¶óÀ̺귯¸®´Â ÀÌ ¸ðµç °ÍÀ» À§ÇØ Æí¸®ÇÑ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù). ÇÁ·Î¼¼½º´Â ÇÁ·Î¼¼½º ¼­¹ö¿¡°Ô ÇöÀçÀÇ 'argv'¿Í 'envp'°ªÀ» ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ±×·± ÈÄ ÀÌ ¼­¹ö´Â ¿äû¿¡ µû¶ó Àμö¿Í ȯ°æº¯¼ö¿¡ ´ëÇÑ º¤Å͸¦ Á¦°øÇÒ °ÍÀÌ´Ù. ÀÌ´Â ps¿Í °°Àº ÇÁ·Î±×·¥À» ¾²±â¿¡ À¯¿ëÇϰí ÀÌ Á¤º¸¸¦ ¼û±â°Å³ª ¹Ù²Ù´Â Àϵµ ½±°Ô ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¾î¶² °Íµµ ÇʼöÀûÀÌÁö´Â ¾Ê´Ù. ÇÁ·Î±×·¥Àº ÀÌ ¸ðµç °ÍÀ» ¹«½ÃÇϰí ÀÚ½ÅÀ» ÇÁ·Î¼¼½º ¼­¹ö¿¡ ÀüÇô µî·ÏÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ±×·¯³ª ¿©ÀüÈ÷ ºÎ¿©¹ÞÀº pid´Â °¡Áú °ÍÀÌ´Ù.

¸¶Áö¸·À¸·Î, ÇÁ·Î¼¼½º ¼­¹ö´Â µ¿½Ã¿¡ ¸¹Àº ÇÁ·Î¼¼½º ¸Þ¼¼Áö Æ÷Æ®¸¦ ¸ðÀ¸´Âµ¥ »ç¿ëÇÏ´Â ÇÁ·Î¼¼½º ¼öÁý(Process Collection)À» ±¸ÇöÇÑ´Ù. ¶ÇÇÑ pid¿Í ÇÁ·Î¼¼½º ¼­¹ö Æ÷Æ®¿Í MachÀÛ¾÷ Æ÷Æ®°£ÀÇ º¯È¯±â´ÉÀÌ Á¦°øµÈ´Ù. ¹Ý¸é¿¡ Æ÷Æ®ÀÇ º¸¾ÈÀ» À¯ÁöÇÏ´Â ÀÏÀ» È®½ÇÈ÷ ÇÑ´Ù.

ÇÁ·Î¼¼½º ¼­¹ö°¡ ºÎ°¡ÀûÀ̶ó´Â °ÍÀ» °­Á¶ÇÏ´Â ÀÏÀº Áß¿äÇÏ´Ù. MachÀÇ Á¦ÇÑ ¶§¹®¿¡ ÇÁ·Î±×·¥Àº ½Ã½ºÅÛÀÇ ¸ðµç ÀÛ¾÷À» È®ÀÎÇϱâ À§ÇØ ·çÆ®·Î ½ÇÇàµÇ¾î¾ß ÇÑ´Ù. ±×·¯³ª ´ÙÁß ÇÁ·Î¼¼½º ¼­¹ö°¡ °¢°¢ÀÇ Å¬¶óÀÌ¾ðÆ®µé°ú ÇÔ²² °øÁ¸ÇÒ ¼ö ÀÖ´Ù¸é ±×µé¸¸ÀÇ ¼¼°è ¸ðµ¨À» Á¦°øÇÒ ¼ö ÀÖ´Ù. ±¸ÇöÇϱâ À§ÇØ ·çÆ® ±ÇÇÑÀ» ¿ä±¸ÇÏÁö ¾Ê´Â ÀÌ ÇÁ·Î¼¼½º ¼­¹ö ±â´ÉÀº »ç¿ëÀÚ´ç ¼­¹ö°¡ µÉ ¼ö ÀÖ´Ù. »ç¿ëÀÚ´Â ¾î¶² ÀÏÀ̵ç ÇÒ ¼ö ÀÖ´Ù.

Åõ¸í FTP(Transparent FTP)

Åõ¸í FTP´Â ÀÌÁ¦ È£±â½ÉÀ» ÀھƳ»´Â »ý°¢ÀÌ´Ù. GNU Emacs¿¡¼­ ¾µ ¼ö ÀÖ´Â À¯¸íÇÑ ange-ftpÆÐŰÁö´Â ¸ðµç EmacsÆÄÀϰü·Ã ¸í·É¿¡¼­ °¡»óÀûÀ¸·Î Åõ¸íÇÏ°Ô FTPÆÄÀÏÀ» ¾ï¼¼½ºÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. Åõ¸í FTP´Â °°Àº ÀÏÀ» ÇÏÁö¸¸ ½Ã½ºÅÛ Â÷¿øÀÌ´Ù. ÀÌ ¼­¹ö´Â ¾ÆÁ÷ ´Ù µÇÁö ¾Ê¾Ò´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¾ÆÁ÷ ´õ ¸¸µé¾î¾ß ÇÏÁö¸¸, È®½ÇÈ÷ ¹Ù²ð °ÍÀÌ´Ù.

BSDÄ¿³Î¿¡¼­´Â Åõ¸í FTPÆÄÀϽýºÅÛÀº Hurd¿¡¼­º¸´Ù ´õ ¸¸µé±â ¾î·ÆÁö´Â ¾Ê´Ù. ±×·¯³ª ÀÌ °³³äÀ» BSDÇØÄ¿¿¡°Ô À̾߱âÇÏ´Ï ¹ÝÀÀÀº "±×·± °Ç Ä¿³Î¿¡ ¼ÓÇÏÁö ¾Ê´Â´Ù" ¶ó´Â °ÍÀ̾ú´Ù. ¾î¶² Àǹ̿¡¼­´Â ÀÌ ¸»Àº ¿Ç´Ù. ÀÌ·± °ÍÀÌ Ä¿³Î ¾È¿¡ ³õÀÌ´Â °ÍÀº ½Ã½ºÅÛÀÇ ¸ðµç °èÃþÈ­ ¿øÄ¢À» À§¹ÝÇÑ´Ù. ±×·¯³ª ÀÌ ºÒÇàÇÑ ºÎ¼ö È¿°ú´Â ¼³°è ¹æ¹ý·Ð(»ç¿ëÀÚ°¡ ÁÁ¾ÆÇÏÁö ¾ÊÀº °ÍÀ» ¹Ù²ÙÁö ¸øÇϵµ·Ï ÇÏ´ÂÀÏ¿¡ ±â¹ÝÇÑ)ÀÌ ½Ã½ºÅÛ ¼³°èÀÚ°¡ ´õ ÁÁ°Ô ÇÏ´Â ÀÏÀ» ¹æÇØÇϴµ¥ »ç¿ëÇÑ´Ù(ÃÖ±ÙÀÇ BSDÄ¿³ÎÀº Åõ¸í FTP¸¦ Á¦°øÇÏ´Â »ç¿ëÀÚ ÇÁ·Î±×·¥À» ¾µ ¼ö ÀÖ°Ô ÇÑ´Ù. ±× ¿¹´Â alexÀε¥, ½ÇÇàÇϱâ À§Çؼ­´Â ·çÆ®±ÇÇÑÀ» ¿ä±¸ÇÑ´Ù).

Hurd¿¡¼­´Â Åõ¸í FTP¸¦ Çϱâ À§ÇÑ Àå¾Ö¹°Àº ¾ø´Ù. º¯È¯±â´Â /ftp³ëµå¿¡ Á¦°øÇÒ ¼ö ÀÖ´Ù. /ftpÀÇ ³»¿ëÀº ÀÖÀ» °ÍÀÌÁö¸¸ ¾Æ¸¶µµ Á÷Á¢ º¼ ¼ö´Â ¾øÀ» °ÍÀÌ´Ù. ÀÌ´Â ¿©·¯ °¡´ÉÇÑ Çü½ÄÀÌ µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î uunetÀÇ ÆÄÀÏÀ» ¾ï¼¼½ºÇϱâ À§Çؼ­ cd /ftp/ftp.uu.net:anonymous:mib@gnu¶ó°í ÇÒ ¼ö ÀÖ´Ù. ¶Ç´Â ¿ø°Ý °èÁ¤ÀÇ ÆÄÀÏÀ» ¾ï¼¼½ºÇϱâ À§Çؼ­ cd /ftp/gnu.ai.mit.edu:mib:passwd¶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸í·ÉÀÇ ÀϺδ »èÁ¦µÇ¸ç Åõ¸í FTPÇÁ·Î±×·¥Àº »ç¿ëÀÚÀÇ .netrcÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Ù. ¸¶Áö¸· °æ¿ì¿¡¼­ cd /ftp/gnu.ai.mit.edu¶ó°í ÇÏ¸é ³ª¸ÓÁö´Â ÀÌ¹Ì .netrc¿¡ ÀÖ°Ô µÈ´Ù.

cd¸¦ ¸ÕÀú ÇÒ ÇÊ¿ä´Â ¾ø´Ù - ¾î¶² ÆÄÀÏ ¸í·ÉÀÌ¶óµµ »ç¿ëÇÏÀÚ. RFC 1097(the Telnet Subliminal Message Option)¿¡ ´ëÇØ ã±â À§Çؼ­´Â ´ÜÁö more /ftp/ftp.uu.net/inet/rfc/rfc1097À̶ó°í Ä¡¸é µÈ´Ù. RFC¸¦ ÀÚÁÖ Àоî¾ß ÇÑ´Ù¸é Áö¿ª µð½ºÅ©·Î º¹»çÇÒ ¼ö ÀÖ´Ù.

ÆÄÀϽýºÅÛ

¶ÇÇÑ ÀϹÝÀûÀÎ ÆÄÀϽýºÅÛµµ ±¸ÇöµÇ°í ÀÖ´Ù. HurdÀÇ Ã³À½ÆÇÀº BSD 4.4 °í¼Ó ÆÄÀϽýºÅÛ(Fast File System)°ú »óÀ§ ȣȯÀÎ ÆÄÀϽýºÅÛÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ÀϹÝÀûÀÎ Àǹ̿¡ ´õÇØ ·¹ÄÚµå º¯È¯±â¸¦ À§ÇÑ ¼ö´ÜÀ» Á¦°øÇϰí, 32ºñÆ® »ç¿ëÀÚ id¿Í ±×·ì id¸¦ Á¦°øÇϰí, ¼ÒÀ¯ÀÚ°¡ ÀÓÀÇ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀÇ ÀúÀÚ¶ó ºÎ¸£´Â ÆÄÀÏ´ç »õ id¸¦ Áö¿øÇÑ´Ù. Ãß°¡ÀûÀ¸·Î HurdÀÇ »ç¿ëÀÚ´Â ´ÙÁß uid(¾øÀ» ¼öµµ ÀÖ´Ù)¸¦ °¡Áú ¼ö Àֱ⠶§¹®¿¡ ¾Ë·ÁÁ³Áö¸¸ ÀÓÀÇÀÇ »ç¿ëÀÚ(uidÀÖ´Â: ÆÄÀÏ ±ÇÇÑÀÇ Á¸ÀçÇÏ´Â ¼¼°è ¹üÁÖ)¿Í ¾Ë ¼ö ¾ø´Â »ç¿ëÀÚ(uid¾ø´Â)ÀÇ ¾ï¼¼½º ÅëÁµ¸¦ Á¦°øÇÏ´Â ±ÇÇÑ ºñÆ®ÀÇ ÁýÇÕÀ» Á¦°øÇÑ´Ù.

³×Æ®¿÷ ÆÄÀϽýºÅÛ ÇÁ·ÎÅäÄÝÀº ½ÃÀÛÁ¡À¸·Î 4.4BSD¸¦ »ç¿ëÇÏ¿© ±¸ÇöµÉ °ÍÀÌ´Ù. ±â·Ï ±¸Á¶(log-structured) ÆÄÀϽýºÅÛÀº ½ºÇÁ¶óÀÌÆ®(Sprite)¿¡¼­Ã³·³ °°Àº °³³äÀ» »ç¿ëÇÏ¿© ±¸ÇöµÉ °ÍÀÌÁö¸¸, ¾Æ¸¶µµ °°Àº Çü½ÄÀº ¾Æ´Ò °ÍÀÌ´Ù. GNU ³×Æ®¿÷ ÆÄÀÏ ÇÁ·ÎÅäÄÝÀÌ °ð ¼³°èµÇ´øÁö NFS°¡ °áÁ¡À» Á¦°ÅÇϱâ À§ÇØ È®ÀåµÉ °ÍÀÌ´Ù. GNU¿Í ´Ù¸¥ OS°£¿¡ ÆÄÀÏÀ» ¿Å±â°í ½ÍÀº »ç¶÷µéÀ» µ½±â À§ÇØ MS-DOSÆÄÀϽýºÅÛ°ú °°Àº ¿©·¯ Á¶±×¸¸ ÆÄÀϽýºÅÛÀÌ ÀÖÀ» °ÍÀÌ´Ù.

Å͹̳Î

I/O¼­¹ö´Â POSIXÀÇ Å͹̳Π¹æ½ÄÀ» Á¦°øÇÒ °ÍÀÌ´Ù. GNU C¶óÀ̺귯¸®´Â ÅëÁ¦ Å͹̳Î(controlling terminal)À» ÃßÀûÇϰí Àû´çÇÑ ¶§¿¡ ÀûÀýÇÑ ÅëÁ¦ ½ÅÈ£(contol signals)¸¦ º¸³»¸ç Űº¸µå¿Í Áß´Ü(hangup) ½ÅÈ£¸¦ µû¸£´Â ±â´ÉÀ» Á¦°øÇÑ´Ù.

ÇÁ·Î±×·¥Àº ¿©·¯°¡Áö ¹æ½ÄÀ¸·Î Åë½Å ä³Î¿¡ Å͹̳Πµå¶óÀ̹ö¸¦ Ãß°¡ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. rlogind¿Í °°Àº ¼­¹ö´Â ³×Æ®¿÷ Åë½Å Æ÷Æ®¿¡ Å͹̳ΠÇÁ·ÎÅäÄÝÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ¿À·¡µÈ ÇÁ·Î±×·¥ÀÇ ÇÏÀ§ ȣȯ¼ºÀ» À§ÇØ Á¦°øµÇ°ÚÁö¸¸ ÀÇ»ç Å͹̳Î(pseudo-terminal)Àº ÇÊ¿äÇÏÁö ¾Ê´Ù. GNUÀÇ ¾î¶² ÇÁ·Î±×·¥µµ ÀÌ¿¡ ÀÇÁ¸ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

Å͹̳Πµå¶óÀ̹öÀÇ ¾î¶² °Íµµ »ç¿ëÀÚ¿¡°Ô °­¿äÇÏÁö ¾Ê´Â´Ù. Å͹̳Πµå¶óÀ̹ö´Â »ç¿ëÀÚ°¡ ³»ÀçÇÑ Åë½Å ä³ÎÀ» ½±°Ô ¾òÀ» ¼ö ÀÖµµ·Ï Çϰí, ÇÊ¿äÇÒ ¶§¸¶´Ù ¶Ç´Â ÇÔ²² ÀÚ½ÅÀ» Áö³ªÄ¥ ¼ö ÀÖ°í, ´Ù¸¥ Å͹̳Πµå¶óÀ̹ö°ú °°Àº ÇÁ·Î±×·¥À¸·Î ´ëüÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¸¶Áö¸· °æ¿ì¿¡ ´ëü ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÑ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ´Ù¸é º¸Åë Å͹̳Πµå¶óÀ̹öÀÎ °Íó·³ Á¤È®È÷ C¶óÀ̺귯¸®¿¡¼­ ¾²ÀÏ °ÍÀÌ´Ù.

ÀÌ À¯¿¬¼º¶§¹®¿¡ ¿ø·¡ÀÇ Å͹̳Πµå¶óÀ̹ö´Â º¹ÀâÇÑ ÁÙÆíÁý±â´ÉÀ» Á¦°øÇÏÁö ¾ÊÀ» °ÍÀ̸ç, ÀÚ½ÅÀ» POSIX¿Í BSD¿¡¼­ ãÀ» ¼ö ÀÖ´Â ±â´É¿¡ ÇÑÁ¤ÇÑ´Ù. readline±â¹ÝÀÇ Å͹̳Πµå¶óÀ̹ö°¡ ¸¸µé¾îÁú °ÍÀε¥, ÀÌ´Â ¿øÇÏ´Â »ç¿ëÀÚ¸¦ À§ÇØ º¹ÀâÇÑ ÁÙÆíÁý±â´ÉÀ» Á¦°øÇÒ °ÍÀÌ´Ù.

Å͹̳Πµå¶óÀ̹ö´Â UUCP³ª SLIP¿¡¼­ ÇÊ¿äÇÑ Å« ºÎÇÇÀÇ ¿¬¼Ó µ¥ÀÌÅÍ Àü¼Û Áö¿øÀ» Àß ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥Àº À̵éÀÇ ¾î¶² ±â´Éµµ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù. ´ë½Å¿¡ Å͹̳ÎÀ» À§ÇØ ³»ÀåµÈ MachÀåÄ¡ Æ÷Æ®À» ¾µ °ÍÀε¥, À̰ÍÀº ¸¹Àº µ¥ÀÌÅÍÀÇ Àü¼ÛÀ» È¿À²ÀûÀ¸·Î Áö¿øÇÑ´Ù.

ÇÁ·Î±×·¥ ½ÇÇà

execve½Ã½ºÅÛ ÄÝÀÇ ±¸ÇöÀº ¼¼ ÇÁ·Î±×·¥ »çÀÌ¿¡ ÆÛÁ® ÀÖ´Ù. ¶óÀ̺귯¸®´Â Àμö¿Í ȯ°æº¯¼ö º¤Å͸¦ Á¤¸®ÇÑ´Ù. ±×·¯°í¼­ ÀÌ´Â ÆÄÀϼ­¹ö¿¡ ½ÇÇàµÉ ÆÄÀÏÀ» À¯ÁöÇÏ´Â ¸Þ¼¼Áö¸¦ º¸³½´Ù. ÆÄÀϼ­¹ö´Â ½ÇÇà ±ÇÇÑÀ» Á¡°ËÇϰí execÄÝ¿¡ ÇÊ¿äÇÑ º¯È¯À» ÇÑ´Ù. ¿¹¸¦ µé¾î ¸¸¾à ÆÄÀÏÀÌ setuid·Î µÇ¾î ÀÖ°í ÆÄÀϼ­¹ö°¡ ´É·ÂÀÌ ÀÖÀ¸¸é »õ À̹ÌÁöÀÇ »ç¿ëÀÚ È®ÀÎÀ» ¹Ù²Ü °ÍÀÌ´Ù. ¶ÇÇÑ ÆÄÀϼ­¹ö´Â ÀÌÀü ÀÛ¾÷¿¡ ¾ï¼¼½º¸¦ ÇÑ ÇÁ·Î±×·¥ÀÌ »õ ÀÛ¾÷À¸·Î ¾ï¼¼½º¸¦ °è¼Ó ÇØ¾ß ÇÒ °ÍÀÎÁö °áÁ¤ÇØ¾ß ÇÑ´Ù. ÆÄÀϼ­¹ö°¡ ±ÇÇÑÀ» Áõ°¡Çϰí Àְųª ÀÐÁö ¾ÊÀº À̹ÌÁö¸¦ ½ÇÇàÇϸé exec´Â º¸¾ÈÀ» À¯ÁöÇϱâ À§ÇØ »õ MachÀÛ¾÷À¸·Î ´ëüÇÒ Çʿ䰡 ÀÖ´Ù.

»õ À̹ÌÁö¿¡ °ü·ÃµÈ ¹æ¹ýÀ» °áÁ¤ÇÑ µÚ ÆÄÀϽýºÅÛÀº exec¼­¹ö¿¡°Ô ÀÌ ÀÛ¾÷À» ÀоîµéÀ̵µ·Ï ºÎ¸¥´Ù. BFD(Binary File Descriptor)¸¦ »ç¿ëÇÏ´Â ÀÌ ¼­¹ö´Â À̹ÌÁö¸¦ ÀоîµéÀδÙ. BFD´Â ¸¹Àº °´Ã¼ ÆÄÀÏ Çü½ÄÀ» Áö¿øÇÑ´Ù. °ÅÀÇ ¸ðµç Áö¿øÇÏ´Â Çü½ÄÀ» ½ÇÇàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ¼­¹ö´Â ¶ÇÇÑ #!À¸·Î ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®¸¦ ´Ù·ç°í, Áö½ÃÇÏ´Â ÇÁ·Î±×·¥À» ÅëÇØ ½ÇÇàÇÑ´Ù.

¶ÇÇÑ Ç¥ÁØ exec¼­¹ö´Â »õ À̹ÌÁöÀÇ È¯°æº¯¼ö¸¦ º»´Ù. ¸¸¾à ¿©±â¿¡ EXECSERVERS ȯ°æº¯¼ö°¡ ÀÖ´Ù¸é ½Ã½ºÅÛ ±âº»°ª ´ë½Å exec¼­¹ö·Î ÁöÁ¤µÈ °ÍÀ» »ç¿ëÇÑ´Ù(¹°·Ð ÆÄÀϼ­¹ö°¡ ¾ÈÀüÇÏ°Ô À¯ÁöÇÒ°ÍÀ» ¿ä±¸¹ÞÀº exec¿¡´Â ½ÇÇàµÇÁö ¾Ê´Â´Ù).

»õ À̹ÌÁö´Â GNU C¶óÀ̺귯¸®¿¡¼­ ½ÇÇàµÇ¸ç, exec¼­¹ö¿¡°Ô Àμö, ȯ°æº¯¼ö, umask, ÇöÀç µð·ºÅ丮 µîÀ» ¾òµµ·Ï ¸Þ½ÃÁö¸¦ ÁØ´Ù. ÀÌ ¾î¶² Ãß°¡ÀûÀÎ »óŵµ ÆÄÀÏÀ̳ª exec¼­¹ö¿¡°Ô Ưº°ÇÑ °ÍÀº ¾Æ´Ï´Ù. ¸¸¾à ÇÁ·Î±×·¥ÀÌ ¹Ù¶õ´Ù¸é ¶óÀ̺귯¸®¿¡¼­ ´Ù¸¥ ¹æ½ÄÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

»õ ÇÁ·Î¼¼½º

fork½Ã½ºÅÛ ÄÝÀº GNU C¶óÀ̺귯¸®¿¡¼­ °ÅÀÇ ´Ù ±¸ÇöµÇ¾ú´Ù. »õ ÀÛ¾÷Àº MachÄ¿³Î ÄÝ¿¡ ÀÇÇØ ¸¸µé¾îÁø´Ù. C¶óÀ̺귯¸®´Â ÀÌ À̹ÌÁö¸¦ ÀûÀýÇÏ°Ô »ó¼ÓµÇµµ·Ï Á¤¸®ÇÑ´Ù. »õ ÀÛ¾÷Àº ÇÁ·Î¼¼½º ¼­¹ö¿¡ µî·ÏµÈ´Ù(ÇʼöÀûÀº ¾Æ´Ï´Ù). C¶óÀ̺귯¸®´Â fork½Ã¿¡ ºÎ¸¦ ÇÔ¼öÀÇ º¤Å͸¦ Á¦°øÇÑ´Ù. ÇÑ º¤ÅÍ´Â forkÀü¿¡ ºÒ¸®°í, Çϳª´Â ºÎ¸ð ÇÁ·Î¼¼½º¿¡¼­ ³ªÁß¿¡, Çϳª´Â ÀÚ½Ä ÇÁ·Î¼¼½º¿¡¼­ ³ªÁß¿¡ ºÒ¸°´Ù(ÀÌ ±â´ÉÀº ÀϹÝÀûÀÎ fork-ÄÝ ¼ø¼­¸¦ ´ëüÇϱâ À§ÇØ ¾²ÀÌÁö´Â ¾Ê´Â´Ù. ÀÌ´Â fork°¡ ÀϾ±â Àü¿¡ Æ÷Æ®¸¦ ´Ý°Å³ª Áö¿ö¾ß Çϴµ¥ ÇÊ¿äÇÑ ¶óÀ̺귯¸®¸¦ À§ÇÑ °ÍÀÌ´Ù). C¶óÀ̺귯¸®´Â ÁøÇàÁßÀÎ POSIX.4a¿¡ Á¤ÀÇµÈ µÎ°³ÀÇ fork ÄÝÀ» ±¸ÇöÇÑ´Ù(½º·¹µå È®Àå¿¡¼­ ½Ç½Ã°£ È®ÀåÀ¸·Î ´Ù·ç´Â Á¦¾ÈµÈ Ç¥ÁØ).

¾Æ¹«°Íµµ »ç¿ëÀÚ¿¡°Ô ÀÌ·± ¹æ¹ýÀ¸·Î ÀÛ¾÷À» ¸¸µé¶ó°í °­¿äÇÏÁö ¾Ê´Â´Ù. ÇÁ·Î±×·¥ÀÌ ¾à°£ÀÇ Æ¯Â¡°ú ÇÔ²² °ÅÀÇ º¸Åë fork¸¸ »ç¿ëÇÏ·Á°í ÇÏ¸é ±×·¸°Ô ÇÒ ¼ö ÀÖ´Ù. ÈÄÅ©´Â C¶óÀ̺귯¸®°¡ Á¦°øÇÒ °ÍÀ̰í, ÇÔ¼ö´Â ¿ÏÀüÈ÷ ´ëüµÉ ¼öµµ ÀÖ´Ù. À̵é Áß ¾î´À°Íµµ ÀüÅëÀûÀÎ À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ °¡´ÉÇÏÁö ¾Ê´Ù.

ºñµ¿±â ¸Þ¼¼Áö

¾Õ¿¡¼­µµ ¸»ÇßµíÀÌ ÇÁ·Î¼¼½º ¼­¹ö´Â µî·ÏÇÏ´Â °¢ ÀÛ¾÷¿¡ ´ëÇÑ ¸Þ¼¼Áö Æ÷Æ®¸¦ À¯ÁöÇÑ´Ù. ÀÌ Æ÷Æ®´Â °ø°³À̰í, ÀÛ¾÷¿¡ ºñµ¿±â ¸Þ¼¼Áö¸¦ º¸³»´Âµ¥ ¾²ÀδÙ. ¿¹¸¦ µé¾î ½ÅÈ£(signal)¸¦ ¸Þ¼¼Áö Æ÷Æ®¿¡ º¸³½´Ù. ½ÅÈ£ ¸Þ¼¼Áö´Â ¶ÇÇÑ ½ÅÈ£¸¦ º¸³»±â À§ÇØ ¼Û½ÅÀÚ¸¦ ¹Ï¾î¾ß ÇÑ´Ù´Â Áö½Ã·Î Æ÷Æ®¸¦ Á¦°øÇÑ´Ù. GNU C¶óÀ̺귯¸®´Â ¿©·¯°¡Áö Æ÷Æ®¸¦ Á¦°øÇϴµ¥, °¢°¢Àº °¢ Æ÷Æ®¸¦ ¼ÒÀ¯ÇÏ´Â ´©±¸¿¡°Ô³ª º¸³¾ ¼ö ÀÖ´Â ½ÅÈ£ÀÇ ÁýÇÕÀ» ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î »ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ÀÛ¾÷ÀÇ Ä¿³Î Æ÷Æ®¸¦ ¼ÒÀ¯ÇÏ¸é ¾î¶² ½ÅÈ£¸¦ º¸³»´Â °ÍÀÌ Çã°¡µÈ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ Ưº°ÇÑ Å͹̳ΠidÆ÷Æ®¸¦ ¼ÒÀ¯Çϸé Űº¸µå³ª Áß´Ü ½ÅÈ£¸¦ º¸³¾ ¼ö ÀÖ´Ù. »ç¿ëÀÚ´Â C¶óÀ̺귯¸®ÀÇ ½ÅÈ£ ±ÇÇÑ Ç¥(signal permission table)¿¡ ÀÓÀÇÀÇ »õ ½ÅÈ£¸¦ µî·ÏÇÒ ¼ö ÀÖ´Ù.

ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ±×·ìÀÌ ¹Ù²î¸é ÇÁ·Î¼¼½º ¼­¹ö´Â »õ ÇÁ·Î¼¼½º ±×·ìÀ» Áö½ÃÇÏ´Â ½ÅÈ£¸¦ º¸³¾ °ÍÀÌ´Ù. ÀÌ °æ¿ì ÇÁ·Î¼¼½º ¼­¹ö´Â ÀÛ¾÷ÀÇ Ä¿³Î Æ÷Æ®¸¦ Á¦°øÇÏ¿© ±× ±ÇÀ§¸¦ È®ÀÎÇÑ´Ù.

C¶óÀ̺귯¸®´Â ¶ÇÇÑ ÇöÀç ÇÁ·Î¼¼½º¿¡ ÀÇÇØ »ç¿ëµÇ´Â uid¸¦ ´õÇϰí Áö¿ì±â À§ÇÑ ¸Þ¼¼Áö¸¦ °®´Â´Ù. ÇÁ·Î±×·¥¿¡ »õ uid°¡ º¸³»Áö¸é ¶óÀ̺귯¸®´Â À̸¦ ÇöÀç ÁýÇÕ¿¡ ´õÇÏ°í »õ ÀÎÁõÀ» ¹àÈ÷±â À§ÇÏ¿© ±×°¡ ¾Æ´Â ¸ðµç I/O¼­¹ö¿Í ¸Þ¼¼Áö¸¦ ±³È¯ÇÑ´Ù. ºñ½ÁÇÏ°Ô ¸Þ¼¼Á¦´Â uid¸¦ Áö¿ï ¼ö ÀÖ´Ù. ÈÄÀÚ¿¡¼­ ºÎ¸¥ ÀÌ´Â ÇÁ·Î¼¼½ºÀÇ ÀÛ¾÷ Æ÷Æ®¸¦ Á¦°øÇØ¾ß ÇÑ´Ù(±ÇÇÑÀ» ´õ Á־ ÇÁ·Î¼¼½º¿¡ ÇØ¸¦ ÀÔÈú ¼ö´Â ¾øÁö¸¸ ±ÇÇÑÀ» »©¾ÑÀ» ¼ö´Â ÀÖ´Ù). Hurd´Â »ç¿ëÀÚ ÇÁ·Î±×·¥ÀÌ ÀÌ ¸Þ¼¼Áö¸¦ ÇÁ·Î¼¼½º¿¡°Ô º¸³»´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ¿¹¸¦ µé¾î su¸í·ÉÀº ÇöÀçÀÇ ·Î±×ÀÎ ¼¼¼ÇÀÇ ¸ðµç ÇÁ·Î±×·¥ÀÌ ¼­ºê½©À» ¸¸µé¾î³»±â º¸´Ù´Â »õ uid¸¦ ¾ò°Ô ÇÒ ¼ö ÀÖ´Ù.

C¶óÀ̺귯¸®´Â ÇÁ·Î±×·¥ÀÌ ÀνÄÇÏ°í ½Í¾îÇÏ´Â ºñµ¿±â ¸Þ¼¼Áö¸¦ ´õÇÒ ¼ö ÀÖ°Ô Çϸç, ¶ÇÇÑ Ç¥ÁØ ÁýÇÕÀ» ÀνÄÇÒ ¼ö ¾ø°Ô ÇÏ´Â ÀÏÀ» Çã°¡ÇÑ´Ù.

´õ À¯´Ð½ºÃ³·³ º¸ÀÌ°Ô Çϱâ

C¶óÀ̺귯¸®´Â BSD¿Í POSIXÀÇ ¸ðµç ÄÝ¿Í ¿©±â¿¡ ´ëÇÑ ¸î¸îÀÇ È®ÀåÀ» ±¸ÇöÇÒ °ÍÀÌ´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ ½È¾îÇÏ´Â ÄÝÀ» ´ëüÇϰųª ¿ÏÀüÈ÷ ³Ñ¾î°¥ ¼ö ÀÖ°Ô ÇÑ´Ù. ¹Ý¸é¿¡ À¯´Ð½º¿¡¼­´Â ÄÝÀº ´ëüǰ ¾øÀÌ 'ÀÖ´Â ±×´ë·Î'½á¾ß ÇÑ´Ù.

¾î¶² ȯ°æ¿¡¼­´Â ¹ÙÀ̳ʸ® ȣȯµµ Áö¿øÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀÛ¾÷Àº ÇÁ·Î¼¼½ºÀÇ ¾îµå·¹½º °ø°£ ¾îµò°¡¿¡ ÀûÀçµÇ´Â Ưº°ÇÑ ¹öÀüÀÇ ¶óÀ̺귯¸®¸¦ ¸¸µå´Â °ÍÀ¸·Î µ¿ÀÛÇÑ´Ù(¿¹¸¦ µé¾î VAX¿¡¼­´Â ÀÌ´Â ½ºÅà À§¿¡ ³Ö°Ô µÈ´Ù). ½Ã½ºÅÛ ÄÝ Àüȯ(system call redirection)À̶ó ºÒ¸®´Â MachÀÇ Æ¯Â¡Àº À̶§ À¯´Ð½º ½Ã½ºÅÛ ÄÝÀ» °¡·Îä¾î ÀÌ Æ¯º°ÇÑ ¹öÀüÀÇ ¶óÀ̺귯¸®·Î ¹Ù²Ù°Ô Çϴµ¥ ¾²ÀδÙ(°ÅÀÇ ¸ðµç ±â°è¿¡¼­ ÀÌ·± Àüȯ¿¡ µå´Â ºñ¿ëÀº ¾ÆÁÖ ÀÛ´Ù. ÀÌ´Â Mach¿¡¼­ ¾ÆÁÖ ÃÖÀûÈ­µÈ ±æÀÌ´Ù. 386¿¡¼­´Â ¾à 20°³ÀÇ ¸í·ÉÀε¥, ÀÌ´Â °£´ÜÇÑ ÇÁ·Î½ÃÀú Äݺ¸´Ù Á¶±Ý ³ª»Ü »ÓÀÌ´Ù).

½ÅÈ£ ¸¶½ºÅ©¿Í º¤ÅÍ(signal masks and vectors)¿Í °°Àº À¯´Ð½ºÀÇ ¸¹Àº Ư¡Àº ¶óÀ̺귯¸®¿¡ ÀÇÇØ ¿ÏÀüÈ÷ ´Ù·ç¾îÁø´Ù. ÀÌ´Â ±×·± Ư¡À» À¯´Ð½º¿¡¼­º¸´Ù ¾ÆÁÖ ½Î°Ô ±¸ÇöÇϵµ·Ï ÇÑ´Ù. ´Ù¸¥ ºñ¿ëÀÌ ¸¹ÀÌ µå´Â ¹æ¹ýÀ» ã¾Æ³»´À´Ï ÀÓ°èÁö¿ª(critical sections)À» º¸È£Çϱâ À§ÇØ sigblockÀ» È®ÀåÇÏ¿© »ç¿ëÇÏ´Â °ÍÀÌ ÇÕ¸®ÀûÀÌ´Ù.

³×Æ®¿÷ ÇÁ·ÎÅäÄÝ

Hurd´Â 4.4BSD ÇÁ·ÎÅäÄÝ ½ºÅÃÀ» Hurd·Î ¿Å±â±â ¾ÆÁÖ ½±°Ô ÇÏ´Â ¶óÀ̺귯¸®¸¦ °¡Áú °ÍÀÌ´Ù. ÀÌ´Â °¡»óÀûÀ¸·Î ÀÚÀ¯·Ó°Ô BSD°¡ Áö¿øÇÏ´Â ¸ðµç ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛÀ» °¡´ÉÇÏ°Ô ÇÒ °ÍÀÌ´Ù. ÇöÀç CCITTÇÁ·ÎÅäÄÝ, TCP/IPÇÁ·ÎÅäÄÝ, Xerox NSÇÁ·ÎÅäÄݰú ISOÇÁ·ÎÅäÄÝÀÌ Æ÷ÇԵǾî ÀÖ´Ù.

ÃÖÀû ¼º´ÉÀ» ³»±â À§ÇØ Ãʰí¼Ó I/O¸¦ À§ÇØ Á¦°øµÇ´Â HurdÀÇ Æ¯Â¡À» ÀÌ¿ëÇÏ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. ´ëºÎºÐÀÇ ÇÁ·ÎÅäÄÝ¿¡¼­ ÀÌ´Â ¾à°£ÀÇ »ý°¢À» ÇÊ¿ä·Î ÇÏÁö¸¸ ¸¹Àº ½Ã°£À» µéÀÌÁö´Â ¾Ê´Â´Ù. Hurd´Â TCP/IPÇÁ·ÎÅäÄÝÀ» µÉ ¼ö ÀÖ´Â ´ë·Î È¿À²ÀûÀ¸·Î ¿î¿µÇÏ°Ô µÉ °ÍÀÌ´Ù.

Hurd¼³°èÀÇ À¯¿¬¼ºÀÇ Èï¹ÌÀÖ´Â ¿¹Á¦·Î BSD¿¡¼­ ¼º´ÉÀ» À§ÇØ È®ÀåÇÏ¿© ¾²ÀÌ´Â IPÆ®·¹ÀÏ·¯ÀÇ °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. Hurd´Â Æ®·¹ÀÏ·¯¸¦ º¸³»°í ¹Þ°ÔµÉ °ÍÀÌÁö¸¸, ÀÌ·¸°Ô ÇÏ¿© ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡Àº °ÅÀÇ ¾ø´Âµ¥, º¹»çµÉ µ¥ÀÌÅÍÀÇ ¿ä±¸°¡ ¾ø°í ÆäÀÌÁö Á¤·ÄµÈ µ¥ÀÌÅÍÀÇ º¹»ç¸¦ ÇÇÇÏ´Â °ÍÀº ºÎÀûÀýÇϱ⠶§¹®ÀÌ´Ù.


ÀÌ ¹®¼­ÀÇ ¿øº»Àº http://www.fsf.org/software/hurd/hurd-paper.html ¿¡¼­ º¼ ¼ö ÀÖ½À´Ï´Ù. Hurd¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾òÀ¸½Ã·Á¸é GNUÀÇ Hurd Information Page¸¦ Âü°íÇϼ¼¿ä. ÀÌ ¹®¼­´Â ¿øº»À» ÀÓÀÇ·Î ¼öÁ¤ÇÏÁö ¾Ê°í ¹ø¿ªÀÚ¿Í ¿øº»ÀÇ Ãâó¸¦ ¹àÈ÷´Â ÇÑ ÀÚÀ¯·Ó°Ô ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.

$Id: index.shtml,v 1.1.1.1 2001/05/23 03:10:44 cjh Exp $

[ Home | Freetime works | FreeBSD | KFUG ]


Copyright © 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 CHOI Junho, all rights reserved.
Please send spam/UCE here to register your mail to razor