Linux Devfs (Device File System) FAQRichard GoochÃÖÁ¾Çʱ迵ÈÖÀÌ ¹®¼ÀÇ ¿øº»Àº http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.html ¿¡¼ ãÀ»¼ö ÀÖ°í, Ä¿³Î¼Ò½º¿Í ÇÔ²² Á¦°øµÇ´Â ÅؽºÆ® ¹®¼º¸´Ù º¸±â¿¡ ´õ ÆíÇÏ´Ù. ¹Ì·¯»çÀÌÆ®´Â http://www.ras.ucalgary.ca/~rgooch/linux/docs/devfs.html ¿¡ ÀÖ´Ù. ¶ÇÇÑ devfs¿Í °°ÀÌ »ç¿ëµÇ´Â µ¥¸óÀÌ Àִµ¥, http://www.atnf.csiro.au/~rgooch/linux/ ¿¡¼ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ»¼ö ÀÖ´Ù. ´ç½ÅÀÌ ½ÅûÇÒ °æ¿ì ¸ÞÀϸµ ¸®½ºÆ®ÀÇ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. mailto:majordomo (at) oss.sgi.com ·Î ¸ÞÀÏ º»¹®¿¡ subscribe devfs °ú °°Àº ³»¿ëÀ» Æ÷ÇÔÇÏ¿© ¸ÞÀÏÀ» º¸³»¶ó. ½ÅûÃë¼Ò´Â unsubscribe devfs À» Æ÷ÇÔÇÑ ¸ÞÀÏÀ» º¸³»¸é µÈ´Ù. ÀÌ ¸®½ºÆ®´Â http://oss.sgi.com/projects/devfs/archive/ ¿¡ º¸°üµÈ´Ù.
1. ÀÌ°ÍÀº ¹«¾ùÀΰ¡?Devfs´Â ·çÆ® ÆÄÀϽýºÅÛ¿¡¼ "½ÇÁ¦" ij¸¯ÅÍ ¹× Ư¼ö ºí·°µð¹ÙÀ̽º¸¦ Ãë±ÞÇÏ´Â °Í¿¡ ´ëÇÑ ´Ù¸¥ ¹æ¹ýÀÌ´Ù. Ä¿³Î µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£¿¡ ÀÇÇØ µî·ÏµÇ´Â °Íº¸´Ù ´õ ³ªÀº À̸§À¸·Î µð¹ÙÀ̽º¸¦ µî·ÏÇÒ¼ö ÀÖ´Ù. ÀÌ µð¹ÙÀ̽ºµéÀº ±× µå¶óÀ̹ö¿¡ ÁöÁ¤µÈ ¼ÒÀ¯±Ç°ú º¸È£±ÇÇÑÀ» °¡Áø »óÅ·ΠÀÚµ¿ÀûÀ¸·Î devfs¿¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. µ¥¸ó(devfsd)Àº ÀÌ·¯ÇÑ ±âº»°ªÀ» µ¤¾î½á¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Devfs´Â Ä¿³Î 2.3.46 ÀÌÈÄ ¹öÀüºÎÅÍ »ç¿ëÇÒ¼ö ÀÖ´Ù.
devfs¸¦ ¹Ù¶óº¸´Âµ¥¿¡ µÎ°¡Áö °üÁ¡ÀÌ ÀÖ´Ù : Çϳª´Â µð¹ÙÀ̽º ³×ÀÓ½ºÆäÀ̽º°¡ ´ÜÁö ¸¶¿îÆ®µÈ ÆÄÀϽýºÅÛó·³ ³×ÀÓ½ºÆäÀ̽º¶ó´Â °Í¿¡ ±âÃÊÇÑ °ÍÀÌ´Ù. ´Ù¸¥ Çϳª´Â ±× µð¹ÙÀ̽º ³×ÀÓ½ºÆäÀ̽ºÀÇ °üÁ¡À» Á¦°øÇÏ´Â ÆÄÀϽýºÅÛÀÇ Äڵ忡 ´ëÇÑ °üÁ¡ÀÌ´Ù. ³»(¿øÀúÀÚ)°¡ ÀÌ·± ±¸ºÐÀ» ¸¸µç ÀÌÀ¯´Â devfs´Â °¢ ¸¶¿îÆ®¸¶´Ù °°Àº µð¹ÙÀ̽º ³×ÀÓ½ºÆäÀ̽º¸¦ º¸¿©ÁÖ¸é¼ ¿©·¯¹ø ¸¶¿îÆ® µÉ¼ö Àֱ⠶§¹®ÀÌ´Ù. devfs¿¡ ´ëÇÑ ´ñ°¡´Â Ä¿³ÎÄÚµåÀÇ Å©±â¿Í ¸Þ¸ð¸® »ç¿ë·®ÀÌ ¼Ò·® Áõ°¡ÇÏ´Â °ÍÀÌ´Ù. ¾à 7ÆäÀÌÁöÀÇ ÄÚµå(__init ¼½¼Ç¿¡¼)¿Í ±× ³×ÀÓ½ºÆäÀ̽º¿¡¼ °¢ °³Ã¼¿¡ ´ëÇÏ¿© 72¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ´Ù. º¸ÅëÀÇ ½Ã½ºÅÛÀº ¼ö¹é°³ÀÇ µð¹ÙÀ̽º °³Ã¼¸¦ °¡Áö¸ç, ÀÌ°ÍÀº Á»´õ ¸¹Àº ÆäÀÌÁö¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ramdisc ¿¡ /dev ¸¦ ³Ö´Â ¹æ¹ý°ú ÀÌ°ÍÀ» ºñ±³ÇØ º¸¶ó. ÀϹÝÀûÀÎ ¸Ó½Å¿¡¼, ±× ´ñ°¡´Â 0.2 ÆÛ¼¾Æ® ÀÌÇÏÀÌ´Ù. 64¸Þ°¡ÀÇ ·¥À» °¡Áö´Â º¸ÅëÀÇ ½Ã½ºÅÛ¿¡¼´Â 0.1 ÆÛ¼¾Æ® ÀÌÇÏÀÌ´Ù. devfs ¿¡ ´ëÇØ "bloatware"¶ó´Â ºñ³Àº Á¤´ç¼ºÀÌ ¾ø´Ù. 2. devfs ¸¦ »ç¿ëÇÒ ÀÌÀ¯devfs¸¦ ÇÊ¿ä·Î ÇÏ´Â ¿©·¯ ¹®Á¦Á¡ÀÌ ÀÖ´Ù. ÀÌµé ¹®Á¦µé Áß¿¡ ¾î¶² °ÍµéÀº (´ç½ÅÀÇ °üÁ¡¿¡ µû¶ó¼) ¸Å¿ì ½É°¢ÇÏ°í, ¾î¶² °ÍµéÀº devfs ¾øÀÌ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, ÀüüÀûÀÎ ¸é¿¡¼ º¸¸é ÀÌ ¹®Á¦µéÀº devfs¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¼±ÅÃÇÒ ¼ö ÀÖ´Â °ÍÀº º¹ÀâÇÏ°í ÇêÁ¡Åõ¼ºÀÌÀÎ ÇÊ¿ä¾ø´Â userspace ¿¡¼ÀÇ ÇØ°á ÆÐÄ¡¸¦ ³»³õ´Â °Í°ú, °£´ÜÇÏ°í °ß°íÇϸç È¿°úÀûÀÎ devfs¸¦ »ç¿ëÇÏ´Â °ÍÀÇ µÑ Áß ÇϳªÀÌ´Ù. devfs¿¡ ´ëÇÑ ¸¹Àº ¹Ý·ÐÀÌ ÀÖ°í, ¸ðµÎ´Ù devfs¸¦ ±¸ÇöÇÏÁö ¾ÊÀ¸¸é ¾ò¾îÁö´Â ÀÌÀ͵éÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÇÏÁö¸¸, Áö±Ý±îÁö´Â Äڵ尡 ¾ø°Å³ª, devfs°¡ Á¦°øÇÏ´Â ¸ðµç ±â´ÉµéÀ» Á¦°øÇÒ¼ö ÀÖ´Â ¾î¶² ´ë¾Èµµ ¾ø´Ù. °Ô´Ù°¡, Á¦¾ÈµÈ ´ë¾ÈµéÀº »ç¿ëÀÚ °ø°£¿¡¼ ´õ º¹ÀâÇÏ´Ù. (±×¸®°í devfsº¸´Ù ´õ ÀûÀº ±â´ÉÀ» °¡Áø »óÅ·ΠÁ¦°øµÈ´Ù) ¾î¶² »ç¶÷µéÀº "Ä¿³Î Å©±â"ÀÇ Ãà¼Ò¸¦ ¸ñÇ¥·Î »ïÁö¸¸, ±×µéÀº userspace ¿¡ ¹ÌÄ¡´Â ¿µÇâÀº °í·ÁÇÏÁö ¾Ê´Â´Ù. Ä¿³Î°ø°£°ú »ç¿ëÀÚ °ø°£ÀÇ ÀüüÀûÀÎ º¹ÀâÇÔÀÇ Á¤µµ¸¦ Á¦ÇÑÇÑ (º¹À⼺ÀÌ ´úÇÑ) ¹æ¹ýÀÌ ÁÁÀº ¼Ö·ç¼ÇÀÌ´Ù. 2.1. ¸ÞÀÌÀú ¹øÈ£¿Í ¸¶ÀÌ³Ê ¹øÈ£ÀÇ ÇÒ´çÇöÁ¸ÇÏ´Â ½ºÅ°¸¶´Â °¢°¢ÀÇ µð¹ÙÀ̽º ¸¶´Ù ¸ÞÀÌÀú/¸¶ÀÌ³Ê µð¹ÙÀ̽º ¹øÈ£ÀÇ ÇÒ´çÀ» ¿ä±¸ÇÑ´Ù. ÀÌ°ÍÀº °¢ µð¹ÙÀ̽º¸¶´Ù °íÀ¯ÇÑ ¹øÈ£¸¦ °¡Áú ¼ö ÀÖ°Ô Çϱâ À§ÇÏ¿© (´ç½ÅÀÌ "°³ÀÎÀû"ÀÎ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ °³¹ßÇÏÁö ¾Ê´ÂÇÑ) ÀÌµé µð¹ÙÀ̽º ¹øÈ£µéÀ» ó¸®Çϱâ À§ÇÏ¿© Áß¾ÓÁýÁßÀûÀÎ ±ÇÇÑÀÌ ¿ä±¸µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. Devfs´Â ³×ÀÓ½ºÆäÀ̽º¿¡ ´ëÇÑ ºÎÇϸ¦ ´ú¾îÁØ´Ù. ÀÌ°ÍÀº Å©°Ô ºÎÇϸ¦ ´ú¾îÁÖ´Â °Íó·³ º¸ÀÌÁö ¾ÊÁö¸¸, ½ÇÁ¦·Î´Â ¾öû³ È¿°ú¸¦ ³½´Ù. µå¶óÀ̹ö °ü¸®ÀÚµéÀº ÀÚ¿¬ÀûÀ¸·Î ±× µð¹ÙÀ̽ºÀÇ ±â´ÉÀ» ¹Ý¿µÇÏ´Â µð¹ÙÀ̽º À̸§À» ¼±ÅÃÇϹǷÎ, ³×ÀÓ½ºÆäÀ̽ºÀÇ Ãæµ¹¿¡ ´ëÇÑ ÀáÀçÀû À§ÇèÀº Àû´Ù. ÀÌ°ÍÀ» ÇØ°áÇϱâ À§Çؼ´Â Ä¿³ÎÀÇ º¯°æÀÌ ÇÊ¿äÇÏ´Ù. 2.2. /dev °ü¸®ÇöÀçÀÇ µð¹ÙÀ̽º Á¢±Ù ¹æ½ÄÀº µð¹ÙÀ̽º ³ëµå¸¦ ÅëÇؼ ÇàÇØÁö´Â ¹æ½ÄÀ̱⠶§¹®¿¡, ½Ã½ºÅÛ °ü¸®ÀÚ¿¡ ÀÇÇؼ¸¸ µð¹ÙÀ̽º ³ëµå°¡ ¸¸µé¾îÁ®¾ß¸¸ ÇÑ´Ù. Ç¥ÁØ µð¹ÙÀ̽º¿¡ ´ëÇÏ¿© ´ç½ÅÀº ¸ðµç (¼ö¹é°³ÀÇ!)³ëµå¸¦ ¸¸µé¾î³»´Â MAKEDEV¶ó´Â ÇÁ·Î±×·¥À» ãÀ» ¼ö ÀÖ´Ù. ÀÌ°ÍÀº Ä¿³Î¿¡¼ÀÇ º¯È´Â MAKEDEV ÇÁ·Î±×·¥¿¡¼ ¹Ý¿µµÇ¾î¾ß Çϰųª, ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ¼öµ¿À¸·Î µð¹ÙÀ̽º ³ëµå¸¦ ¸¸µé¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±âº»ÀûÀÎ ¹®Á¦´Â ¸ÞÀÌÀú ¹øÈ£¿Í ¸¶ÀÌ³Ê ¹øÈ£¸¦ ±¸ºÐÇÏ´Â µÎ°³ÀÇ µ¥ÀÌÅͺ£À̽º°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀÌ´Ù. Çϳª´Â Ä¿³Î¿¡ ÀÖ°í, ³ª¸ÓÁö´Â /dev¿¡ ÀÖ´Ù (¶Ç´Â ¸¸¾à ´ç½ÅÀÌ ±×·± ¹æ¹ýÀ¸·Î º¸±â ¿øÇÑ´Ù¸é MAKEDEV ÇÁ·Î±×·¥¿¡ ÀÖ´Ù.). ÀÌ°ÍÀº ½Ç¿ëÀûÀÌÁö ¸øÇÑ Á¤º¸ÀÇ Áߺ¹ÀÌ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ´Â Ä¿³ÎÀÇ º¯°æÀÌ ÇÊ¿äÇÏ´Ù. 2.3. /dev µð·ºÅ丮ÀÇ Áõ°¡ÀüÇüÀûÀÎ /dev µð·ºÅ丮¿¡´Â 1200°³ ÀÌ»óÀdzëµå°¡ ÀÖ´Ù! ÀÌ µð¹ÙÀ̽ºµéÀÇ ´ëºÎºÐÀº Çϵå¿þ¾î°¡ ¾ø±â ¶§¹®¿¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ÀÌ °Å´ëÇÑ /dev ´Â µð¹ÙÀ̽º Á¢±Ù ½Ã°£À» Áõ°¡½ÃŲ´Ù (³ª´Â ´ÜÁö dentry Ž»ö ½Ã°£°ú Á¸ÀçÇÏÁö ¾Ê´Â µð½ºÅ©ÀÇ inode¸¦ Àдµ¥ °É¸®´Â ½Ã°£¸¸À» °è»êÇÑ °ÍÀÌ´Ù : ´ÙÀ½ Ç׸ñ¿¡¼´Â Á»´õ ²ûÂïÇÑ ¿¹¸¦ º¸¿©ÁØ´Ù) ´ÙÀ½ÀÇ ¿¹´Â SCSI µð¹ÙÀ̽º¸¦ °í·ÁÇÑ´Ù¸é /dev µð·ºÅ丮°¡ ¾ó¸¶³ª Ä¿Áú¼ö ÀÖ´Â °¡¸¦ º¸¿©ÁØ´Ù.
´Ù¸¥ ¹®Á¦´Â ÃÖÃÊ·Î ÂüÁ¶µÉ¶§ inode ¸¦ Ž»öÇϴµ¥ °É¸®´Â ½Ã°£ÀÌ´Ù. ¸Þ¸ð¸®»óÀÇ ¸®½ºÆ®¸¦ ÅëÇÏ¿© Ž»öÇϴµ¥ °É¸®´Â ½Ã°£ »Ó¸¸ ¾Æ´Ï¶ó, µð½ºÅ©¿¡¼ inode¸¦ Àдµ¥ °É¸®´Â ½Ã°£µµ ÀÖ´Ù. ÀÌ ¹®Á¦´Â Ä¿³Î·Î±×¸¦ ºÐ¼®ÇÏ¿© ÇÊ¿äÇÏÁö ¾ÊÀ¸¸é /dev °³Ã¼¸¦ »èÁ¦ÇÏ°í ÇÊ¿äÇÒ¶§ »ý¼ºÇÏ´Â ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© »ç¿ëÀÚ °ø°£»ó¿¡¼ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº »õ·Î¿î ¸ðµâÀÌ ·ÎµåµÉ¶§¸¶´Ù ½ÇÇàµÉ °ÍÀÌ°í, ¸¹Àº ºÎºÐ ´À·ÁÁö°Ô µÉ °ÍÀÌ´Ù. SCSI µð¹ÙÀ̽º¿¡ ´ëÇÏ¿© µð¹ÙÀ̽º ³ëµå¸¦ ÀÚµ¿À¸·Î ¸¸µå´Â scsidev ¶ó ºÒ¸®´Â ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº /proc/scsi¿¡¼ ÆÄÀÏÀ» Ž»öÇÏ´Â ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÑ´Ù. ºÒÇàÈ÷µµ, ´Ù¸¥ µð¹ÙÀ̽º ³ëµå¿¡ ´ëÇØ ÀÌ °³³äÀ» È®ÀåÇϱâ À§Çؼ´Â ÇöÁ¸ÇÏ´Â µå¶óÀ̹öµéÀ» ¸¹Àº ºÎºÐ ¼öÁ¤ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù (/proc ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¤º¸¸¦ Á¦°øÇØ¾ß Çϱ⠶§¹®¿¡). ÀÌ°ÍÀº °£´ÜÇÑ º¯°æÀÌ ¾Æ´Ï´Ù (³ª´Â devfs°¡ À¯»çÇÑ ÀÏÀ» ÇÑ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù). ´ç½ÅÀÌ ÀÌ·¯ÇÑ ¸ðµç ³ë·ÂÀ» ÇÏ´õ¶óµµ, (ÀÌ Á¤º¸¸¦ Á¦°øÇÏ°í ÀÖ´Â) devfs¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ³ªÀ» °ÍÀÌ´Ù. °Ô´Ù°¡, ¿©·¯°³ÀÇ ¼·Î ´Ù¸¥ µð¹ÙÀ̽º µå¶óÀ̹öµéÀÌ ¼·Î ´Ù¸¥ ¹æ¹ýÀ¸·Î °¢°¢ÀÇ Á¤º¸¸¦ Á¦°øÇÏ´Â °Íó·³, ±×·¯ÇÑ ½Ã½ºÅÛÀº Ư¼öÇÑ ¸ñÀûÀ» À§ÇØ ¸¸µé¾îÁö´Â ½Ã½ºÅÛµé°ú ¸¶Âù°¡Áö·Î, °¢°¢ÀÇ Æ¯¼º¿¡ ¸Â°Ô ±¸¼ºµÇ¾î¾ß ÇÑ´Ù. Devfs´Â µð¹ÙÀ̽º ³ëµå ½º½º·Î ÀÚ¿¬½º·´°Ô Á¤º¸¸¦ Á¦°øÇÏ°Ô²û ÇÏ´Â ÀÏÁ¤ÇÑ ¸ÞÄ¿´ÏÁòÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î ½Ã½ºÅÛÀÇ ±¸¼ºÀÌ º¸´Ù ´õ ¸íÈ®ÇØÁø´Ù!! 2.4. µð¹ÙÀ̽º µå¶óÀ̹öÀÇ struct file_operations ±¸Á¶Ã¼¿¡ ´ëÇÑ ³ëµåµð¹ÙÀ̽º ³Ñ¹ö¸¦ °¡Áö°í (disc-based) /dev µð·ºÅ丮 ¾Æ·¡ÀÇ ¹®ÀÚ / ºí·° ÀåÄ¡ ³ëµåµé°ú ½ÇÁ¦ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ¿¬°áÇÏ´Â ¹æ¹ý°ú, devfs ¿¡¼ µî·ÏµÈ °³Ã¼µéÀÌ ½ÇÁ¦ µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ¿¬°áµÇ´Â ¹æ¹ý »çÀÌ¿¡´Â ¸Å¿ì Áß¿äÇÑ Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù. 8ºñÆ®ÀÇ ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£¸¦ °¡Áö°í disc-based c&b ³ëµåµé°ú ÇØ´ç ¸ÞÀÌÀú ³Ñº£ÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ¿¬°áÇÏ´Â °ÍÀº °íÁ¤µÈ 128 °³ÀÇ ¿£Æ®¸® Å×À̺íÀ» ÅëÇÏ¿© ÀÌ·ç¾îÁø´Ù. ÆÄÀϽýºÅÛµéÀº ¹®ÀÚ/ºí·Ï ÀåÄ¡ÆÄÀÏ¿¡ ´ëÇÑ inode operation À» {chr,blk}dev_inode_operations ·Î ¼³Á¤ÇØ µÐ´Ù. µû¶ó¼, µð¹ÙÀ̽º°¡ open µÇ¾úÀ» ¶§, ¾à°£ÀÇ indirect call ¸¸À¸·Î ºü¸£°Ô file_operation ±¸Á¶Ã¼ÀÇ ÇÔ¼ö Æ÷ÀÎÅ͵éÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ´Ù¸¥ ±âŸÀÇ(miscellaneous) ¹®ÀÚ µð¹ÙÀ̽ºµé -- (¿ªÀÚÁÖ : ¸¶ÀÌ³Ê ³Ñ¹öµé¿¡ µû¶ó ÀüÇô ´Ù¸¥ ÀåÄ¡°¡ µÉ ¼öµµ ÀÖ´Â ÀåÄ¡µé, ¿¹:tty (major number 3,4)) -- ¶§¹®¿¡ µÎ¹ø° ´Ü°è°¡ ÇÊ¿äÇÏ´Ù : ±× ÆÄÀÏÀÌ ¿·ÈÀ»¶§ °°Àº ¸¶ÀÌ³Ê ¹øÈ£¸¦ °¡Áø µå¶óÀ̹ö ¿£Æ®¸®¸¦ Ž»öÇÏ°í, Àû´çÇÑ ¸¶ÀÌ³Ê ¿ÀÇ ¸Þ½îµå¸¦ È£ÃâÇÑ´Ù. ÀÌ ÅÆ»öÀº µð¹ÙÀ̽º ³ëµå¸¦ ¿¶§ Ç×»ó ¼öÇàµÈ´Ù. ¾î¼¸é, ¿ÀÇ ¸Þ½îµå¸¦ ã±â Àü¿¡ ¼ö½Ê°³ÀÇ miscellaneous °³Ã¼¸¦ Ž»öÇÒ °ÍÀÌ´Ù. ¸¹Àº ¿À¹öÇìµå¸¦ ÀÏÀ¸Å°Áö´Â ¾Ê´Â´Ù ÇÏ´õ¶óµµ, ÇÊ¿ä¾ø´Â ÀÛ¾÷À¸·Î º¸ÀδÙ. ¸®´ª½º´Â ¶§¶§·Î 8ºñÆ®ÀÇ ¸ÞÀÌÀú/¸¶ÀÌ³Ê °æ°è¸¦ ³Ñ¾î¼¾ß¸¸ ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ¸¸¾à 16ºñÆ®·Î °¢°¢ÀÇ ¹øÈ£ÀÇ Å©±â¸¦ Áõ°¡½ÃŲ´Ù¸é, ¸ÞÀÌÀú Å×À̺íÀº(ij¸¯ÅÍ ¹× ºí·° µð¹ÙÀ̽º¿¡ ´ëÇØ ÇϳªÀÇ) 64k ¿£Æ®¸®°¡ ÇÊ¿äÇϱ⠶§¹®¿¡ (x86 ¿¡¼´Â 512kBytes, 64 ºñÆ® ½Ã½ºÅÛ¿¡¼´Â1 ¸Þ°¡¹ÙÀÌÆ®), ±× ¸ÞÀÌÀú µå¶óÀ̹ö¸¦ »ç¿ëÇÏ´Â Àε¦½Ì ½ºÅ°¸¶´Â »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù. µû¶ó¼ miscellaneous ij¸¯ÅÍ µð¹ÙÀ̽º¸¦ »ç¿ëÇÏ´Â °Í°ú ºñ½ÁÇÑ ½ºÅ°¸¶¸¦ »ç¿ëÇؾ߸¸ ÇÑ´Ù. ÀÌ°ÍÀº Ž»ö½Ã°£ÀÌ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡¼ ¸ÞÀÌÀú µð¹ÙÀ̽º µå¶óÀ̹öÀÇ Æò±Õ ¼ö¿¡ µû¶ó ¼±ÇüÀûÀ¸·Î Áõ°¨ÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. ¸ðµç "µð¹ÙÀ̽º"°¡ Çϵå¿þ¾î´Â ¾Æ´Ï´Ù. ¾î¶² °ÍÀº KGIó·³ Á»´õ °í¼öÁØÀÇ µå¶óÀ̹öµéÀÌ´Ù. µû¶ó¼ ´ç½ÅÀº Çϵå¿þ¾îÀÇ Áõ°¡ ¾øÀÌ ´õ ¸¹Àº "µð¹ÙÀ̽º"µéÀ» ¾òÀ» ¼ö ÀÖ´Ù. ´ç½ÅÀº Áú¼Á¤¿¬ÇÑ(±ÕÇüÀâÈù:-) ¹ÙÀ̳ʸ® ±¸Á¶¸¦ »ý¼ºÇÔÀ¸·Î½á ÀÌ°ÍÀ» Çâ»ó ½Ãų¼ö ÀÖ°í, ÀÌ °æ¿ì¿¡ Ž»ö½Ã°£Àº log(N)À¸·Î µÈ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â, Ž»ö½Ã°£À» Çâ»ó½ÃÅ°±â À§ÇØ ÇؽÌ(hashing)À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ²À Çؾ߸¸ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó¸é ¿Ö ¸ðµÎ¸¦ Ž»öÇÏ·Á Çϴ°¡? ´Ù½Ã Çѹø, ÀÌ°ÍÀº ÇÊ¿ä¾ø´Â °Íó·³ º¸ÀδÙ. devfs´Â ¸ÞÀÌÀú&¸¶ÀÌ³Ê ½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¾Ê´Â ´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. devfs ¿£Æ®¸®¿¡ ´ëÇÑ ¿¬°áÀº /dev °³Ã¼¸¦ Ž»öÇßÀ»¶§ ÀϾÙ. devfs_register() ÇÔ¼ö°¡ È£ÃâµÇ¸é, ³»ºÎÀÇ Å×À̺íÀº ±× ¿£Æ®¸® À̸§°ú file_operationsÀ» Ãß°¡ÇÑ´Ù. ±× dentry ij½Ã°¡ ¹Ì¸® /dev ¿£Æ®¸®¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù¸é, ÀÌ ³»ºÎÀÇ Å×À̺íÀº file_operations¸¦ ¾ò±â À§ÇÏ¿© Ž»öµÇ°í, inode´Â »ý¼ºµÈ´Ù. ¸¸¾à dentry ij½¬°¡ ÀÌ¹Ì ±× ¿£Æ®¸®¸¦ °¡Áö°í ÀÖ´Ù¸é, Ž»ö½Ã°£Àº ÇÊ¿ä¾ø´Ù (other than the dentry scan itself, but we can't avoid that anyway, and besides Linux dentries cream other OS's which don't have them:-). ¶ÇÇÑ, devfs¿¡ ³ëµå ¿£Æ®¸®ÀÇ ¼ö´Â »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽º ¿£Æ®¸®ÀÇ ¼ö¿Í °°´Ù. Áï, "»ó»óÇÒ ¼ö ÀÖ´Â" ¼ö°¡ ¾Æ´Ï´Ù. disc-based /dev¿¡¼ ÇÊ¿ä¾ø´Â ¿£Æ®¸®¸¦ Áö¿î´Ù ÇÏ´õ¶óµµ, °ø°£À» Àý¾àÇϱâ À§ÇÏ¿© ½º½º·Î Á¦ÇÑÇÏ´õ¶óµµ »ó»óÇÒ ¼ö ÀÖ´Â ¿£Æ®¸®ÀÇ ¼ö´Â ¿©ÀüÈ÷ °°Àº ä·Î ³²¾ÆÀÖ´Ù. Devfs´Â VFS ³ëµå¿Í µð¹ÙÀ̽º µå¶óÀ̹ö »çÀÌÀÇ ºü¸¥ ¿¬°áÀ» Á¦°øÇÑ´Ù. 2.5. ½Ã½ºÅÛ °ü¸® µµ±¸·Î¼ÀÇ /dev/dev µð·ºÅ丮´Â ³»°¡ °¡Áö°í ÀÖÁö ¾Ê´Â ´ëºÎºÐÀÇ µð¹ÙÀ̽º¸¦ Æ÷ÇÔÇÏ¿© °¡´ÉÇÑ ¸ðµç µð¹ÙÀ̽ºÀÇ ³ëµå¸¦ Æ÷ÇÔÇÑ´Ù. Devfs´Â ´ÜÁö ½Ã½ºÅÛ¿¡¼ »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽º¸¸ º¸¿©ÁØ´Ù. ÀÌ°ÍÀº /devÀÇ ¸ñ·ÏÀ» ¸¸µç´Ù´Â »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽º¸¦ Æí¸®ÇÑ ¹æ¹ýÀ¸·Î üũÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. 2.6. ¸ÞÀÌÀú&¸¶ÀÌ³Ê Å©±âÇöÀç ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£µéÀº °¢°¢ 8ºñÆ®·Î Á¦ÇѵǾî ÀÖ´Ù. ÀÌ°ÍÀº ÇϳªÀÇ ¸ÞÀÌÀú ³Ñ¹ö¸¦ ¼ÒºñÇÏ´Â SCSI µð½ºÅ© µå¶óÀ̹ö¿Í °°Àº µå¶óÀ̹ö¿¡¼´Â ÇÑ°è¿äÀÎÀÌ µÈ´Ù. 16°³ÀÇ µð½ºÅ©¸¸ Áö¿øµÇ°í °¢ µð½ºÅ©´Â 15°³ÀÇ ÆÄƼ¼ÇÀ» °¡Áú ¼ö ÀÖ´Ù. ¾Æ¸¶ ÀÌ°ÍÀº ´ç½Å¿¡°Ô´Â ¹®Á¦°¡ ¾Æ´ÒÁö ¸ð¸£³ª, µð½ºÅ© ¾î·¹À̸¦ »ç¿ëÇÏ¿© Å« ¸®´ª½º ½Ã½ºÅÛÀ» ¸¸µå´Â ÀÌ¿¡°Ô´Â Å« ¹®Á¦°¡ µÈ´Ù. Devfs¿¡¼ ÀÓÀÇÀÇ Æ÷ÀÎÅÍ´Â 32ºñÆ® µð¹ÙÀ̽º ±¸ºÐÀÚ¸¦ (i.e. 32ºñÆ® ¸¶ÀÌ³Ê ³Ñ¹ö¸¦ °¡Áö´Â °Íó·³ º¸ÀÌ´Â) »ç¿ë°¡´ÉÇÑ °¢°¢ÀÇ µð¹ÙÀ̽º ¿£Æ®¸®·Î ¿¬°á½Ãų¼ö ÀÖ´Ù. ÀÌ°ÍÀº Ä¿³Î¿¡¸¸ °ü·ÃµÈ °ÍÀ̹ǷÎ, ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£¸¦ Å©±â¸¦ Áõ°¡½ÃÅ°´Â °Í¿¡ ´ëÇÏ¿© C ¶óÀ̺귯¸®¿ÍÀÇ È£È¯¿¡ ´ëÇÑ ³í¶õÀº ÇÊ¿ä¾ø´Ù. »ç¿ëÀÚ °ø°£¿¡¼ ȣȯ¼ºÀ» À¯ÁöÇÏ´Â °Í¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº "µð¹ÙÀ̽º ¹øÈ£ÀÇ ÇÒ´ç"¿¡ ´ëÇÑ ¼½¼ÇÀ» º¸¶ó. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϴµ¥´Â Ä¿³ÎÀÇ º¯°æÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ°ÍÀ» ÀÛ¼ºÇÔÀ¸·Î½á, Ä¿³ÎÀº SCSI µð½ºÅ© µå¶óÀ̹ö°¡ ´õ ¸¹Àº ¸ÞÀÌÀú ¹øÈ£¸¦ ÇÒ´ç¹Þ°í, 128 µð½ºÅ© ÀÌ»óÀ» Áö¿øÇϵµ·Ï ¼öÁ¤µÇ¾ú´Ù. ÀÌµé ¸ÞÀÌÀú ¹øÈ£µéÀÌ ºñ¿¬¼ÓÀû (¹«°èȹÀûÀÎ È®ÀåÀÇ °á°ú·Î ÀÎÇØ) À̹ǷÎ, ±×°ÍÀÇ ±¸ÇöÀº óÀ½º¸´Ù ´õ ¼º°¡½Å ÀÏÀÌ µÇ¾ú´Ù. IP ÁÖ¼ÒÀÇ ºÎÁ·À» ÀϽÃÀûÀ¸·Î ±Øº¹Çϱâ À§ÇØ IPv4 ¸¦ º¯°æÇÏ´Â °Í°ú ¸¶Âù°¡Áö·Î, »ç¶÷µéÀº Á¦ÇÑ»çÇ×ÀÌ »ý±â¸é ±×°ÍÀ» µÑ·¯°¥ Æ®¸¯À» ã´Â´Ù. ±×·¯³ª IPv6 ³ª devfs ¿Í °°Àº ±Ùº»ÀûÀÎ ÇØ°áÃ¥ÀÇ µµÀÔÀº ´õÀÌ»ó ´ÊÃçÁ®¼´Â ¾ÈµÈ´Ù. 2.7. ÀбâÀü¿ë ·çÆ® ÆÄÀϽýºÅÛ·çÆ® ÆÄÀϽýºÅÛ¿¡ µð¹ÙÀ̽º ³ëµå¸¦ °¡Áø´Ù´Â °ÍÀº, ¸¸¾à ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ Àбâ Àü¿ëÀ¸·Î ¸¶¿îÆ®µÇ¾úÀ» °æ¿ì¿£ ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¸øÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±×°ÍÀº tty µð¹ÙÀ̽ºÀÇ ¼ÒÀ¯±Ç°ú º¸È£±ÇÀ» º¯°æÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ·çÆ® ÆÄÀϽýºÅÛ µð¹ÙÀ̽º·Î¼ Àбâ Àü¿ë ÀåÄ¡ÀÎ CD-ROM À» »ç¿ëÇÏ´Â °ÍÀº Çã¿ëµÇÁö ¾Ê´Â´Ù. È®½ÇÈ÷, ´ç½ÅÀº CD-ROMÀ» ÀÌ¿ëÇÏ¿© ºÎÆÃÀ» ÇÒ¼ö´Â ÀÖÀ¸³ª, ttyÀÇ ¼ÒÀ¯±ÇÀ» º¯°æÇÏÁö´Â ¸øÇÑ´Ù. µû¶ó¼ ±× ¹æ¹ýÀº ÀνºÅçÇÒ¶§³ª ÁÁÀº ¹æ¹ýÀÌ´Ù. ¶ÇÇÑ, µð½ºÅ©°¡ ¾ø´Â (discless) ¸®´ª½º ¸Ó½Å ¿¡¼ (º¸Åë /dev ¿¡¼ º¯°æµÈ tty ¼ÒÀ¯±ÇÀ» °¡Áö´Â °ÍÀº ÁÁÁö ¸øÇÏ´Ù) °øÀ¯µÈ NFS ·çÆ® ÆÄÀϽýºÅÛÀ» °¡Áú ¼öµµ ¾ø´Ù. ¶ÇÇÑ ROM-FS ¿¡ ´ç½ÅÀÇ ·çÆ® ÆÄÀϽýºÅÛÀ» Æ÷ÇÔ½Ãų¼öµµ ¾ø´Ù. ´ç½ÅÀº ºÎÆýÿ¡ RAMDISC ¸¦ ¸¸µé°í, ±×°Í¿¡ ext2 ÆÄÀϽýºÅÛÀ» ¸¸µçÈÄ, ±×°ÍÀ» ¾î¶² Àå¼Ò¿¡ ¸¶¿îÆ®ÇÏ°í /devÀÇ ¸ñ·ÏÀ» ±×°Í¿¡ º¹»çÇÑ ÈÄ, ¸¶¿îÆÃÀ» ÇØÁ¦ÇÏ°í /dev¿¡ ±×°ÍÀ» ´Ù½Ã ¸¶¿îÆà ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù. Devfs´Â ÀÌ ¹®Á¦¸¦ ÇØ°áÇϴµ¥ ÀÖ¾î º¸´Ù ¸íÈ®ÇÑ ¹æ¹ýÀ» Á¦°øÇÑ´Ù. 2.8. Non-Unix ·çÆ® ÆÄÀϽýºÅÛNon-Unix ÆÄÀϽýºÅÛ(NTFS¿Í °°Àº)Àº ±×°ÍµéÀÌ ´Ù¾çÇÑ Ä³¸¯ÅÍ/ºí·° ½ºÆä¼³ ÆÄÀÏ ¶Ç´Â ½Éº¼¸¯ ¸µÅ©µéÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î »ç¿ëÇÒ ¼ö ¾ø´Ù. ´ç½ÅÀº ¸¶¿îÆ® Çϱâ Àü¿¡ µð¹ÙÀ̽º ³ëµå¸¦ ÇÊ¿ä·Î Çϱ⠶§¹®¿¡ /dev ¿¡ ¸¶¿îÆ®µÈ ÆÄÀϽýºÅÛÀÌ disc-based ÀÎÁö RAMDISC-based ÀÎÁö ±¸ºÐÇÒ ¼ö ¾ø´Ù. Devfs´Â µð¹ÙÀ̽º ³ëµå ¾øÀÌ ¸¶¿îÆ® ÇÒ ¼ö ÀÖ´Ù. Devlink´Â ½Éº¼¸¯ ¸µÅ©(symlink)ÀÇ Áö¿øÀÌ ¾ÈµÇ±â ¶§¹®¿¡ ÀÛµ¿ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ´Ù¸¥ ÇØ°áÃ¥Àº RAMDISC Ãʱ⠷çÆ® ÆÄÀϽýºÅÛ (¼Ò¼öÀÇ ¼±ÅÃµÈ µð¹ÙÀ̽º ³ëµå¸¦ Æ÷ÇÔÇÏ´Â) À» ¸¶¿îÆ® Çϱâ À§ÇÏ¿© initrd¸¦ »ç¿ëÇÏ°í, ´Ù¸¥ RAMDISC ¿¡ »õ·Î¿î /dev¸¦ ¸¸µç ÈÄ, ¸¶Áö¸·À¸·Î non-Unix ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î ¹Ù²Ù´Â °ÍÀÌ´Ù ÀÌ°ÍÀº ¿µ¸®ÇÑ ºÎÆ®½ºÅ©¸³Æ®¿Í ÇêÁ¡ÀÌ ¸¹°í º¹ÀâÇÑ ºÎÆ® °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. Devfs´Â °ß°íÇÏ°í °³³äÀûÀ¸·Î °£´ÜÇÑ ¹æ¹ýÀ¸·Î ÀÌ °ÍÀ» ÇØ°áÇÑ´Ù. 2.9. PTY º¸¾ÈÇöÀçÀÇ pseudo-tty(pty)´Â ·çÆ®°¡ ¼ÒÀ¯±ÇÀÚÀÌ°í, ¸ðµç »ç¿ëÀÚ°¡ ÀÐ°í ¾²±â°¡ °¡´ÉÇÏ´Ù. pty-pairÀÇ »ç¿ëÀÚ´Â suid-root ¾øÀÌ´Â ¼ÒÀ¯±Ç/º¸È£±ÇÀ» ¹Ù²Ü¼ö ¾ø´Ù. ÀÌ ¹®Á¦´Â ·çÆ®·Î ¼öÇàµÇ°í ½ÇÁ¦ pty-pairs ¸¦ ¸¸µé¾î ³»´Â userspace ¿¡¼ ÀÛµ¿ÇÏ´Â º¸¾È µ¥¸óÀ» »ç¿ëÇÔÀ¸·Î½á ÇØ°áµÉ ¼ö ÀÖ´Ù. ÀÌ °°Àº µ¥¸óÀº ÀÌ·± »õ·Î¿î ¸ÅÄ¿´ÏÁòÀ» »ç¿ëÇÏ°íÀÚ ÇÏ´Â "¸ðµç" ÇÁ·Î±×·¥¿¡ ¼öÁ¤À» ¿äÇÑ´Ù. ¶ÇÇÑ pty-pairs¸¦ »ý¼ºÇÏ´Â µ¥¿¡µµ ¼ÓµµÀúÇÏ°¡ ÀϾÙ. ´Ù¸¥ ÇØ°áÃ¥Àº »ç¿ëÀÚ°ø°£ÀÇ µ¥¸ó°ú ºñ½ÁÇÑ ÀÏÀ» ÇÏ´Â »õ·Î¿î open_pty() ½Ã½ºÅÛÄÝÀ» ¸¸µå´Â °ÍÀÌ´Ù. ´Ù½Ã Çѹø ¸»ÇÏÁö¸¸, ÀÌ°ÍÀº pty Çڵ鸵 ÇÁ·Î±×·¥µéÀÇ ¼öÁ¤À» ¿ä±¸ÇÑ´Ù. devfs ÀÇ ÇØ°áÃ¥Àº ¿·ÁÀÖÁö ¾ÊÀº µð¹ÙÀ̽º°¡ ¿·ÈÀ»¶§ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¾î¶² µð¹ÙÀ̽º ÆÄÀÏÀ» "tag"Çϵµ·Ï Çã¿ëÇÏ°í, ¼ÒÀ¯±ÇÀº ¿¸° ÇÁ·Î¼¼½ºÀÇ ÇöÀç euid¿Í egid·Î º¯ÈµÇ°í, º¸È£±ÇÀº ±× µå¶óÀ̹ö¿¡ ÀÇÇØ µî·ÏµÈ ±âº»°ªÀ¸·Î º¯°æµÈ´Ù. ±× µð¹ÙÀ̽º°¡ ´ÝÈ÷¸é, ¼ÒÀ¯±ÇÀº ·çÆ®·Î µ¹¾Æ°¡°í º¸È£±ÇÀº ¸ðµç ÀÌ¿¡°Ô ÀÐ°í¾²±â °¡´ÉÀ¸·Î ¹Ù²ï´Ù. ¾î¶² ÇÁ·Î±×·¥µµ ¼öÁ¤µÉ ÇÊ¿ä°¡ ¾ø´Ù. devpts ÆÄÀϽýºÅÛÀº Unix98 ptys ¿¡ ´ëÇÏ¿© ÀÌ·¯ÇÑ ÀÚµ¿-¼ÒÀ¯±ÇÀÇ ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ°ÍÀº ¿¾¹æ½ÄÀÇ pty µð¹ÙÀ̽º´Â Áö¿øÇÏÁö ¾Ê°í, devfs°¡ Á¦°øÇÏ´Â ´Ù¸¥ ±â´ÉµéÀ» ¸ðµÎ Á¦°øÇÏÁö ¾Ê´Â´Ù. 2.10. Intelligent device À¯ÁöDevfs´Â »ç¿ëÀÚ °ø°£¿¡¼ ÀÛµ¿ÇÏ´Â µð¹ÙÀ̽º °ü¸® µ¥¸ó(devfsd)°úÀÇ Åë½ÅÀ» À§ÇÏ¿© °£´ÜÇÏÁö¸¸ °·ÂÇÑ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÑ´Ù. ÀÌ°ÍÀº µð¹ÙÀ̽º ¿£Æ®¸®ÀÇ µî·Ï/µî·ÏÇØÁ¦, µð¹ÙÀ̽ºÀÇ open/close, inode ÀÇ Å½»ö µð·ºÅ丮¿Í ´Ù¸¥ °ÍµéÀÇ Å½»ö µî°ú °°Àº À̺¥Æ®°¡ ÀϾ¸é (µ¿±â ¶Ç´Â ºñµ¿±âÀûÀ¸·Î) devfsd ¿¡ ¸Þ¼¼Áö¸¦ º¸³»´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀÌ°ÍÀº ¸¹Àº ÀáÀ缺À» °¡Áö°Ô µÈ´Ù. ±× ÀáÀ缺 ÁßÀÇ ¾î¶² °ÍÀº ÀÌ¹Ì ±¸ÇöµÇ¾î ÀÖ´Ù. http://www.atnf.csiro.au/~rgooch/linux/À» »ìÆ캸¶ó µð¹ÙÀ̽º ¿£Æ®¸®ÀÇ µî·Ï À̺¥Æ®´Â »õ·Ó°Ô »ý¼ºµÇ´Â µð¹ÙÀ̽º ³ëµåÀÇ Æ۹̼ÇÀ» º¯°æÇÒ¶§ devfsd¿¡ ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº µð¹ÙÀ̽ºÀÇ Æ۹̼ÇÀ» Á¦¾îÇϱâ À§ÇÑ ÇϳªÀÇ ¸ÅÄ¿´ÏÁòÀÌ´Ù. µð¹ÙÀ̽º ¿£Æ®¸®ÀÇ µî·Ï/µî·ÏÇØÁ¦ À̺¥Æ®´Â ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ±¸µ¿½ÃÅ°´Âµ¥ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº »õ·Î¿î ºí·° µð¹ÙÀ̽º ¹Ìµð¾î¿¡ µå¶óÀ̹ö°¡ Ãß°¡µÇ¾úÀ»¶§ ÆÄÀϽýºÅÛÀÇ ÀÚµ¿ÀûÀÎ ¸¶¿îÆ®¸¦ Á¦°øÇϴµ¥¿¡µµ »ç¿ëµÉ ¼ö ÀÖ´Ù. ºñµ¿±â µð¹ÙÀ̽ºÀÇ open/close À̺¥Æ®´Â ÆÛ¹Ì¼Ç °ü¸®¸¦ ±¸ÇöÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, /dev/dsp¿¡ ´ëÇÑ ±âº» Æ۹̼ÇÀº ¸ðµç »ç¿ëÀÚ°¡ ±× µð¹ÙÀ̽º¸¦ Àд °ÍÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº ´ç½ÅÀÌ Äֿܼ¡ ¾ê±âÇÏ´Â °ÍÀ» ¿ø°Ý »ç¿ëÀÚ°¡ ³ìÀ½ÇÏ´Â °ÍÀ» ¿øÇÏÁö ¾ÊÀ» °ÍÀ̱⠶§¹®¿¡ ÇÕ´çÇÑ ÀÏÀÌ´Ù. ±×·¯³ª, ÄÜ¼Ö »ç¿ëÀÚ ¿ª½Ã ³ìÀ½ÇÏ´Â °ÍÀÌ ¸·ÇôÀÖ´Ù. ÀÌ°ÍÀº ¹Ù¶÷Á÷ÇÑ °ÍÀÌ ¾Æ´Ï´Ù. ºñµ¿±â µð¹ÙÀ̽º¿¡ open/close À̺¥Æ®¸¦ ÀÌ¿ëÇÏ¿© ´ç½ÅÀº Äֵܼð¹ÙÀ̽º°¡ ´Ù¸¥ µð¹ÙÀ̽º ³ëµå (¿¹¸¦ µé¾î /dev/dsp)¿¡ ´ëÇÑ ¼ÒÀ¯±ÇÀ» º¯°æÇϱâ À§ÇØ ¿·ÈÀ»¶§, devfsd°¡ ¾î¶² ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ¼öÇàÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. ¸¶Áö¸·À¸·Î, ´ç½ÅÀº ´Ù¸¥ ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÏ¿© Æ۹̼ÇÀ» º¹±¸ ÇÒ ¼ö ÀÖ´Ù. C ¶óÀ̺귯¸®ÀÇ tty Çڵ鸵ÀÇ ¼öÁ¤ÀÌ ÇÊ¿ä¾ø´Â ÀÌ·± ¼³°èÀÇ À̵æÀº ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ Ãæµ¹ÀÌ ÀϾ´õ¶óµµ (´ç½ÅÀº Á¸ÀçÇÏÁö ¾ÊÀº ·Î±äÀ» À§ÇÏ¿© ÁöüµÇ´Â ¿£Æ®¸®¸¦ °¡Áö´Â utmp µ¥ÀÌÅÍ º£À̽º¸¦ ¼ö¾øÀÌ º¸¾Æ¿ÀÁö ¾Ê¾Ò´Â°¡?) ÀÛµ¿ÇÑ´Ù´Â °ÍÀÌ´Ù. µ¿±â µð¹ÙÀ̽ºÀÇ ¿±â À̺¥Æ®´Â µð¹ÙÀ̽º°¡ Á¢±Ù±ÇÇÑÀ» ¼³Á¤Çϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. µð¹ÙÀ̽º µå¶óÀ̺êÀÇ open() ¸Þ¼Òµå°¡ È£ÃâµÇ±â Àü¿¡, µ¥¸óÀº ¿ÜºÎ ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÅ´À¸·Î½á óÀ½À¸·Î ¿±â½Ãµµ¸¦ È®ÀÎÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº ±×¿¡ ´ëÇÑ Á¢±Ù ÀÚü°¡ UID¿Í GID ´ë½Å¿¡ ´Ù¸¥ ½Ã½ºÅÛÀÇ »óÅ¿¡ ±âÃÊÇÏ¿© °áÁ¤µÇ±â ¶§¹®¿¡ Á¢±Ù Á¦¾î ¸®½ºÆ®¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù ÈξÀ ´õ À¯¿¬ÇÏ´Ù. Inode Ž»ö À̺¥Æ®´Â ¸ðµâÀÇ ÀÚµ¿·Îµå ¿äûÀ» ÀÎÁõÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. kmod¸¦ Á÷Á¢ÀûÀ¸·Î »ç¿ëÇÏ´Â ´ë½Å¿¡, ÀÌ À̺¥Æ®´Â ¸ðµâ ½º½º·Î°¡ ÀûÀçµÇ±â Àü¿¡ ÀÓÀÇÀûÀ¸·Î ÀÎÁõÀ» ±¸ÇöÇÒ¼ö ÀÖ´Â devfsd ¿¡ º¸³»Áø´Ù. Inode Ž»ö À̺¥Æ®´Â Á¸ÀçÇÏÁö ¾Ê´Â µð¹ÙÀ̽º¿¡ ´ëÇÏ¿© ½Éº¼¸¯ ¸µÅ©·Î devfs ¸¦ À§Ä¡½ÃÅ°±â À§ÇØ º¹±¸ÇÏÁö ¾Ê°íµµ Àӽ÷Π³×ÀÓ½ºÆäÀ̽º¸¦ ±¸¼ºÇϴµ¥ ¿ª½Ã ¾²Àϼö ÀÖ´Ù. 2.11. ÀÌ·ÐÀûÀÎ µð¹ÙÀ̽º Ž»ö¸ðµâÀÌ ¿Ã¶ó¿Í ÀÖ´ø ¾Æ´Ï´ø ½Ã½ºÅÛ¿¡ ÀÖ´Â ¸ðµç(SCSI, IDE ¹× ´Ù¸¥ ŸÀÔµé) CD-ROM µð¹ÙÀ̽º¸¦ ã±â À§ÇÑ(cdparanoia¿Í °°Àº) ¾îÇø®ÄÉÀ̼ÇÀ» °í·ÁÇغ¸ÀÚ. ÀÌ·ÐÀûÀ¸·Î ¾îÇø®ÄÉÀ̼ÇÀº ÇØ´ç ¸ðµâÀÌ ÀûÀçµÇ¾î ÀÖ´ÂÁö È®ÀÎÇϱâ À§Çؼ´Â µð¹ÙÀ̽º ³ëµå¸¦ (SCSI CD-ROMÀÇ °æ¿ì /dev/sr0) ¿¾î¾ß¸¸ ÇÑ´Ù. Ç¥ÁØ µð¹ÙÀ̽º ³×ÀÌ¹Ö ½ºÅ°¸¶ (ÃÖ±Ù¿¡ ·¹µåÇÞÀº ÀÌ°ÍÀ» ´Ù¸£°Ô ±¸ÇöÇÑ °ÍÀ» È®ÀÎÇß´Ù) ¸¦ µû¸£´Â ¸ðµç ¸®´ª½º ¹èÆ÷ÆÇÀº ÀÌ·¯ÇÑ ÀÛ¾÷À» ÇÊ¿ä·Î ÇÑ´Ù. Devfs´Â ±×·¯ÇÑ ³×ÀÌ¹Ö ¹®Á¦¸¦ ÇØ°áÇÑ´Ù. ±×¿Í °°Àº ¾îÇø®ÄÉÀ̼ÇÀº ¶Ç ½Ã½ºÅÛ¿¡ ½ÇÁ¦ »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽º¸¦ ã±â¸¦ ¿øÇÒ ¼öµµ ÀÖ´Ù. ÇöÁ¸ÇÏ´Â ½Ã½ºÅÛÀ¸·Î ÀÌ°°Àº ÀÏÀº /dev µð·ºÅ丮¸¦ Àаí, ±× µð¹ÙÀ̽º°¡ Á¸ÀçÇÏ´ÂÁö ¾ÈÇÏ´ÂÁö¸¦ °áÁ¤Çϱâ À§Çؼ´Â °¢ /dev/sr* µð¹ÙÀ̽ºµéÀ» open ÇØ ºÁ¾ß ÇÑ´Ù. Å« /dev ¸¦ °¡Áö´Â ½Ã½ºÅÛ¿¡¼, ±× ½Ã½ºÅÛÀÌ Æ¯È÷ ¸¹Àº ¼öÀÇ /dev/sr* ³ëµå¸¦ °¡Áö°í ÀÖ´Ù¸é, ÀÌ°ÍÀº ºñÈ¿À²ÀûÀÎ ÀÛ¾÷ÀÌ´Ù. scsidev¿Í °°Àº ÇØ°áÃ¥Àº /dev/sr* ¿£Æ®¸®ÀÇ ¼ö¸¦ ÁÙ¿©ÁÙ¼ö ÀÖ´Ù (±×·¯³ª ¿ª½Ã ºÒÇÊ¿äÇÑ µð·ºÅ丮 Ž»öÀ» ÇÏ°Ô µÈ´Ù). Devfs¸¦ »ç¿ëÇϸé, ±× ¾îÇø®ÄÉÀ̼ÇÀº /dev/sr µð·ºÅ丮 (ÇÊ¿äÇÏ´Ù¸é ¸ðµâÀÇ ÀÚµ¿ÀûÀ縦 À¯µµÇس»´Â)¸¦ ÀÐÀ»¼ö ÀÖ°í, /dev/sr¸¦ Àбâ À§ÇÏ¿© °è¼Ó ÁøÇàµÈ´Ù. ¿ÀÁ÷ »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽ºµé¸¸ÀÌ ¿£Æ®¸®¸¦ °¡Áö¹Ç·Î, ºÒÇÊ¿äÇÑ µð·ºÅ丮 Ž»öÀ̳ª, µð¹ÙÀ̽ºÀÇ ¿ÀÇÁ´×Àº ÇÊ¿ä¾ø´Ù. 3. ´©°¡ ÀÌ ÀÏÀ» Çϴ°¡?FreeBSD´Â devfs¸¦ ±¸ÇöÇÑ´Ù. ¼Ö¶ó¸®½º¿Í AIX ¿ª½Ã pseudo-devfs(scsi¿Í´Â ºñ½ÁÇÏÁö¸¸ ºñ¸í½ÃÀûÀÎ Ä¿³Î Áö¿ø°ú ÇÔ²² ¸ðµç µð¹ÙÀ̽º¸¦ Áö¿øÇÏ´Â)¸¦ °¡Áö°í ÀÖ´Ù. BeOS, Plan9¿Í QNX ¿ª½Ã ÀÌ°ÍÀ» °¡Áö°í ÀÖ´Ù. SGIÀÇ IRIX 6.4 ÀÌ»óÀÇ °Í ¿ª½Ã µð¹ÙÀ̽º ÆÄÀϽýºÅÛÀ» °¡Áö°í ÀÖ´Ù. ¿ì¸®´Â ´Ù¸¥ »ç¶÷µéÀÌ Çϱ⠶§¹®¿¡ ÀÚµ¿ÀûÀ¸·Î(Àǹ«ÀûÀ¸·Î) ÀÌ°ÍÀ» ÇÒ ÇÊ¿ä´Â ¾øÁö¸¸, ´Ù¸¥ »ç¶÷ÀÇ ÀÛ¾÷À» ¹«½ÃÇؼµµ ¾ÈµÈ´Ù. FreeBSD ´Â ÀÌ ÀÛ¾÷À» Çϴµ¥ ÀÖ¾î ¼ö¸¹Àº °³¹ßÀÚ¸¦ ¼ÒÀ¯ÇÏ°í ÀÖ°í, µû¶ó¼ ±×µéÀÇ ÀÇ°ßÀº °£´ÜÇÏ°Ô ¹«½ÃµÇ¾î¼´Â ¾ÈµÈ´Ù. 4. ¾î¶»°Ô ÀÛµ¿Çϳª?4.1. µð¹ÙÀ̽º ¿£Æ®¸®¸¦ µî·ÏÇϱâdevfs¿¡ ±âÃÊÇÑ /dev ¾È¿¡¼ °¢ ¿£Æ®¸®(µð¹ÙÀ̽º³ëµå)¿¡ ´ëÇØ µå¶óÀ̹ö´Â devfs_register()¸¦ È£ÃâÇؾ߸¸ ÇÑ´Ù. ÀÌ°ÍÀº ³»ºÎ Å×ÀÌºí¿¡ µð¹ÙÀ̽º ¿¥Æ®¸®ÀÇ À̸§°ú file_operation ±¸Á¶Ã¼ Æ÷ÀÎÅÍ¿Í ¾à°£ÀÇ ´Ù¸¥ °ÍµéÀ» Ãß°¡ÇÑ´Ù. µð¹ÙÀ̽º ¿£Æ®¸®´Â ¾î¶² ¶§¶óµµ Ãß°¡µÇ°Å³ª Á¦°ÅµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù. µð¹ÙÀ̽º ¿£Æ®¸®°¡ µî·ÏµÇ¸é, devfs°¡ ¸¶¿îÆ®µÈ °÷¿¡ ÀÚµ¿À¸·Î ³ªÅ¸³´Ù. 4.2. Inode Ž»ö¿£Æ®¸®¿¡ ´ëÇÑ Å½»öÀÌ ¼öÇàµÇ°í ¸¸¾à ±× ¿£Æ®¸®¿¡ ´ëÇÑ ¾î¶°ÇÑ µå¶óÀ̹ö Á¤º¸µµ ¾øÀ»¶§ devfs´Â devfsdÀÇ È£ÃâÀ» ½ÃµµÇÑ´Ù. ¸¸¾à ¾î¶°ÇÑ Á¤º¸µµ ã¾ÆÁöÁö ¾Ê´Â´Ù¸é, negative dentry°¡ ¾ò¾îÁö°í, ´ÙÀ½ ´Ü°èÀÇ ¼öÇàÀº VFS(create() ¶Ç´Â mknod() ÇÔ¼öó·³ inode ¸¦ Á¶ÀÛÇÏ´Â ¸Þ½îµå ¿Í °°Àº)¿¡ ÀÇÇØ È£ÃâµÉ °ÍÀÌ´Ù. µå¶óÀ̹öÀÇ Á¤º¸°¡ ã¾ÆÁö¸é inode´Â »ý¼ºµÉ °ÍÀÌ°í(¹Ì¸® Á¸ÀçÇÏ´Â °ÍÀÌ ¾ø´Ù¸é) ±×°ÍÀ¸·Î Àß µÉ °ÍÀÌ´Ù. 4.3. Á÷Á¢ device³ëµå¸¦ ¸¸µé±âmknod() ¸Þ½îµå´Â »ç¿ëÀÚ¿¡°Ô devfs ¾È¿¡ °íÀ¯ÇÏ°Ô À̸§ºÙ¿©Áø ÆÄÀÌÇÁ¸¦ ¸¸µéµµ·Ï Çã¿ëÇϰųª, ÀÌ¹Ì Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ºí·° ½ºÆä¼È inode¸¦ ¸¸µé¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù. »ç¿ëÀÚ´Â »ç¿ëÀÚ ½º½º·Î Æ۹̼ǰú ¼ÒÀ¯±ÇÀ» ¼³Á¤ÇÒ ¼ö Àִ ij¸¯Åͳª ºí·° ½ºÆä¼È inode¸¦ »ý¼ºÇϱ⸦ ¿øÇÒ ¼öµµ ÀÖ´Ù. ³ªÁß¿¡, ¸¸¾à µð¹ÙÀ̽º µå¶óÀ̹ö°¡ °°Àº À̸§À¸·Î ¿£Æ®¸®¸¦ µî·ÏÇÑ´Ù¸é, ±× Æ۹̼ǰú ¼ÒÀ¯±Ç°ú ½Ã°£Àº °è¼Ó À¯ÁöµÈ´Ù. ÀÌ°ÍÀº ±× µå¶óÀ̹ö°¡ ÀûÀçµÇ±â ÀüÀÌ¶óµµ µð¹ÙÀ̽º¿¡ ´ëÇÑ º¸È£±ÇÀ» ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÇѹøÀÌ¶óµµ inode¸¦ ¸¸µé¾ú´Ù¸é µð·ºÅ丮¿¡ ³ªÅ¸³´Ù. 4.4. ´ÙºñÀ̽º ¿£Æ®¸®ÀÇ µî·ÏÇØÁ¦µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¿£Æ®¸®¸¦ µî·ÏÇØÁ¦Çϱâ À§Çؼ devfs_unregister()¸¦È£ÃâÇÑ´Ù. 4.5. Chroot()ÀÇ Á¦Çѵé
5. ¿î¿µ»óÀÇ ¹®Á¦Á¡5.1. ÂüÀ»¼º ¾ø´Â À̵éÀ» À§ÇÑ ¼Ò°³¹®¼Àб⸦ ÁÁ¾ÆÇÏ´Â »ç¶÷Àº ¾ø´Ù. »ç¶÷µéÀº ¹Ù·Î ¾ò°í ¼öÇàÇϱ⸦ ¿øÇÑ´Ù. µû¶ó¼ À̹ø ºÎºÐ¿¡¼´Â ºü¸£°Ô /dev »ó¿¡ devfs¸¦ ¸¶¿îÆ® ÇÏ¿© ¼öÇàÇϴµ¥ ÀÖ¾î ÇÊ¿äÇÑ ´Ü°è ¸¦ ¼³¸íÇÒ °ÍÀÌ´Ù. À̹ø ´Ü°è¸¦ °Ç³Ê¶Ù¾î¶ó. ±×·¯¸é ´ç½ÅÀº °ÅÀÇ ºÎÆÃÇÒ¼ö ¾ø´Â ½Ã½ºÅÛÀ» °¡Áøä ³¡³¯ °ÍÀÌ´Ù. ¾Æ·¡ÀÇ ºÎºÐµéÀº Á»´õ ÀÚ¼¼ÇÑ ºÎºÐ¿¡ ´ëÇØ ¼³¸íÇÏ°í ÀÖ°í, ÇʼöÀûÀÌÁö ¾ÊÀº ¼³Á¤¿É¼Ç¿¡ ´ëÇØ ³íÀÇÇÒ °ÍÀÌ´Ù. 5.1.1. DevfsdOK, ´ç½ÅÀÌ À̺κÐÀ» Àаí ÀÖ´Ù¸é, ³ª´Â ´ç½ÅÀÌ devfs¸¦ »ç¿ëÇϱ⸦ ¿øÇÑ´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù. ù¹ø°·Î ´ç½ÅÀº /usr/src/linux¿¡ ÃÖ½ÅÀÇ Ä¿³Î¼Ò½º¸¦ Æ÷ÇÔÇÏ°í ÀÖ´ÂÁö È®½ÇÇÏ°Ô ÇؾßÇÑ´Ù. ±×¸®°í µð¹ÙÀ̽º °ü¸® µ¥¸óÀÎ devfsd ¸¦ ÄÄÆÄÀÏ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ°ÍÀº http://www.atnf.csiro.au/~rgooch/linux/ ¿¡¼ ¾òÀ»¼ö ÀÖ´Ù. ±× Ä¿³ÎÀº ¿¾ ¹öÀüÀÇ ³×ÀÌ¹Ö ½ºÅ°¸¶¿Í´Â »ó´çÈ÷ ´Ù¸¥ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ °¡Áö±â ¶§¹®¿¡ ¿¹ÀüÀÇ ³×ÀÌ¹Ö ½ºÅ°¸¶°¡ ±úÁöÁö ¾Ê°í °è¼Ó »ç¿ëÇÒ ¼ö ÀÖµµ·ÏÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¿Í ¼³Á¤ÆÄÀÏÀÎ devfsd¸¦ ¼³Ä¡ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. devfsd¸¦ ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡Ç϶ó. ´ç½ÅÀº ¿¹Àü ³×ÀÌ¹Ö ½ºÅ°¸¶¿¡ ´ëÇÏ¿© ȣȯ¼ºÀ» °¡Áö´Â ½É¸µÅ©¸¦ Á¦°øÇÏ´Â ±âº» ¼³Á¤ÆÄÀÏÀÎ /etc/devfsd.conf¸¦ Á¦°ø¹ÞÀ» °ÍÀÌ´Ù. ÃæºÐÇÑ Áö½ÄÀ» ¾ò±â Àü±îÁö ÀÌ ÆÄÀÏÀ» ¼öÁ¤ÇÏÁö ¸»¶ó. ÃæºÐÇÑ Áö½ÄÀ» °¡Áö°í ÀÖ´Ù°í »ý°¢ÇÑ´Ù ÇÒÁö¶óµµ, ¾Æ·¡¿¡¼ ºÎÆÃµÈ devfs°¡ °¡´ÉÇÑ ½Ã½ºÅÛ°ú ÀÌ°ÍÀÌ Á¦´ë·Î ÀÛµ¿ÇÏ´ÂÁö¿¡ ´ëÇØ °ËÁõÀÌ ³¡³¯¶§±îÁö ¼öÁ¤ÇÏÁö ¸»¶ó. ÀÌÁ¦ devfsd°¡ °¡Àå óÀ½(ÆÄÀϽýºÅÛÀÇ Ã¼Å©°¡ ÀϾ±â Àü¿¡)¿¡ ½ÃÀ۵ǵµ·Ï ¸ÞÀÎ ½Ã½ºÅÛÀÇ ºÎÆ® ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇØ¾ß ÇÑ´Ù. °¡±Ý /etc/rc.d/rc.sysinitÀÌ SysV Çü½ÄÀÇ ºÎÆ® ½ºÅ©¸³Æ®¿Í ÇÔ²² ½Ã½ºÅÛ¿¡¼ ¸ÞÀÎ ºÎÆ® ½ºÅ©¸³Æ®·Î »ç¿ëµÈ´Ù. BSD Çü½ÄÀÇ ºÎÆ® ½ºÅ©¸³Æ®¸¦ °¡Áö´Â ½Ã½ºÅÛ¿¡¼´Â /etc/rc µµ »ç¿ëµÈ´Ù. /sbin/rcµµ üũÇغ¸¶ó. 5.1.2. ½Ã½ºÅÛ ¶óÀ̺귯¸®µéÀ߸øµÈ ¼ÒÇÁÆ®¿þ¾î°¡ µð¹ÙÀ̽º ³×ÀÓ¿¡ ´ëÇØ °¡Á¤Çϱ⠶§¹®¿¡ ÀϾ´Â ¹®Á¦Á¡µéÀÌ ÀÖ´Ù. ÀÚ¼¼ÇÏ°Ô ¸»Çϸé, ¾î¶² ¼ÒÇÁÆ®¿þ¾î´Â ½Éº¼¸¯ ¸µÅ©·Î µÈ µð¹ÙÀ̽º¸¦ »ç¿ëÇÏÁö ¸øÇÑ´Ù. ¸¸¾à libc5 ¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é, libc5.4.44¸¦ ¼³Ä¡Çضó(¸¸¾à libc5.4.46À» »ç¿ëÇÏ°í ÀÖ´Ù¸é ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÏ´Â libc5.4.44·Î ´Ù¿î±×·¹À̵åÇ϶ó). ¸¸¾à glibc¿¡ ±âÃÊÇÑ ½Ã½ºÅÛÀ» »ç¿ëÇÑ´Ù¸é glibc 2.1.3 ÀÌ»óÀÎÁö È®ÀÎÇØ¾ß ÇÑ´Ù. 5.1.3. /etc/securettyPAM(Pluggable Authentication Modules)Àº ´õ ³ªÀº »ç¿ëÀÚ ÀÎÁõ°ú ¼ºñ½º¸¦ Á¦°øÇϱ⠶§¹®¿¡ À¯¿¬ÇÑ ¸ÞÄ¿´ÏÁòÀ¸·Î Æò°¡¹Þ°í ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ, ±×°ÍÀº ±úÁö±â ½±°í, º¹ÀâÇÏ°í ¹®¼È µÇ¾î ÀÖÁö ¾Ê´Ù(·¹µåÇÞ 6.1°ú ´Ù¸¥ ¹èÆ÷ÆÇÀ» È®ÀÎÇغ¸¶ó). PAMÀº ½Éº¼¸¯¸µÅ©¿Í´Â ¹®Á¦¸¦ ÀÏÀ¸Å²´Ù. ´ÙÀ½ÀÇ ÁÙÀ» /etc/securetty ÆÄÀÏ¿¡ Ãß°¡½ÃÄѶó : ÀÌ°ÍÀº º¸¾ÈÀ» ¾àȽÃÅ°Áö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à 2.10.h ÀÌÀüÀÇ util-linux ¹öÀüÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ±× ÀÌÈÄÀÇ ¹öÀüÀ¸·Î ¾÷±×·¹À̸¦ Çϱ⠹ٶõ´Ù. ¸¸¾à ¾÷±×·¹À̵å ÇÒ ¼ö ¾ø´Ù¸é, ´ÙÀ½ÀÇ ÁÙÀ» /etc/securetty ÆÄÀÏ¿¡ Ãß°¡Ç϶ó : ÀÌ°ÍÀº ³×Æ®¿öÅ©¸¦ ÅëÇÑ ·çÆ®ÀÇ ·Î±×ÀÎÀ» Çã¿ëÇϱ⠶§¹®¿¡(Æнº¿öµå´Â ¿ä±¸µÈ´Ù) º¸¾ÈÀ» ¾àȽÃŲ´Ù. ±×·¯³ª, ½É¸µÅ©¸¦ Ãë±ÞÇϴµ¥ ÀÖ¾î¼ ¹®Á¦°¡ Àֱ⠶§¹®¿¡, ³ª´Â ¾î¶² °æ¿ì¿¡¶óµµ Á¦°øµÇ´Â º¸¾È·¹º§¿¡ ÀǽÉÀ» °¡Áö°í ÀÖ´Ù. (¿ªÀÚ ÁÖ : PAMÀÌ ½É¸µÅ©¿¡ ¹®Á¦Á¡À» º¸À̱⠶§¹®¿¡, ¾îÂ÷ÇÇ º¸¾È¿¡´Â ¹®Á¦Á¡ÀÌ ÀÖ´Ù´Â ¸») 5.1.4. Xfree86ÇʼöÀûÀÌÁö´Â ¾ÊÁö¸¸, Á»´õ devfs¿¡ ¹ÐÁ¢Çϵµ·Ï ÇÏ´Â ÆÐÄ¡ÀÇ ÀÏȯÀ¸·Î XFree86 4.0À¸·Î ¾÷±×·¹À̵å ÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ´Ù. ¸¸¾à ±×·¸°Ô ÇÏÁö ¾Ê´Â´Ù¸é, ÀÏ¹Ý »ç¿ëÀÚ°¡ startx¸¦ ÇÒ¼ö ÀÖµµ·Ï /etc/security/console.perms¿¡ ´ÙÀ½ÀÇ ÆÐÄ¡¸¦ Àû¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¸ðµç ¹èÆ÷ÆÇÀÌ ÀÌ ÆÄÀÏÀ» °¡Áö°í ÀÖ´Â °ÍÀº ¾Æ´Ï¹Ç·Î(e.g. µ¥ºñ¾È) ÀÌ°ÍÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°í Çصµ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¸¸¾à ÆÐÄ¡°¡ Àû¿ëµÇÁö ¾Ê´Â´Ù¸é, ´ÙÀ½°ú °°ÀÌ º¯°æÇ϶ó.: À» À¸·Î ¼öÁ¤ÇÏ¸é µÈ´Ù. 5.1.5. devpts¸¦ ÁßÁö½ÃÅ°±â³ª´Â /dev/pts¿¡ ¸¶¿îÆ®µÈ devpts°¡ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù´Â º¸°í¸¦ ¹Þ¾Ò´Ù. devfs´Â /dev/pts¸¦ °ü¸®ÇϹǷÎ, ´õ ÀÌ»ó devpts¸¦ ¸¶¿îÆ®ÇÒ ÇÊ¿ä´Â ¾ø´Ù. /etc/fstabÆÄÀÏÀ» ¼öÁ¤Çؼ ¸¶¿îÆ®µÇÁö ¾Êµµ·Ï Çϰųª, Ä¿³Î ¼³Á¤¿¡¼ devpts¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï Ç϶ó. 5.1.6. Áö¿øµÇÁö ¾Ê´Â µå¶óÀ̹ö¸ðµç µå¶óÀ̹ö°¡ devfs¸¦ Áö¿øÇÏÁö´Â ¾Ê´Â´Ù. ¸¸¾à ÀÌ·¯ÇÑ µå¶óÀ̹ö Áß¿¡ Çϳª¸¦ °¡Áö°í ÀÖ´Ù¸é, Àû´çÇÑ ¶§¿¡ µð¹ÙÀ̽º ³ëµå¸¦ »ý¼ºÇϵµ·Ï ºÎÆýÿ¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ½ºÅ©¸³Æ®³ª tarfile¸¦ ÀÛ¼ºÇÏ´Â °ÍÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù. 5.3절 Àº À̺κÐÀ» ¼³¸íÇÏ°í ÀÖ´Ù. 5.3절 Àº devfs¸¦ Áö¿øÇÏ´Â µå¶óÀ̹öµéÀÇ ¸ñ·ÏÀÌ´Ù. 5.1.7. /dev/mouse¸¹Àº ¹èÆ÷ÆǵéÀÌ XFree86°ú GPMÀÇ ¸¶¿ì½º µð¹ÙÀ̽º¸¦ /dev/mouse·Î ¼³Á¤ÇÑ´Ù. ³ª´Â ÀÌ°ÍÀ» ¿ø·¡¿Í ´Ù¸£°Ô ¿ìȸÇؼ Ãß°¡Çϱ⠶§¹®¿¡ ÁÁÁö ¸øÇÑ »ý°¢À̶ó°í »ý°¢ÇÑ´Ù. ¸¸¾à ´ç½ÅÀÌ ¼³Á¤ÆÄÀÏ¿¡¼ »ìÆ캼 ¶§, /dev/mouse¸¦ º¸°Ô µÈ´Ù¸é ¸¶¿ì½º°¡ ÂüÁ¶µÈ °÷ÀÌ ¾îµðÀÎÁö ±Ã±ÝÇÏ°Ô ¿©±æ °ÍÀÌ´Ù. µû¶ó¼ ³ª´Â /etcX11/XF86CnfigÆÄÀÏ(±×¸®°í GPM ¼³Á¤ ÆÄÀÏ)¿¡ ½ÇÁ¦ ¸¶¿ì½º µð¹ÙÀ̽º(¿¹¸¦ µé¾î,/dev/psaux ¿Í °°Àº)¸¦ ±âÀÔÇÏ´Â °ÍÀ» ÃßõÇÑ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â À§¿¡ ¼³¸íµÈ Áö¿øµÇÁö ¾Ê´Â µå¶óÀ̹ö¸¦ À§ÇÑ Å×Å©´ÐÀ» »ç¿ëÇصµ µÈ´Ù. 5.1.8. Ä¿³Î¸¶Áö¸·À¸·Î, devfs°¡ Ä¿³Î¿¡¿¡¼ ÄÄÆÄÀÏ µÇµµ·Ï ÇØ¾ß ÇÑ´Ù. °¡Àå ÁÁ¾ÆÇÏ´Â Ä¿³Î ¼³Á¤Åø(¿¹¸¦ µé¸é, make config ¶Ç´Â make xconfig)À» »ç¿ëÇÏ¿© CONFIG_EXPERIMENTAL=y, CONFIG_DEVFS_FS=y ±×¸®°í CONFIG_DEVFS_MOUNT=y ·Î ¼³Á¤ÇÏ°í make dep;make clean ÇÏ°í Ä¿³Î°ú ¸ðµâÀ» ÀçÄÄÆÄÀÏ Ç϶ó. ºÎÆýÿ¡ devfs°¡ /dev ¿¡ ¸¶¿îÆ® µÉ °ÍÀÌ´Ù. ¸¸¾à ºÎÆýÿ¡ ¹®Á¦(¿¹¸¦ µé¾î, ¼³Á¤ ´Ü°è¸¦ Àؾú´Ù´øÁö ÇÏ´Â)°¡ ¹ß»ýÇÑ´Ù¸é, Ä¿³Î ºÎÆ® Ä¿¸Çµå ¶óÀο¡ devfs=nomount¸¦ ³Ö°í Åë°úÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº Ä¿³ÎÀÌ ºÎÆýÿ¡ devfs¸¦ /dev¿¡ ¸¶¿îÆà ÇÏ´Â °ÍÀ» ¸·¾ÆÁØ´Ù. /proc/partitions, irrespective of whether devfs is mounted. ÀϹÝÀûÀ¸·Î CONFIG_DEVFS_FS=y·ÎÇßÁö¸¸ /dev¿¡ ¸¶¿îÆ®µÇÁö ¾Êµµ·Ï ¸¸µé¾îÁø Ä¿³ÎÀº ¾ÈÀüÇÏ´Ù, ¶ÇÇÑ ¼³Á¤ÀÇ º¯°æµµ ÇÊ¿ä¾ø´Ù. ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÒ ÇÑ°¡Áö ¿¹¿Ü´Â LABEL= Áö½ÃÀÚ°¡ /etc/fstab¿¡ »ç¿ëµÇ¾úÀ» ¶§ÀÌ´Ù. ÀÌ·± °æ¿ì¿¡´Â Á¤»óÀûÀ¸·Î ºÎÆÃÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº mount(8) ÇÁ·Î±×·¥ÀÌ ±× º¼·ý ·¹À̺íÀ» ã´Â °úÁ¤ÀÇ ÀϺκÐÀ¸·Î /proc/partitions¸¦ »ç¿ëÇÏ°í, ãÀº µð¹ÙÀ̽º À̸§ÀÌ CONFIG_DEVFS_FS=y·Î ¼³Á¤ÇÏ´Â °ÍÀÌ /proc/partitions ¿¡¼ ±× À̸§À» º¯°æ½ÃÅ°°í, devfs°¡ ¸¶¿îÆ® µÇ¾ú´ÂÁö »ó°üÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëºÒ°¡´ÉÇÏ°Ô µÇ±â ¶§¹®ÀÌ´Ù. ÀÌÁ¦ ÇÊ¿äÇÑ ¸ðµç ´Ü°è¸¦ ³¡³Â´Ù. ÀÌÁ¦ ´ç½ÅÀÇ ºû³ª´Â:-) »õ·Î¿î Ä¿³ÎÀ» ºÎÆÃÇÒ Áغñ°¡ µÇ¾ú´Ù. Áñ°Üº¸¶ó. 5.1.9. ¼³Á¤ÆÄÀÏ º¯°æÇϱâOK, ÀÌÁ¦ devfs°¡ »ç¿ë°¡´ÉÇÑ ½Ã½ºÅÛÀ» ºÎÆýÃÄ×°í, ¸ðµç °ÍÀÌ Á¦´ë·Î ÀÛµ¿ÇÑ´Ù. ÀÌÁ¦ ¼³Á¤ÆÄÀÏÀ» º¯°æ½Ãų Çʿ並 ´À³¥ °ÍÀÌ´Ù(ÀϹÝÀûÀ¸·Î ¼³Á¤´ë»óÀº /etc/fstab¿Í /etc/devfsd.confÀÌ´Ù). Á¦´ë·Î ÀÛµ¿ÇÏ´Â ½Ã½ºÅÛÀ» °®°í Àֱ⠶§¹®¿¡, ¼³Á¤À» º¯°æÇÏ°í³ª¼ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´õ¶óµµ, µðÆúÆ®·Î ¼³Á¤ÆÄÀÏÀ» º¹±¸Çϸé Àß ÀÛµ¿ÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. 5.2. ¸®ºÎÆà ÈÄÀÇ ÆÛ¹Ì¼Ç À¯Áö¸¸¾à µð¹ÙÀ̽º ÆÄÀÏÀ» »ý¼ºÇϱâ À§ÇÏ¿© mknod(2)¸¦ »ç¿ëÇÏÁö ¾Ê°í ¼ÒÀ¯±Ç/Æ۹̼ÇÀ» º¯°æÇϱâ À§ÇØ chmod(2) ¶Ç´Â chown(2)À» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é inodeÀÇ ctime´Â 0(12 am, 1-JAN-1970, GMT)À¸·Î ³²°ÜÁú °ÍÀÌ´Ù. ÀÌÈÄÀÇ ctimeÀ» °¡Áö´Â °ÍµéÀº ¼ÒÀ¯±Ç/Æ۹̼ÇÀÇ º¯È°¡ ÀÖÀ» °ÍÀÌ´Ù. µû¶ó¼, °£´ÜÇÑ ½ºÅ©¸³Æ® ¶Ç´Â ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ¼Ë´Ù¿îÇϱâ Àü¿¡ ¸ðµç º¯°æµÈ inodeµéÀ» ¹´Âµ¥ »ç¿ëÇÑ´Ù. È¿°úÀûÀ̱ä ÇÏÁö¸¸ ÀÌ°ÍÀ» Àû¿ëÇϱâ À§Çؼ´Â ¸¹Àº °í·Á»çÇ×ÀÌ ÀÖ´Ù. ´õ ³ªÀº Á¢±Ù¹æ¹ýÀº Æ۹̼ÇÀ» ÀúÀåÇÏ°í ºÏ±¸Çϴµ¥ devfsd¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº Æ۹̼ǿ¡¼ÀÇ º¯°æÀ» ±â·ÏÇϱâ À§Çؼ ¼³Á¤µÇ°í, µ¥ÀÌŸº£À̽º(½ÇÁ¦·Î´Â µð·ºÅ丮 Æ®¸®)¿¡ ÀúÀåÇÏ°í, ºÎÆýÿ¡ º¹±¸ÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº ÇöÀçÀÇ Æ۹̼ÇÀ» ÀúÀåÇϴµ¥ ÀÖ¾î¼ È¿À²ÀûÀÎ ¹æ¹ýÀ̸ç È¿°úÀûÀÎ °á°ú¸¦ º¸¿©ÁØ´Ù(¾Ë¼ö ¾ø´Â ¹Ì·¡ÀÇ ½Ã°£¿¡ Æ۹̼ÇÀ» ÀúÀåÇÏ´Â tar ÀÇ Á¢±Ù°ú´Â ´Ù¸£°Ô) devsd¿¡ Á¦°øµÇ´Â ±âº»¼³Á¤ÆÄÀÏÀº Áö¼ÓÀûÀÎ °ü¸®°¡ °¡´ÉÇϵµ·Ï Çϱâ À§ÇØ ÁÖ¼®ÀÌ ´Þ¸° ¼³Á¤ºÎºÐÀ» °¡Áö°í ÀÖ´Ù. ¸¸¾à ¾î¶² ¹æ¹ýÀ¸·Î´ø tar Á¢±ÙÀ» »ç¿ëÇϱâ·Î °áÁ¤Çß´Ù¸é, tarÀº »õ·Î¿î µð¹ÙÀ̽º ³ëµå¸¦ »ý¼ºÇϱâ Àü¿¡ ¸ÕÀú inode¸¦ unlink(2) ÇÒ °ÍÀ̶ó´Â °ÍÀ» ÁÖÀÇÇ϶ó. unlink(2)´Â devfs ¿£Æ®¸®¿Í µð¹ÙÀ̽º µå¶óÀ̹ö »çÀÌÀÇ ¿¬°áÀ» ²÷¾î¹ö¸®´Â È¿°ú¸¦ °¡Áø´Ù. ¸¸¾à ºÎÆà ¿É¼Ç¿¡¼ "devfs=only"¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é, ¸ðµâÀ» ÀûÀçÇϱâ À§ÇØ ÇÊ¿äÇÑ µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ´ëÇÑ Åë·Î¸¦ ÀÒ°Ô µÈ´Ù. ³ª´Â ÀÌ°ÍÀ» tarÀÇ ¹ö±×¶ó°í »ý°¢ÇÏ°í ÀÖ´Ù(½ÇÁ¦·Î tar°¡ inode¸¦ ¸ÕÀú unlink(2)ÇÒ ÇÊ¿ä´Â ¾ø´Ù) ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â, µð¹ÙÀ̽ºÀÇ Á»´õ öÇÐÀûÀÎ ÆÛ¹Ì¼Ç °ü¸®¸¦ Á¦°øÇϱâ À§ÇÏ¿© devfsd¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ´ç½ÅÀº µð¹ÙÀ̽º´ç ÇϳªÀÇ ¿£Æ®¸®¸¦ ÇÒ´çÇÏ´Â ÁøºÎÇÑ ¹æ¹ýº¸´Ù, ÇϳªÀÇ ¼³Á¤À» ÅëÇÏ¿© ¸ðµç µð¹ÙÀ̽º ±×·ì¿¡ ´ëÇÏ¿© Æ۹̼ÇÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù. 5.2.1. /dev¿¡ ¸¶¿îÆ®µÈ ÆÛ¹Ì¼Ç µ¥ÀÌŸº£À̽ºÀÇ ÀúÀ常¾à devfs°¡ /dev¿¡ ¸¶¿îÆ® µÈä·Î disc-baed /dev¿¡ µð¹ÙÀ̽ºÀÇ Æ۹̼ÇÀ» ÀúÀåÇϰųª º¹±¸Çϱ⸦ ¿øÇÑ´Ù¸é ±×·¸°Ô ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀº 2.4.x Ä¿³Î (½ÇÁ¦·Î´Â, 2.3.99 ÀÌÈÄ)ÀÇ VFS ¹ÙÀεù ±â´ÉÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ ±â´ÉÀ» ¼³Á¤Çϱâ À§Çؼ´Â ¾Æ·¡¿Í °°ÀÌ Ç϶ó:
5.2.2. ÀÏ¹Ý µð·ºÅ丮¿¡ ÆÛ¹Ì¼Ç µ¥ÀÌÅͺ£À̽º º¹±¸Çϱ⸸¾à VFS ¹ÙÀεùÀ» Áö¿øÇÏÁö ¾Ê´Â ¿À·¡µÈ Ä¿³ÎÀ» »ç¿ëÁßÀ̶ó¸é, /dev¿¡ ¸¶¿îÆ®µÇ¾î ÀÖ´Â ÆÛ¹Ì¼Ç µ¥ÀÌŸº£À̽º¸¦ °¡Á®¿Ã ¼ö ¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª ±× µ¥ÀÌŸº£À̽º¸¦ º¹±¸Çϱâ À§ÇÏ¿© ÀÏ¹Ý µð·ºÅ丮¸¦ ¸¸µé ¼ö ÀÖ´Ù. À§ÀÇ /etc/devfsd.confÆÄÀÏÀº ¿©ÀüÈ÷ »ç¿ë°¡´É ÇÒ °ÍÀÌ´Ù. ´ç½ÅÀº devfsd¸¦ ÀνºÅç Çϱ⿡ ¾Õ¼ /dev-stateµð·ºÅ丮¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¸¸¾à /dev¿¡ ¿¹ÀüÀÇ Æ۹̼ÇÀ» °¡Áö°í ÀÖ´Ù¸é, »õ·Î¿î µð·ºÅ丮¿¡ µð¹ÙÀ̽º ³ëµåµéÀ» Ä«ÇÇ(¶Ç´Â move)ÇÏ¸é µÈ´Ù. 5.2.3. ´õ ³ªÀº ¹æ¹ý°¡Àå ÁÁÀº ¹æ¹ýÀº /dev¿¡ ¸¶¿îÆ®µÇ¾î ÀÖ´Â Æ۹̼ÇÀÇ µ¥ÀÌÅͺ£À̽º¸¦ °¡Á®¿À´Â °ÍÀÌ´Ù. ±× ÀÌÀ¯´Â µð¹ÙÀ̽º ³ëµåµéÀ» /dev-state¿¡ º¹»çÇÒ ÇÊ¿ä°¡ ¾ø°í, /dev-state(devfs¸¦ À§ÇÑ) °ú /dev/(devfs¸¦ »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì¿¡) »çÀÌ¿¡ Æ۹̼ÇÀ» º¹»çÇÒ ÇÊ¿ä°¡ ¾øÀÌ devfs¿Í devfs¸¦ »ç¿ëÇÏÁö ¾Ê´Â Ä¿³ÎÀ» ¹Ù²Ü ¼ö Àֱ⠶§¹®ÀÌ´Ù. 5.3. devfsÀÇ Áö¿ø¾øÀÌ µå¶óÀ̹ö¸¦ Ãë±ÞÇϱâÇöÀç, Ä¿³Î¿¡¼ ¸ðµç µå¶óÀ̹öµéÀÌ devfs¸¦ »ç¿ëÇϵµ·Ï ¼öÁ¤µÇÁö´Â ¾Ê¾Ò´Ù. ¿©ÀüÈ÷ devfs°¡ Áö¿øµÇÁö ¾Ê´Â µð¹ÙÀ̽º µå¶óÀ̹öµéÀº ÀÚµ¿À¸·Î devfs¿¡ ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ µå¶óÀ̹öµé¿¡ ´ëÇÑ µð¹ÙÀ̽º¸¦ »ý¼ºÇÏ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ÇÊ¿äÇÑ µð¹ÙÀ̽º ³ëµåµéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â tarfileÀ» Ǫ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀ» ºÎÆ® ½ºÅ©¸³Æ®¿¡ ³Ö¾îµµ µÈ´Ù. ÀÌÁ¦ ´ç½ÅÀÇ ¸ðµç µå¶óÀ̹öµéÀº Àüó·³ ÀÛµ¿ÇÒ °ÍÀÌ´Ù. °í¹«ÀûÀÌ°Ôµµ ´ëºÎºÐÀÇ »ç¶÷µé¿¡°Ô devfs´Â ´ëºÎºÐÀÇ ±â´ÉÀ» ÀÒÁö ¾Ê°í (¿¹¸¦ µé¾î ´Ù¾çÇÑ µð¹ÙÀ̽º¿¡ ´ëÇÑ Á¢±Ù »ó½Ç) /dev À§¿¡ devfsµð·ºÅ丮¸¦ ¸¶¿îÆ® ÇÒ ¼ö ÀÖ´Â ÃæºÐÇÑ Áö¿øÀ» ÇÑ´Ù. 1998 ³â 1¿ù 22ÀÏ ÀÌÈÄ (devfs ÆÐÄ¡ ¹öÀü 10)ºÎÅÍ ³ª´Â(ÀúÀÚ´Â) ÀÌ ¹æ¹ý(devfs)¸¦ ¿î¿µÇÏ°í ÀÖ´Ù. ³»°¡ °¡Áö°í ÀÖ´Â ¸ðµç µð¹ÙÀ̽ºµéÀº devfs¿¡ ³ªÅ¸³ª¹Ç·Î ³ª´Â ¾Æ¹«°Íµµ ÀÒÀº °ÍÀÌ ¾ø´Ù.
¸¸¾à Unix98 PTYs¸¦ »ç¿ëÇϱâ ÀÖ´Ù¸é devfs °¡ /dev/pts¸¦ °ü¸®ÇÒ ¼ö Àֱ⠶§¹®¿¡ ´õ ÀÌ»ó devpts ¸¦ ¸¶¿îÆ®ÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. ÀÌ°ÍÀº devpts¸¦ ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡ÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡, ¾à°£ÀÇ ·¥À» Àý¾àÇÑ´Ù. glibcÀÇ ¾î¶² ¹öÀüÀº devfs ½Ã½ºÅÛ¿¡¼ Unix98 pty¸¦ Ãë±ÞÇϴµ¥ ¹ö±×¸¦ °¡Áö°í ÀÖ´Ù´Â °ÍÀ» ¸í½ÉÇ϶ó. ¼öÁ¤À» À§Çؼ´Â glibc ¸ÞÀÎÅ×ÀÌ³Ê¿Í ¿¬¶ôÇ϶ó. Glibc 2.1.3 Àº ¼öÁ¤µÇ¾ú´Ù. ¸¸¾à devfsd¸¦ ¼³Ä¡ÇÏÁö ¾Ê¾Ò´Ù¸é /etc/fstab¸¦ ¼öÁ¤ÇÏ´Â °Í¿¡¼ºÎÅÍ ´Ù¸¥ °Íµéµµ ¼öÁ¤ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ¸í½ÉÇ϶ó. (X ¼¹ö¿Í °°Àº) ¾î¶² ¼ÒÇÁÆ®¿þ¾î´Â ±× ¼Ò½º¿¡ µð¹ÙÀ̽º À̸§À» °íÁ¤½ÃÄÑ ³õ´Â´Ù. ½ÇÁ¦·Î ȣȯ ¿£Æ®¸®¸¦ »ý¼ºÇϴµ¥ devfsd¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÈξÀ ½±´Ù. ´ç½ÅÀº ´ç½ÅÀÇ ½Ã½ºÅÛÀ» devfsd°¡ ȣȯÇ׸ñÀ» »ý¼ºÇϵµ·Ï Á¦ÇÑÇÏ¸é¼ ¼¼È÷ »õ·Î¿î µð¹ÙÀ̽º À̸§(¿¹¸¦ µé¾î, /etc/fstabºÎÅÍ ½ÃÀÛÇÏ¿©)À» »ç¿ëÇϵµ·Ï ÇÒ¼ö ÀÖ´Ù. DEVFS°¡ °¡´ÉÇÑ Ä¿³ÎÀ» ºÎÆÃÇϱâ Àü¿¡ DEVFSD¸¦ ¼³Ä¡ÇÏ¿´´ÂÁö È®ÀÎÇ϶ó!! devfs°¡ 2.3.46 Ä¿³Î¿¡ µé¾î°¬À» ´ç½Ã, ³ª´Â ¼ö¸¹Àº º¸°í¸¦ ¹Þ¾Ò´Ù. ´ëºÎºÐÀÇ º¸°íµéÀº »ç¶÷µéÀÌ devfsd ¾øÀÌ ¿î¿µÇ߱⠶§¹®À̾ú°í, ±× Áß¿¡ ¾î¶² °ÍµéÀÌ ±úÁ³´Ù(»ç¿ëÇÒ ¼ö ¾ø´Â ½Ã½ºÅÛÀÌ µÇ¾ú´Ù). ³ª´Â ¼ø°£ÀûÀÎ ¼³Á¤À߸øÀ¸·Î ÀÎÇÑ ¹ö±×º¸´Ù ½ÇÁ¦ ¹ö±×¿¡ Àü³äÇϱ⸦ ¿øÇÑ´Ù. ¸¸¾à ´Ù¸¥ ÄÚµå(¿¹¸¦ µé¾î glibc, X server)¿¡¼ ¹ö±×/¿À·ù¸¦ ¼öÁ¤ÇØ¾ß ÇÑ´Ù°í ´À³¤´Ù¸é, ±× ¸ÞÀÎÅ×À̳ʵ鿡°Ô È®ÀÎÇ϶ó. ±×µéÀº (³ªº¸´Ù) ÈǸ¢ÇÏ°Ô ÇØ°áÇÒ °ÍÀÌ´Ù. 5.4. Devfs ÀÇ ¹æ¹ýdevfsÀÇ Ä¿³ÎÆÐÄ¡´Â ÇÕ¸®ÀûÀÎ µð¹ÙÀ̽º Æ®¸®¸¦ »ý¼ºÇÑ´Ù. À§¿¡ ±â¼úµÈ´ë·Î, ¸¸¾à ¿¹Àü ¹æ½ÄÀÇ /dev ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ À¯ÁöÇϱ⠿øÇÑ´Ù¸é, Àû´çÇÏ°Ô(¸Ç ÆäÀÌÁö¿¡¼ º¸´Â´ë·Î) devfsd¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù. ¿¹Àü ¹æ½ÄÀ» ¼±È£ÇÏ´Â »ç¶÷µéÀº À̹ø ¼½¼ÇÀ» °Ç³Ê¶Ù¾î¶ó. ü°èÈµÈ À̸§°ú ¸íÈ®ÇÑ /dev¸¦ ÁÁ¾ÆÇÏ´Â »ç¶÷µéÀº Àо±æ ¹Ù¶õ´Ù. ¸¸¾à devfsd¸¦ ½ÇÇàÇÏÁö ¾Ê¾Ò´Ù¸é, ȣȯ ¿£Æ®¸®ÀÇ °ü¸®¸¦ ÇÒ¼ö ¾ø°í, »õ·Î¿î À̸§À» »ç¿ëÇϱâ À§Çؼ´Â ´ç½ÅÀÇ ½Ã½ºÅÛÀ» ¼³Á¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, »õ·Î¿î µð½ºÅ©ÀÇ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ »ç¿ëÇϱâ À§Çؼ /etc/fstab¸¦ ¼öÁ¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¸¸¾à devfs¸¦ »ç¿ëÇÏÁö ¾Ê´Â Ä¿³ÎÀ» ºÎÆÃÇϽñ⠿øÇÑ´Ù¸é, devfs¾øÀÌ Ä¿³ÎÀ» ºÎÆÃÇßÀ»¶§¸¦ À§ÇÏ¿© ¿¹Àü ¹æ½ÄÀÇ À̸§À¸·Î µ¹¾Æ°¥ disc-based /dev¿¡ ±âÃÊÇÑ È£È¯ ½É¸µÅ©°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ´ç½ÅÀº ȣȯ¿£Æ®¸®¸¦ À¯ÁöÇÒ µð¹ÙÀ̽º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, BSD pseudo-terminal µð¹ÙÀ̽º¿¡ ´ëÇÑ È£È¯ ¿£Æ®¸®¸¦ ¿øÇÒ ¼öµµ ÀÖ´Ù(±×·¸Áö ¾ÊÀ¸¸é C ¶óÀ̺귯¸®¸¦ ÆÐÄ¡Çϰųª, ´ë½Å¿¡ Unix98 ptys¸¦ »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù). ÀÌ°ÍÀº /dev/devfsd.conf ¿¡ Á¤È®ÇÑ Á¤±ÔÇ¥Çö½ÄÀ» ³ÖÀ¸¸é µÇ´Â ÀÏÀÌ´Ù. ´ç½ÅÀÌ ¼±È£ÇÏ´Â ´Ù¸¥ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ³ª´Â ³Ê¹« ¼öÁ÷ÀûÀ̱⠶§¹®¿¡ Ä¿³Î Á¦°ø À̸§¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ÀϹÝÀûÀÎ À߸øµÈ »ý°¢Àº Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§µéÀº ¼³Á¤ÆÄÀÏ¿¡ Á÷Á¢ÀûÀ¸·Î »ç¿ëµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ±×·±°Ô ¾Æ´Ï´Ù. ±×°ÍµéÀº ÀåÂøµÈ µð¹ÙÀ̽ºµéÀÇ ·¹À̾ƿôÀ» ¹Ý¿µÇÏ°í ½±°Ô ºÐ·ùÇϱâ À§ÇÏ¿© µðÀÚÀÎµÈ °ÍÀÌ´Ù. ¸¸¾à Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§À» ÁÁ¾ÆÇÑ´Ù¸é, ±×°ÍÀ¸·Î ÁÁ´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, ´ç½ÅÀÌ Á»´õ ¼±È£ÇÏ´Â ³×ÀÓ½ºÆäÀ̽º¸¦ »ý¼ºÇϱâ À§ÇÏ¿© devfsd¸¦ »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. devfsd´Â ³í¸®ÀûÀÌ°í °ü¸®Çϱ⠽±µµ·Ï ÇÏ´Â ³×ÀÓ½ºÆäÀ̽º¸¦ »ý¼ºÇϱâ À§ÇÑ Äڵ带 Æ÷ÇÔÇÏ°í ÀÖ´Ù. ±Ùº»ÀûÀ¸·Î´Â, Ä¿³ÎÀÌ Á¦°øÇÏ´Â ³×ÀÓ½ºÆäÀ̽ºÀÇ »ý·«ÇüÀ» »ý¼ºÇÑ´Ù. ´ç½ÅÀº ÀڽŸ¸ÀÇ ³×ÀÓ½ºÆäÀ̽º¸¦ ¸¸µé±â À§ÇÑ °úÁ¤¿¡ ÀÖ´Ù. devfsd´Â ´ç½ÅÀÌ ÀÌ ÀÏÀ» ½±°Ô Çϵµ·Ï Çϴµ¥ ÇÊ¿äÇÑ ¸ðµç ±â¹ÝÀ» °¡Áö°í ÀÖ´Ù. ÇÊ¿äÇÑ ÀÏÀº ½ºÅ©¸³Æ®¸¦ ¸¸µå´Â °ÍÀÌ´Ù. ½ÉÁö¾î c Äڵ带 ÀÛ¼ºÇÒ ¼öµµ ÀÖÀ¸¸ç devfsd´Â È£Ãâ°¡´ÉÇÑ È®ÀåÀ¸·Î ±× °øÀ¯ ¿ÀºêÁ§Æ®¸¦ ÀûÀçÇÒ ¼ö ÀÖ´Ù. 5.5. ´Ù¸¥ ³íÁ¡5.5.1. init ÇÁ·Î±×·¥ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÒ ´Ù¸¥ Á¡Àº initÇÁ·Î±×·¥ÀÌ /dev/telinit À¯´Ð½º ¼ÒÄÏÀ» »ý¼ºÇÏ´ÂÁö¿¡ ´ëÇÑ °ÍÀÌ´Ù. initÀÇ ¾î¶² ¹öÀüÀº /dev/telinit¸¦ »ý¼ºÇÏ°í telinitÇÁ·Î±×·¥Àº init ÇÁ·Î¼¼½º¿Í Åë½ÅÇÑ´Ù. ¸¸¾à ÀÌ·± ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Ù¸é, init °¡ ½ÃÀ۵DZâ Àü¿¡ devfs°¡ /dev¿¡ ¸¶¿îÆ®µÇµµ·Ï ÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¸»·Î Çϸé, initÈÄ¿¡ ¼öÇàµÇ´Â /etc/rc¿¡´Â devfs¸¦ ¸¶¿îÆ® Çϵµ·Ï ³Ö¾î¼´Â ¾ÈµÈ´Ù. initÀÇ ´Ù¸¥ ¹öÀüµéÀº init°¡ ½ÃÀÛÇϱâ Àü¿¡ Á¸ÀçÇؾ߸¸ ÇÏ´Â named pipe /dev/initctl °¡ ÇÊ¿äÇÏ´Ù. ´Ù½Ã¸»ÇÏÁö¸¸ init°¡ ½ÃÀ۵DZâ Àü¿¡ ±× named pipe¸¦ »ý¼ºÇÏ°í devfs¸¦ ¸¶¿îÆ®ÇØ¾ß ÇÑ´Ù. ±âº»ÀûÀÎ ÇൿÀº 2.3.x ÀÌÈÄÀÇ Ä¿³ÎÀÌ ºÎÆÃÇÒ¶§¿¡´Â /dev ¿¡ devfs¸¦ ¸¶¿îÆ® ÇÏÁö ¾Ê´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ºÎÆà ¿É¼Ç¿¡ "devfs=mount"¸¦ ³ÖÀ½À¸·Î½á °íÄ¥ ¼ö ÀÖ´Ù. ÀÌ ¹®Á¦´Â initÀÇ ¹®Á¦¸¦ ÇØ°áÇÏ°í, ´ÙÀ½ÀÇ ²ûÂïÇÑ »óȲ(Cannot open initial console ¸Þ¼¼Áö)À» ¸·¾ÆÁØ´Ù. devfs ÆÐÄ¡°¡ Àû¿ëµÇ¾î¾ß ÇÏ´Â 2.2.xÀÇ Ä¿³Î¿¡¼´Â ±âº»ÀûÀ¸·Î ¸¶¿îÆ® ÇÑ´Ù. ¸¸¾à /dev¿¡ devfs¸¦ ÀÚµ¿À¸·Î ¸¶¿îÆ®ÇÑ´Ù¸é, ºÎÆ® ½ºÅ©¸³Æ®¿¡¼ /dev/initctl¸¦ »ý¼ºÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ÀÇ ÁÙÀ» Ãß°¡Ç϶ó: ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â, Ä¿³ÎÀÌ /dev¿¡ devfs¸¦ ¸¶¿îÆ® Çϱ⸦ ¿øÄ¡ ¾Ê´Â´Ù¸é, /dev/initctl¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÏ¿© ´ÙÀ½ÀÇ ÇÁ·Î½ÃÁ®¸¦ »ç¿ëÇÒ ¼ö ¼ö ÀÖ´Ù: initÀÇ ÃֽŠ¹öÀüÀº /dev/initctl¸¦ ÀÚµ¿À¸·Î »ý¼ºÇϹǷÎ, ÀÌ°Í¿¡ ´ëÇؼ °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. 5.5.2. ¸ðµâ ÀÚµ¿·Îµù¸ðµâÀÇ ÀÚµ¿·ÎµùÀ» Çϱâ À§Çؼ´Â devfsd¸¦ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ´ÙÀ½ÀÇ ÁÙÀ» /etc/devfsd.confÆÄÀÏ¿¡ Ãß°¡½ÃÄѶó: devfsd-v1.3.10 ÀÌÈÄ·Î, MODLOAD ¿¡ ÀÇÇØ »ç¿ëµÇ´Â Æ÷°ýÀûÀÎ /etc/modules.devfs ¼³Á¤ ÆÄÀÏÀÌ ¼³Ä¡µÈ´Ù. ÀÌ°ÍÀº ´ëºÎºÐÀÇ ¼³Á¤µé¿¡ ´ëÇØ ÃæºÐÇÏ´Ù. ¸¸¾à ¼³Á¤ÀÌ ´õ ÇÊ¿äÇÏ´Ù¸é, /etc/modules.confÆÄÀÏÀ» ¼öÁ¤Ç϶ó. devfs°¡ ¸ðµâÀÇ ÀÚµ¿·ÎµùÀ» ÇÏ´Â ¹æ¹ýÀº :
¸¸¾à mymod¸ðµâÀ» ·ÎµùÇϱâ À§ÇÏ¿© /dev/fred¸¦ Ž»öÇϱ⠿øÇÑ´Ù¸é, /etc/modules.conf¿¡ ´ÙÀ½ÀÇ ÁÙÀ» Ãß°¡Ç϶ó: ±× /etc/modules.devfs ¼Á¤ ÆÄÀÏÀº Ç¥ÁØ µð¹ÙÀ̽º À̸§¿¡ ´ëÇؼ °¢°¢ÀÇ ¾Ù¸®¾î½º¸¦ Á¦°øÇÑ´Ù. ¸¸¾à ÀÌ ÆÄÀÏÀ» ÀÚ¼¼ÇÏ°Ô Ã£´Â´Ù¸é, ¾î¶² ¸ðµâÀº ¿©·¯°³ÀÇ ¾Ù¸®¾î½º ¼³Á¤ ÁÙÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¾Ë°ÍÀÌ´Ù. ±×°ÍÀº ¿§ ¹æ½Ã°ú »õ·Î¿î ¹æ½ÄÀÇ µð¹ÙÀ̽º À̸§¿¡ ´ëÇØ ¸ðµâ ÀÚµ¿·ÎµùÀ» Áö¿øÇϱâ À§ÇØ ÇÊ¿äÇÏ´Ù. 5.5.3. devfs µð¹ÙÀ̽º¿¡ root¸¦ ¸¶¿îÆ®Çϱ⸸¾à "devfs=only" ºÎÆ® ¿É¼ÇÀ» ¼³Á¤ÇßÀ»¶§ devfs µð¹ÙÀ̽º°¡ root¸¦ ¸¶¿îÆ® Çϱ⸦ ¿øÇÑ´Ù¸é, ºÎÆýà Ŀ³Î¿É¼Ç¿¡ "root=<device>" ¿É¼ÇÀ» ³Ö¾î¾ß ÇÑ´Ù. LILO¸¦ »ç¿ëÇÑ´Ù¸é, lilo.conf¿¡ ÀÌ°ÍÀ» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù: ³î¶ó¿î°¡? ¿½, ³ª ¿ª½Ã ±×·¸´Ù. ´ÙÀ½ÀÇ ÁÙÀ» ´ç½ÅÀÌ °¡Áö°í ÀÖ´Ù¸é (´ëºÎºÐÀÇ »ç¶÷µéÀÌ ±×·± °Íó·³) ÇØ°áÇÑ´Ù: LILO´Â <device>ÀÇ µð¹ÙÀ̽º ¹øÈ£¸¦ °áÁ¤ÇÒ °ÍÀÌ°í, ±× Ä¿³ÎÀ» ½ÃÀÛÇÏ°Ô Àü¿¡ Ä¿³Î À̹ÌÁöÀÇ Æ¯Á¤ ºÎºÐ¿¡ ±× ¹øÈ£¸¦ ±â·ÏÇÒ °ÍÀ̸ç, ±× Ä¿³ÎÀº ·çÆ® ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ® Çϱâ À§ÇÏ¿© ±× µð¹ÙÀ̽º ¹øÈ£¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. ±×·¡¼, "append" º¯¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀº LILO°¡ ±× ·çÆ® ÆÄÀϽýºÅÛÀ» devfs°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹®ÀÚ¿·Î ³Ñ°Ü ÁÖµµ·Ï È®½ÇÈ÷ ÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à "devfs=only"¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ½Å°æ¾µ °Í ¾ø´Ù. 5.5.4. TTY ¹®Á¦C ¶óÀ̺귯¸®ÀÇ ¾î¶² ¹öÀü¿¡¼´Â ttyname(3)°¡ ½Éº¼¸¯ ¸µÅ©ÀÎ µð¹ÙÀ̽º ¿£Æ®¸®¿¡ ´ëÇؼ´Â ¿À·ù¸¦ ¸¸µé¾î³½´Ù. tty(1) ÇÁ·Î±×·¥Àº ÀÌ ÇÔ¼ö¿¡ ÀÇÁ¸ÇÑ´Ù. ³ª´Â ÀÌ°ÍÀ» ¼öÁ¤Çϱâ À§ÇÏ¿© libc 5.4.43¿¡ ÆÐÄ¡¸¦ ¸¸µé¾ú´Ù. ÀÌ°ÍÀº libc 5.4.44¿¡ Æ÷ÇԵǾî ÀÖ°í ºñ½ÁÇÚ ÆÐÄ¡°¡ glibc 2.1.4¿¡ ÀÖ´Ù. 5.6. Ä¿³Î ³×ÀÌ¹Ö ½ºÅ°¸¶Ä¿³ÎÀº ±âº» ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ Á¦°øÇÑ´Ù. ÀÌ ½ºÅ°¸¶´Â ƯÁ¤ÇÑ µð¹ÙÀ̽º³ª µð¹ÙÀ̽º ÇüÅ¿¡ µû¶ó °Ë»öÇÏ°í, »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽º¸¦ ã¾Æº¸´Âµ¥ ½±µµ·Ï µðÀÚÀÎ µÈ´Ù. ¾î¶² µð¹ÙÀ̽º ÇüÅÂ(ÇÏµå µð½ºÅ© °°Àº)´Â ±×·± ºÎ·ùÀÇ µð¹ÙÀ̽º°¡ »ç¿ë°¡´ÉÇÑ°¡¸¦ ¾Ë¾Æº¸±â ½±°Ô Çϱâ À§ÇØ ±× Ç׸ñÀÇ µð·ºÅ丮¸¦ °¡Áö°í ÀÖ´Ù. Á¾Á¾, ±× Ç׸ñµéÀº »ç¿ë°¡´ÉÇÑ µð¹ÙÀ̽ºÀÇ ±¸Á¶¸¦ ¹Ý¿µÇϱâ À§ÇÑ µð·ºÅ丮 Æ®¸®¿¡ ½Éº¼¸¯ ¸µÅ©·Î µÇ¾î ÀÖ´Ù. ±âÇÏÇÐÀûÀÎ Æ®¸®´Â ´ç½ÅÀÇ µð¹ÙÀ̽º°¡ ¾î¶»°Ô ¹è¿µÇ¾î ÀÖ´ÂÁö º¸´Âµ¥ À¯¿ëÇÏ´Ù. ¾Æ·¡´Â ´ëºÎºÐÀÇ ÀϹÝÀûÀÎ µå¶óÀ̹öµé¿¡ ´ëÇÑ ³×ÀÌ¹Ö ½ºÅ°¸¶ÀÇ ¸ñ·ÏÀÌ´Ù. ¿¹¾àµÈ µð¹ÙÀ̽º À̸§µéÀÇ ¸ñ·ÏÀº Âü°í°¡ °¡´ÉÇÏ´Ù. ±× ¸ñ·Ï¿¡ Ãß°¡µÇ±â ¿øÇÑ´Ù¸é rgooch (at) atnf.csiro.au ¿¡ ¸ÞÀÏÀ» º¸³»¶ó. ´Ù¸¥ À̸§µéµµ ±× ¸ÞÀÎÅ×À̳ÊÀÇ ÆÇ´Ü¿¡ µû¶ó ¿äûµÈ À̸§´ë½Å ÇÒ´çµÉ ¼ö ÀÖ´Ù. 5.6.1. µð½ºÅ© µð¹ÙÀ̽ºµéSCSI, IDE ¶Ç´Â ¹«¾ùÀ̶óµµ, ¸ðµç µð½ºÅ©´Â /dev/discs ¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù. ÀÌµé °¢ Ç׸ñµé¸¶´Ù ±× µð¹ÙÀ̽º¿¡ ´ëÇÏ¿© µð·ºÅ丮¿¡ ½Éº¼¸¯ ¸µÅ©°¡ °É·ÁÀÖ´Ù. µð¹ÙÀ̽º µð·ºÅ丮´Â ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù.
5.6.2. CD-ROM DevicesSCSI, IDE ¶Ç´Â ¾î¶² CD-ROMÀÌ´øÁö°£¿¡ ¸ðµç CD-ROMµéÀº /dev/cdroms °è¿¾Æ·¡ Á¸ÀçÇÑ´Ù.: À̵é Ç׸ñ °¢°¢Àº ±× µð¹ÙÀ̽º¿¡ ´ëÇÑ ½ÇÁ¦ µð¹ÙÀ̽º Ç׸ñ¿¡ ´ëÇÑ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù. 5.6.3. Tape DevicesSCSI, IDE ¸¦ ¸··ÐÇÏ°í ¸ðµç Å×ÀÙ ÀåÄ¡µéÀº /dev/tapes°è¿¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù. À̵é Ç׸ñ °¢°¢Àº ±× µð¹ÙÀ̽º¿¡ ´ëÇÑ µð·ºÅ丮ÀÇ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù.
5.6.4. SCSI Devices¾î¶² SCSI µð¹ÙÀ̽º¸¦ À¯ÀÏÇÏ°Ô ÆǺ°Çϱâ À§Çؼ´Â ´ÙÀ½ÀÇ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù: ¸ðµç SCSI µð¹ÙÀ̽º´Â /dev/scsi (devfs°¡ /dev¿¡ ¸¶¿îÆ® µÇ¾ú´Ù´Â ÀüÁ¦ÇÏ¿¡) ¾Æ·¡ À§Ä¡ÇÑ´Ù. ±×·¯¹Ç·Î, ´ÙÀ½ ÆĶó¹ÌÅÍ:c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI µð¹ÙÀ̽º´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¯ °ÍÀÌ´Ù. ÀÌ µð·ºÅ丮 ¾È¿¡¼ SCSI µð¹ÙÀ̽º ŸÀÙ µå¶óÀ̹ö°¡ ÀνºÅçµÈ °Í¿¡ ÀÇÁ¸ÇÏ¿© µð¹ÙÀ̽º Ç׸ñ ¹øÈ£°¡ ¸¸µé¾îÁú °ÍÀÌ´Ù. SCSI µð½ºÅ© µå¶óÀ̹ö°¡ ¸¸µå´Â Ç׸ñÀ» ¾Ë±âÀ§Çؼ´Â µð½ºÅ© ³×ÀÌ¹Ö Ã¼°è¿¡ ´ëÇÑ ¼½¼ÇÀ» º¸¶ó. SCSI Å×ÀÙ µå¶óÀ̹ö Ç׸ñÀÌ ¸¸µé¾îÁö´Â °Í¿¡ ´ëÇØ ¾Ë°í ½ÍÀ¸¸é Å×ÀÙ ³×ÀÌ¹Ö ÃÇ°Ô¿¡ ´ëÇÑ ¼½¼ÇÀ» º¸¶ó. SCSI CD-ROm µå¶óÀ̹ö´Â ´ÙÀ½À» ¸¸µç´Ù: SCSI generic µå¶óÀ̹ö´Â ´ÙÀ½À» ¸¸µç´Ù:
5.6.5. IDE DevicesIDE µð¹ÙÀ̽º¸¦ À¯ÀÏÇÏ°Ô ÁöÁ¤Çϱâ À§Çؼ´Â ´ÙÀ½ÀÇ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù: ¸ðµç IDE µð¹ÙÀ̽ºµéÀº /dev/ide¾Æ·¹ À§Ä¡ÇÏ°í, SCSI ¼ºê½Ã½ºÅÛ°ú ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. 5.6.6. XT Hard Discs¸ðµç XT µð½ºÅ©µéÀº /dev/xd¾Æ·¡ À§Ä¡ÇÑ´Ù. ù¹ø° XT µð½ºÅ©´Â /dev/xd/disc0µð·ºÅ丮¸¦ °¡Áø´Ù. 5.6.7. TTY devicestty µð¹ÙÀ̽ºµéÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³´Ù.
5.6.8. RAMDISCSRAMDISCµéÀº ±×µé ÀÚ½ÅÀÇ µð·ºÅ丮¿¡ À§Ä¡Çϸç, ´ÙÀ½°ú °°Àº À̸§À» °¡Áø´Ù:
5.6.9. Meta Devicesmeta µð¹ÙÀ̽ºµéÀº ±×µé ÀÚ½ÅÀÇ µð·ºÅ丮¿¡ À§Ä¡Çϸç, ´ÙÀ½°ú °°´Ù:
5.7. Devfsd ³×ÀÌ¹Ö ½ºÅ°¸¶Devfsd´Â Ä¿³ÎÁ¦°ø ³×ÀÓ½ºÆäÀ̽º ÀÇ Æí¸®ÇÑ Ãà¾àÇüÀÎ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ Á¦°øÇÑ´Ù. ¾î¶² °æ¿ì¿¡´Â, Ä¿³ÎÀÌ Á¦°øÇÏ´Â ³×ÀÌ¹Ö ½ºÅ°¸¶´Â ¸Å¿ì Æí¸®ÇÏ°í, µû¶ó¼ devfsd´Â ´Ù¸¥ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù. devfsd°¡ ¸¸µå´Â Æí¸®ÇÑ À̸§Àº ½ÇÁ¦·Î ¿À¸®Áö³¯ devfs Ä¿³Î ÆÐÄ¡°¡ ¸¸µå´Â À̸§°ú µ¿ÀÏÇÏ´Ù(¸®´©Áî°¡ Big Name Change¸¦ Áö½ÃÇϱâ Àü±îÁö). À̰͵éÀº "»õ·Î¿î ȣȯ ¿£Æ®¸®"·Î¼ Âü°íµÈ´Ù. À̵é Æí¸®ÇÑ À̸§À» »ý¼ºÇϱâ À§ÇØ devfsd¸¦ ¼³Á¤Çϱâ À§ÇÏ¿©, ´ÙÀ½ÀÇ ÁÙÀÌ /etc/devfsd.conf¿¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù: ÀÌ°ÍÀº Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§À» ÁöÁ¤Çϱâ À§ÇÏ¿© devfsd°¡ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé(¾ø¾Ù)µµ·Ï ÇÑ´Ù. 5.7.1. SCSI ÇÏµå µð½ºÅ©µé¸ðµç SCSI µð½ºÅ©µéÀº /dev/sd¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù (devfs´Â /dev¿¡ ¸¶¿îÆ®µÇ¾ú´Ù°í °¡Á¤Çϸé). ±×·¯¹Ç·Î, ´ÙÀ½ÀÇ ÆĶó¹ÌÅÍ:c=1,b=2,t=3,u=4¸¦ °¡Áö´Â SCSI µð½ºÅ©µéÀº ¿¡ ³ªÅ¸³´Ù. 5.7.2. SCSI Tapes¸ðµç SCSI Å×ÀÔµéÀº /dev/st¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©µé°ú À¯»çÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ : c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI Å×ÀÙµéÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³´Ù:
5.7.3. SCSI CD-ROMs¸ðµç SCSI CD-ROMµéÀº /dev/sr¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©µé°ú ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ: c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI CD-ROMÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³´Ù:
5.7.4. SCSI Generic Devices¸ðµç SCSI CD-ROMµéÀº /dev/sg¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ: c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI generic µð¹ÙÀ̽º´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³´Ù:
5.7.5. IDE Hard Discs¸ðµç IDE µð½ºÅ©µéÀº SCSI µð½ºÅ©µé°ú ºñ½ÁÇÑ ¹æ¹ýÀ» »ç¿ëÇÏ¿©, /dev/ide/hd¾Æ·¡ À§Ä¡ÇÑ´Ù. ´ÙÀ½ÀÇ ¸ÊÇÎÀÌ »õ·Î¿î À̸§°ú ¿¹Àü À̸§ »çÀÌ¿¡ Á¸ÀçÇÑ´Ù.
5.7.6. IDE TapesIDE µð½ºÅ©µé°ú À¯»çÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. ±× Ç׸ñÀº /dev/ide/mtµð·ºÅ丮 ¾È¿¡¼ ³ªÅ¸³¯ °ÍÀÌ´Ù. 5.7.7. IDE CD-ROMIDE µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. °¢ Ç׸ñÀº /dev/ide/cdµð·ºÅ丮 ¾È¿¡¼ ³ªÅ¸³¯ °ÍÀÌ´Ù. 5.7.8. IDE FloppiesIDE µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. °¢ Ç׸ñÀº /dev/ide/fdµð·ºÅ丮 ¾È¿¡¼ ³ªÅ¸³¯ °ÍÀÌ´Ù. 5.7.9. XT Hard Discs¸ðµç XT µð½ºÅ©µéÀº /dev/xd¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù. ù¹ø° XT µð½ºÅ©´Â /dev/xd/c0t0ó·³ ³ªÅ¸³¯ °ÍÀÌ´Ù. 5.8. ¿¾ ¹æ½ÄÀÇ È£È¯ À̸§¿¡ÀüÀÇ È£È¯À̸§µéÀº /dev/hda, /dev/sda, /dev/rtc µîµîÀÇ ¿¹ÀüºÎÅÍ À¯ÁöµÇ¾î¿Â µð¹ÙÀ̽º À̸§À» »ç¿ëÇÑ´Ù. Devfsd´Â ¿À·¡µÈ À̸§À» °è¼Ó »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ȣȯ ½É¸µÅ©¸¦ »ý¼ºÇϵµ·Ï ¼³Á¤ÆÄÀÏ¿¡ ¼³Á¤µÉ ¼ö ÀÖ°í, µû¶ó¼ ¿À·¡µÈ ÀÀ¿ëÇÁ·Î±×·¥µéÀº °è¼ÓÇÏ¿© Àß ÀÛµ¿ÇÏ°Ô µÉ °ÍÀÌ´Ù. devfsd°¡ ÀÌ·± ¿¹ÀüÀÇ À̸§À» »ý¼ºÇϵµ·Ï ¼³Á¤Çϱâ À§Çؼ ´ÙÀ½ÀÇ ÁÙÀÌ /etc/devfsd.conf¿¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù ÀÌ°ÍÀº devfsd°¡ Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§À» ÁöÁ¤Çϵµ·Ï ÇÏ´Â ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé(¾ø¾Ö)µµ·Ï ÇÑ´Ù. 5.9. SCSI È£½ºÆ® Ž»ö°ú °ü·ÃµÈ ¹®Á¦Devfs´Â SCSI È£½ºÆ® ¹øÈ£¿¡ ´ëÇØ ±âÃÊÇÑ SCSI µð½ºÅ©¸¦ ½Äº°Çϵµ·Ï Çã¿ëÇÑ´Ù. ¸¸¾à ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ¿ÀÁ÷ ÇϳªÀÇ SCSI È£½ºÆ®(card)°¡ ÀÖ´Ù¸é, È£½ºÆ® ¹øÈ£´Â 0À» ¹Þ°Ô µÉ °ÍÀÌ´Ù. ´ç½ÅÀÌ ¿©·¯°³ÀÇ SCSI È£½ºÆ®¸¦ °¡Áö°í ÀÖ´Ù¸é ±×´ÙÁö ½±Áö ¾Ê´Ù. ºÒÇàÇÏ°Ôµµ, ¶§¶§·Î SCSI È£½ºÆ®ÀÇ ¹øÈ£¸¦ ¾ò±â ¿øÇÏ´Â °ÍÀ» ÃßÃøÇϴµ¥ ¾î·Á¿òÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» ½±°Ô Çϱâ À§Çؼ, "scsihosts"¶ó ºÒ¸®´Â Ä¿³Î ºÎÆ® ÆĶó¹ÌÅÍ°¡ ÀÖ´Ù. ÀÌ°ÍÀº SCSI È£½ºÆ®µéÀÇ ´Ù¸¥ ŸÀÔ¿¡ ´ëÇØ ¼ø¼¸¦ °áÁ¤Çϵµ·Ï ÇØÁØ´Ù. ÀÌ ÆĶó¹ÌÅÍÀÇ ¹®¹ýÀº: ÀÌ´Ù. ¿©±â¼ <name_1>,<name_2>,...,<name_n> µéÀº /proc ÆÄÀϽýºÅÛ¿¡¼ »ç¿ëµÈ µå¶óÀ̹öµéÀÇ À̸§µéÀÌ´Ù. ¿¹¸¦ µé¾î: ´Â ¿¡ ¿¬°áµÈ µð¹ÙÀ̽º¸¦ ÀǹÌÇÑ´Ù. ¿øÇÑ´Ù¸é ºÐ¸®ÀÚ·Î ':' ´ë½Å¿¡ ','¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ³ª´Â ¿©±â¼ devfsd ³×ÀÌ¹Ö ½ºÅ°¸¶ ¸¦ »ç¿ëÇÑ´Ù. ¸¸¾à °°Àº ŸÀÔÀ¸·Î ¿©·¯°³ÀÇ Ä«µå(NCR53c8xx¿Í °°Àº)¸¦ °¡Áö°í ÀÖ´Ù¸é, ÀÌ ½ºÅ°¸¶°¡ SCSI È£½ºÆ®¸¦ ÁöÁ¤ÇÏÁö´Â ¸øÇÑ´Ù. ÀÌ·± °æ¿ì¿¡ ´ç½ÅÀº ÀÌ°ÍÀ» Á¦¾îÇϱâ À§Çؼ µå¶óÀ̹ö¸¦ ÁöÁ¤ÇÏ´Â ºÎÆ® ÆĶó¹ÌÅ͸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. 6. ÇöÀç Æ÷ÆÃµÈ µð¹ÙÀ̽º µå¶óÀ̹öµé
7. µð¹ÙÀ̽º ¹øÈ£ÀÇ ÇÒ´çDevfs´Â Ä¿³Î ³»ºÎÀÇ ¿ÀÆÛ·¹À̼ǿ¡ ´ëÇØ µð¹ÙÀ̽º ¹øÈ£(¸ÞÀÌÀú&¸¶ÀÌ³Ê ¹øÈ£) ¸¦ ÇÒ´çÇÒ ÇÊ¿ä°¡ ¾ø´Â µå¶óÀ̹öµéÀ» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù. ±×·¯³ª, µð¹ÙÀ̽º¿¡ ´ëÇØ À¯ÀÏÇÏ°Ô Á¶Á¤°¡´ÉÇÑ °ÍÀ¸·Î½á ±× µð¹ÙÀ̽º¸¦ »ç¿ëÇÏ´Â »ç¿ëÀÚ °ø°£ ÇÁ·Î±×·¥µéÀÇ ¹øÈ£°¡ ÀÖ´Ù. ±× Áß¿¡ ÇÑ ¿¹°¡ inode°¡ ´Ù¸¥ inode¿Í ´Ù¸¥ ÆÄÀϽýºÅÛ¿¡ ÀÖ´ÂÁö ±¸ºÐÇϱâ À§ÇÏ¿© ´ÙºñÀ̽º ¹øÈ£¸¦ »ç¿ëÇÏ´Â find ÇÁ·Î±×·¥ÀÌ´Ù. ±× »ç¿ëµÈ µð¹ÙÀ̽º ¹øÈ£´Â ÆÄÀϽýºÅÛÀÌ »ç¿ëÇÏ°í ÀÖ´Â ºí·° µð¹ÙÀ̽º¸¦ À§ÇÑ °ÍÀÌ´Ù. »ç¿ëÀÚ °ø°£ ÇÁ·Î±×·¥µé°ú ȣȯ¼ºÀ»À¯ÁöÇϱâ À§ÇÏ¿© devfs¸¦ »ç¿ëÇÏ´Â ºí·° µð¹ÙÀ̽ºµéÀº À¯ÀÏÇÑ µð¹ÙÀ̽º ¹øÈ£¸¦ ÇÒ´ç¹ÞÀ» ÇÊ¿ä°¡ ÀÖ´Ù. ¶ÇÇÑ, POSIX´Â µð¹ÙÀ̽º ¹øÈ£µéÀ» ¸í½ÃÇÏ°í µð¹ÙÀ̽º ¹øÈ£Áß ÀϺκÐÀº »ç¿ëÀÚ °ø°£¿¡ º¸¿©ÁÙ ÇÊ¿ä°¡ ÀÖ´Ù. °¡Àå °£´ÜÇÑ ¿É¼Ç(ƯÈ÷ devfs¿¡ Æ÷ÆÃµÈ µå¶óÀ̹öÀ϶§)Àº ¿¹ÀüÀÇ ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£µéÀ» °è¼Ó »ç¿ëÇÏ´Â °ÍÀÌ´Ù. Devfs´Â ¸ÞÀÌÀú&¸¶ÀÌ³Ê ¹øÈ£¿¡ ÁÖ¾îÁø °ªÀÌ ¹«¾ùÀÌ´ø°£¿¡ »ç¿ëÀÚ °ø°£¿¡ º¸³¾ °ÍÀÌ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â, devfs°¡ À¯ÀÏÇÑ µð¹ÙÀ̽º ¹øÈ£¸¦ ¼±ÅÃÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. devfs_register¸¦ »ç¿ëÇÏ¿© ij¸¯Åͳª ºí·° µð¹ÙÀ̽º¸¦ µî·ÏÇÏ¿´À»¶§, ÀÚµ¿ÀûÀ¸·Î °íÀ¯ÇÑ µð¹ÙÀ̽º ¹øÈ£¸¦ ÇÏ´çÇÏ´Â(±× ÇÒ´çÀº ij¸¯ÅÍ¿Í ºí·°µð¹ÙÀ̽º¸¦ ±¸ºÐÇÑ´Ù) DEVFS_FL_AUTO_DEVNUM Ç÷¡±×¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ µð¹ÙÀ̽º ¹øÈ£´Â 16 bit ¹øÈ£À̸ç, µû¶ó¼ ¸¹Àº ¼öÀÇ µð½ºÅ©¿Í ÆÄƼ¼Ç¿¡ ´ëÇØ ÃæºÐÇÑ °ø°£À» ¸¶·ÃÇØÁØ´Ù. ÀÌ ½ºÅ°¸¶´Â ¶ÇÇÑ ÇöÀç 256 pseudo-ttys ·Î Á¦ÇѵÈ(ÀÌ Á¦ÇÑÀº xterms °ú ¿ø°Ý ·Î±äÀÇ ÃÑ µ¿½Ã Á¢¼ÓÀÚ ¼öÀÌ´Ù) tty µð¹ÙÀ̽ºµé°ú °°Àº ij¸¯ÅÍ µð¹ÙÀ̽º¿¡µµ Àû¿ëµÈ´Ù. µð¹ÙÀ̽º ¹øÈ£´Â ÇöÁ¸ÇÏ´Â °ø½ÄÀûÀÎ ÇÒ´ç°úÀÇ °¡´ÉÇÑ Ãæµ¹À» ÇÇÇϱâ À§ÇÏ¿© 36864-61439(¸ÞÀÌÀú 144-239) ÀÇ ¹üÀ§·Î Á¦ÇѵǾî ÀÖ´Ù´Â °ÍÀ» ¸í½ÉÇ϶ó. µ¿ÀûÀ¸·Î ÇÒ´çµÈ ºí·° µð¹ÙÀ̽º ¹øÈ£µéÀº ¿ø°Ý ¸¶¿îÆ®ÀÇ È°¼º ½Ã°£µ¿¾È °è¼ÓÇؼ ÁÖ¾îÁö´Â µð¹ÙÀ̽º¿¡ ´ëÇØ dev_t ¸¦ ±â´Ù¸®´Â NFS µ¥¸ó°ú´Â ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù (»ç¿ëÀÚ¿Í Ä¿³Î ¸ðµå ´Ù) ´Â °ÍÀ» ¸í½ÉÇ϶ó. ÀÌ ½ºÅ°¸¶¿¡¼ ¸¶Áö¸·À¸·Î ¸í½ÉÇÒ °ÍÀº : ÀÌ°ÍÀÌ µð¹ÙÀ̽º ¹øÈ£ÀÇ Å©±â¸¦ Áõ°¡½ÃÅ°Áö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ °ø°£¿¡¼ÀÇ È£È¯°ú´Â ¹®Á¦°¡ ¾ø´Ù ´Â °ÍÀÌ´Ù. 8. Áú¹®°ú ´äº¯8.1. Making things work¿©±â¿¡´Â Åë»óÀûÀÎ Áú¹®°ú ´äº¯ÀÌ ÀÖ´Ù.
8.2. devfsÀÇ ´ë¾È³ª´Â ¸ðµç devfs¸¦ ¹Ý´ëÇÑ Á¦¾Èµé°ú ´ëÁ¶ÇØ º¸¾Ò°í, ±×°ÍµéÀÇ ÇѰ踦 ¼³¸íÇß´Ù.
8.2.1. ¿Ö µ¥¸ó¿¡¼ create/remove À̺¥Æ®¸¦ º¸³»Áö ¾Ê´Â°¡?¿©±â¿¡¼ ±×·¯ÇÑ Á¦¾ÈÀº µð¹ÙÀ̽ºµéÀÌ create/remove À̺¥Æ®µéÀ» µî·ÏÇÒ ¼ö ÀÖ°í, µ¥¸óÀº ±× À̺¥Æ®µéÀ» µéÀ» ¼ö ÀÖ´Â Ä¿³ÎÀÇ API¸¦ °³¹ßÇÏÀÚ´Â °ÍÀÌ´Ù. ±× µ¥¸óÀº (µð½ºÅ©»óÀÇ ÇѺκÐÀÎ)/dev¸¦ »ý¼º/ÇØÁ¦ ÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº ¿©·¯°¡Áö Á¦ÇÑÀ» °¡Áö°í ÀÖ´Ù:
8.2.2. scsidev¿¡ ´ëÇÑ ´õ ³ªÀº ±¸ÇöÀÌ Á¦¾ÈÀº scsidev ÇÁ·Î±×·¥À» Æ÷ÇÔ½ÃÄѼ ±×°ÍÀ» SCSI µð¹ÙÀ̽º »Ó¸¸ ¾Æ´Ï¶ó, ¸ðµç µð¹ÙÀ̽º¸¦ Ž»öÇϴµ¥¿¡µµ È®ÀåÇÏÀÚ´Â °ÍÀÌ´Ù. scsidev ÇÁ·Î±×·¥Àº /proc/scsi ¸¦ Ž»öÇÏ´Â ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÑ´Ù. ¹®Á¦Á¡:
8.2.3. ·¥ µð½ºÅ©¿¡ /dev¸¦ ³Ö´Â °ÍÀÌ Á¦¾ÈÀº ·¥µð½ºÅ©¸¦ »ý¼ºÇÏ°í µð¹ÙÀ̽º ³ëµåµéÀ» °Å±â¿¡ µÐ ÈÄ /dev¿¡ ±×°ÍÀ» ¸¶¿îÆ® ÇÏÀÚ´Â °ÍÀÌ´Ù. ¹®Á¦Á¡:
8.2.4. ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù: ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù¶§¶§·Î »ç¶÷µéÀº ÇöÀçÀÇ ½ºÅ°¸¶°¡ ÁÁ´Ù¶ó´Â ÁÖÀåÀ» µè°ï ÇÑ´Ù. ÀÌ°ÍÀº ±×µéÀÌ ¹«½ÃÇÏ´Â °Í¿¡ ´ëÇÑ °ÍÀÌ´Ù.
8.3. devfs¿¡ ´ëÇØ ÁÁ¾ÆÇÏÁö ¾Ê´Â°Í¿©±â devfs¿¡ ´ëÇÑ ºÒÆòºÒ¸¸ÀÌ ÀÖ°í, ¾î¶² Á¦¾È°ú ÇØ°áÃ¥Àº Á»´õ ´ç½ÅÀÇ ¸¶À½¿¡ µé°ÍÀÌ´Ù. ³ª´Â ¸ðµç »ç¶÷À» ±â»Ú°Ô ÇÒ ¼ö ¾øÁö¸¸, ³ë·ÂÇÏ°Ú´Ù :-) 8.3.1. ³ª´Â ±× ³×ÀÌ¹Ö ½ºÅ°¸¶°¡ ½È´Ùù¹ø°·Î, ¸ðµç »ç¶÷À» ±â»Ú°Ô ÇØ ÁÙ¼ö ÀÖ´Â ³×ÀÌ¹Ö ½ºÅ°¸¶´Â ¾ø´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. ´ç½ÅÀÌ ±× ½ºÅ°¸¶°¡ ½È¾îµµ, ´Ù¸¥ »ç¶÷Àº ÁÁ¾ÆÇÑ´Ù. ´©°¡ ¿Ç°í ±×¸§À» ¸»ÇÒ¼ö Àִ°¡? ±Ã±ØÀûÀ¸·Î, Äڵ带 ÀÛ¼ºÇÏ´Â »ç¶÷Àº ¼±ÅÃÀ» ÇÏ°í, ÇöÀç ³²¾ÆÀÖ´Â °ÍÀº devfs ÀúÀÚ¿Í Ä¿³Î °ü¸®ÀÚ(Linus)¿¡ ÀÇÇØ ¸¸µé¾îÁø °ÍÀ» Á¶ÇÕÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª, ¸ðµç °ÍÀ» ÀÒÁö´Â ¾Ê´Â´Ù. ¸¸¾à ÀڽŸ¸ÀÇ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ ¸¸µé°í ½Í´Ù¸é, µ¶¸³ÀûÀÎ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϰųª, devfsd ¸¦ ÇÙ Çϰųª, devfsd ¿¡ ÀÇÇØ È£ÃâµÇ´Â ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Â µîÀÇ °£´ÜÇÑ ÀÏÀ» ÇϸéµÈ´Ù. ¿©·¯ºÐÀÌ ÁÁ¾ÆÇÏ´Â ³×ÀÌ¹Ö ½ºÅ°¸¶°¡ ¹«¾ùÀÌ´øÁö °£¿¡ ¸¸µé ¼ö ÀÖ´Ù. ¶ÇÇÑ, /dev·ÎºÎÅÍ devfs ³×ÀÌ¹Ö ½ºÅ°¸¶ÀÇ ¸ðµç °ÍÀ» Á¦°ÅÇϱ⸦ ¿øÇÑ´Ù¸é, devfs¸¦ ¾Æ¹«°÷À̳ª(/devfsµîÀÇ)¸¶¿îÆ®ÇÏ°í, /devfs¿¡ /dev¸¦ ¸µÅ©ÇÏ¿© ¸¸µé ¼ö ÀÖ´Ù. ±×°ÍÀº ¿øÇÑ´Ù¸é devfsd¸¦ »ç¿ëÇÔÀ¸·Î½á ÀÚµ¿ÀûÀ¸·Î ÇØ°áµÉ ¼öµµ ÀÖ´Ù. ½ÉÁö¾î ½Éº¼¸¯ ¸µÅ©¸¦ »ç¿ëÇϱ⺸´Ù VFS ¹ÙÀεù Å°´ÉÀÌ ¸µÅ©¸¦ ¸¸µéµµ·Ï »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹æ¹ýÀº, ÀÌ ½Éº¼¸¯ ¸µÅ©µéÀÇ "¸ñÀûÁö"°¡ ¾îµðÀÎÁö ¾Ë ÇÊ¿ä°¡ ¾ø´Ù. 8.3.2. Ä¿³Î¿¡¼ Devfs Á¤Ã¥ÀÌ¹Ì Ä¿³Î¾È¿¡¼ÀÇ Á¤Ã¥ÀÌ ÀÖ´Ù. µð¹ÙÀ̽º ¹øÈ£´Â ½ÇÁ¦·Î Á¤Ã¥¿¡ ÀÇÇÑ °ÍÀÌ´Ù (¿Ö ³»°¡ »ç¿ëÇÏ´Â µð¹ÙÀ̽º ¹øÈ£°¡ ¹«¾ùÀÎÁö¸¦ Ä¿³ÎÀÌ Áö½ÃÇؾ߸¸ Çϴ°¡?). ÀÌ°Í¿¡ ´ëÇØ, Ä¿³Î¿¡´Â ¾î¶² Á¤Ã¥ÀÌ ÀÖ´Ù. Á¤Ã¥À¸·Î½áÀÇ µð¹ÙÀ̽º À̸§°ú Á¤Ã¥À¸·Î¼ÀÇ µð¹ÙÀ̽º ¹øÈ£ÀÇ ½ÇÁ¦ Â÷ÀÌÁ¡Àº µð¹ÙÀ̽º ¹øÈ£´Â »ç¶÷¿¡°Ô´Â Àǹ̾ø´Â ¼ýÀÚÀÌ°í ³Ê¹« Á¶À⽺·´±â ¶§¹®¿¡ ´©±¸µµ Á÷Á¢ÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ÃÖ¼ÒÇÑ devfs µð¹ÙÀ̽º À̸§¿¡¼´Â, (ÀڽŸ¸ÀÇ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ ´õ ÇÒ ¼ö ÀÖ´Ù ÇÏ´õ¶óµµ) ¾î¶² »ç¶÷µéÀº devfs°¡ Á¦°øÇÏ´Â À̸§À» Á÷Á¢ÀûÀ¸·Î »ç¿ëÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº ¾î¶² »ç¶÷µé¿¡°Ô´Â ±âºÐ ³ª»Û ÀÏÀÌ´Ù :-) 8.3.3. Devfs´Â ºí·ÎÆ®¿þ¾î(bloatware)ÀÌ´Ù¾Õ¿¡¼ º¸¿©Áø °Íó·³, ÀÌ°ÍÀº ÀüÇô Áø½ÇÀÌ ¾Æ´Ï´Ù. ÄÚµå¿Í µ¥ÀÌÅÍ Å©±â ¸ðµÎ ¸Å¿ì ÀûÀº ¾çÀÌ´Ù. 8.4. ¹ö±× ¸®Æ÷Æ® ¹æ¹ý¸¸¾à devfs¿¡ ´ëÇÑ ¹ö±×¸¦ ¾Ë°í ÀÖ´Ù¸é(¶Ç´Â ¾Ë°í ÀÖ´Ù°í »ý°¢ÇÑ´Ù¸é), ´ÙÀ½ÀÇ ´Ü°è´ë·Î ÇàÇ϶ó:
¿©±â, ´äÀå¹ÞÀ» ±âȸ¸¦ Çâ»ó½ÃÄÑÁÖ´Â Áú¹®ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù: http://www.tuxedo.org/~esr/faqs/smart-questions.html ¸¸¾à ¹ö±×º¸°í¸¦ ÇÏ°í ½Í´Ù¸é, http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ¸¦ ÀÐÀ» ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù. 8.5. ÀÌ»óÇÑ Ä¿³Î ¸Þ¼¼Áö´ç½ÅÀÇ Ä¿³Î·Î±×¿¡¼ devfs¿Í °ü·ÃµÈ ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡´Â ±× ¸Þ¼¼ÁöµéÀÇ Àǹ̸¦ ³ª¿Çß´Ù (±×¸®°í °¡´ÉÇÏ´Ù¸é ±× ¸Þ¼¼Áö¿Í °ü·ÃÇؼ ÇØ¾ß ÇÒ °ÍµéÀÇ ¸ñ·ÏÀÌ´Ù)
8.6. devfsdÀÇ ÄÄÆÄÀÏ ¹®Á¦º¸Åë, devfsdÄÄÆÄÀÏÀº ´ÜÁö ¼Ò½º µð·ºÅ丮¿¡¼ make¸¦ Ä£ ÈÄ, make install (·çÆ®·Î)À» Ä¡´Â °ÍÀ¸·Î µÈ´Ù. °¡²ûÀº, À߸øµÈ ¼³Á¤À¸·Î ÀÎÇØ ¹®Á¦°¡ ÀϾ ¼öµµ ÀÖ´Ù.
9. ÀÌ ¹®¼ÀÇ ¹ø¿ªº»ÀÌ ¹®¼´Â ´Ù¸¥ ¾ð¾î·Î ¹ø¿ªµÇ¾î ÀÖ´Ù.
Most flags courtesy of ITA's Flags of All Countries used with permission. ´Ù¸¥ Âü°í¹®¼http://www.torque.net/sg/devfs_scsi.html : SCSI ¼ºê ½Ã½ºÅÛÀ» Ž»öÇÏ°í devfs ¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ°Ô Çϴ°ÍÀ» ¼³¸íÇÑ À¯¿ëÇÑ ¹®¼ , Gilbert Douglas . http://www.torque.net/scsi/scsihosts.html
: http://www.torque.net/scsi/SCSI-2.4-HOWTO/ : 2.4 ¿¡¼ ¸®´ª½º SCSI ¼ºê½Ã½ºÅÛ¿¡ ´ëÇØ ³íÇÑ ¹®¼ , Gilbert Douglas . http://johannes.erdfelt.com/hotswap.txt : ¿ä±¸»çÇ×ÀÌ ³³µæÇÒ¸¸ÇÑ ÇØ°áÃ¥ÀÎÁö¿Í ¾î¶»°Ô ¿Ö devfs + devfsd ¸¦ »ç¿ëÇÒÁö µî¿¡ ´ëÇØ ±â¼úÇÑ ÆäÀÌÁö. ÃʾÈÀÓ. plain-text Çü½ÄÀÓ. johannes ´Â html ¹öÁ¯À» ¸¸µé°Ú´Ù°í ¾à¼ÓÇß´Ù. , Erdfelt Johannes . 2000³â 10¿ù ¹Ì±¹ Ç÷θ®´Ù ¸¶Àֹ̾̿¡¼ °³ÃÖµÈ 2nd Annual Storage Management Workshop ¿¡¼ ¹ßÇ¥ÇÑ ³ª(ÀúÀÚ) ÀÇ ³í¹® , Gooch Richard . |
Show your affection, which will probably meet with pleasant response. |