· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/DEVFS_FAQ-TRANS

You are not allowed to 'info'


Linux Devfs (Device File System) FAQ

Linux Devfs (Device File System) FAQ

Richard 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/ ¿¡ º¸°üµÈ´Ù.

참고: http://your.destiny.pe.kr/l ¿¡¼­ ÃֽŠ¼öÁ¤º»À» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

고친 과정
고침 2-FEB-20022002. 2. 2고친이 R.Gooch
¿øº» ¹®¼­ ¾÷µ¥ÀÌÆ®
고침 4-FEB-20022002. 2. 4고친이 viatoris
¹ø¿ª ¿Ï·á
고침 18-FEB-20022002. 3. 2고친이 ¶óÅ°½Ã½º
DocBook À¸·Î º¯È¯
고침 158-MAR-20022002. 3. 15고친이 ÃÖÁ¾ÇÊ
XFree86 ºÎºÐÀÇ ¿À¿ª ¼öÁ¤

차례
1. ÀÌ°ÍÀº ¹«¾ùÀΰ¡?
2. devfs ¸¦ »ç¿ëÇÒ ÀÌÀ¯
2.1. ¸ÞÀÌÀú ¹øÈ£¿Í ¸¶ÀÌ³Ê ¹øÈ£ÀÇ ÇÒ´ç
2.2. /dev °ü¸®
2.3. /dev µð·ºÅ丮ÀÇ Áõ°¡
2.4. µð¹ÙÀ̽º µå¶óÀ̹öÀÇ struct file_operations ±¸Á¶Ã¼¿¡ ´ëÇÑ ³ëµå
2.5. ½Ã½ºÅÛ °ü¸® µµ±¸·Î¼­ÀÇ /dev
2.6. ¸ÞÀÌÀú&¸¶ÀÌ³Ê Å©±â
2.7. ÀбâÀü¿ë ·çÆ® ÆÄÀϽýºÅÛ
2.8. Non-Unix ·çÆ® ÆÄÀϽýºÅÛ
2.9. PTY º¸¾È
2.10. Intelligent device À¯Áö
2.11. ÀÌ·ÐÀûÀÎ µð¹ÙÀ̽º Ž»ö
3. ´©°¡ ÀÌ ÀÏÀ» Çϴ°¡?
4. ¾î¶»°Ô ÀÛµ¿Çϳª?
4.1. µð¹ÙÀ̽º ¿£Æ®¸®¸¦ µî·ÏÇϱâ
4.2. Inode Ž»ö
4.3. Á÷Á¢ device³ëµå¸¦ ¸¸µé±â
4.4. ´ÙºñÀ̽º ¿£Æ®¸®ÀÇ µî·ÏÇØÁ¦
4.5. Chroot()ÀÇ Á¦Çѵé
5. ¿î¿µ»óÀÇ ¹®Á¦Á¡
5.1. ÂüÀ»¼º ¾ø´Â À̵éÀ» À§ÇÑ ¼Ò°³
5.1.1. Devfsd
5.1.2. ½Ã½ºÅÛ ¶óÀ̺귯¸®µé
5.1.3. /etc/securetty
5.1.4. Xfree86
5.1.5. devpts¸¦ ÁßÁö½ÃÅ°±â
5.1.6. Áö¿øµÇÁö ¾Ê´Â µå¶óÀ̹ö
5.1.7. /dev/mouse
5.1.8. Ä¿³Î
5.1.9. ¼³Á¤ÆÄÀÏ º¯°æÇϱâ
5.2. ¸®ºÎÆà ÈÄÀÇ ÆÛ¹Ì¼Ç À¯Áö
5.2.1. /dev¿¡ ¸¶¿îÆ®µÈ ÆÛ¹Ì¼Ç µ¥ÀÌŸº£À̽ºÀÇ ÀúÀå
5.2.2. ÀÏ¹Ý µð·ºÅ丮¿¡ ÆÛ¹Ì¼Ç µ¥ÀÌÅͺ£À̽º º¹±¸Çϱâ
5.2.3. ´õ ³ªÀº ¹æ¹ý
5.3. devfsÀÇ Áö¿ø¾øÀÌ µå¶óÀ̹ö¸¦ Ãë±ÞÇϱâ
5.4. Devfs ÀÇ ¹æ¹ý
5.5. ´Ù¸¥ ³íÁ¡
5.5.1. init ÇÁ·Î±×·¥
5.5.2. ¸ðµâ ÀÚµ¿·Îµù
5.5.3. devfs µð¹ÙÀ̽º¿¡ root¸¦ ¸¶¿îÆ®Çϱâ
5.5.4. TTY ¹®Á¦
5.6. Ä¿³Î ³×ÀÌ¹Ö ½ºÅ°¸¶
5.6.1. µð½ºÅ© µð¹ÙÀ̽ºµé
5.6.2. CD-ROM Devices
5.6.3. Tape Devices
5.6.4. SCSI Devices
5.6.5. IDE Devices
5.6.6. XT Hard Discs
5.6.7. TTY devices
5.6.8. RAMDISCS
5.6.9. Meta Devices
5.6.10. Floppy discs
5.6.11. Loop devices
5.6.12. Sound devices
5.7. Devfsd ³×ÀÌ¹Ö ½ºÅ°¸¶
5.7.1. SCSI ÇÏµå µð½ºÅ©µé
5.7.2. SCSI Tapes
5.7.3. SCSI CD-ROMs
5.7.4. SCSI Generic Devices
5.7.5. IDE Hard Discs
5.7.6. IDE Tapes
5.7.7. IDE CD-ROM
5.7.8. IDE Floppies
5.7.9. XT Hard Discs
5.8. ¿¾ ¹æ½ÄÀÇ È£È¯ À̸§
5.9. SCSI È£½ºÆ® Ž»ö°ú °ü·ÃµÈ ¹®Á¦
6. ÇöÀç Æ÷ÆÃµÈ µð¹ÙÀ̽º µå¶óÀ̹öµé
7. µð¹ÙÀ̽º ¹øÈ£ÀÇ ÇÒ´ç
8. Áú¹®°ú ´äº¯
8.1. Making things work
8.2. devfsÀÇ ´ë¾È
8.2.1. ¿Ö µ¥¸ó¿¡¼­ create/remove À̺¥Æ®¸¦ º¸³»Áö ¾Ê´Â°¡?
8.2.2. scsidev¿¡ ´ëÇÑ ´õ ³ªÀº ±¸Çö
8.2.3. ·¥ µð½ºÅ©¿¡ /dev¸¦ ³Ö´Â °Í
8.2.4. ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù: ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù
8.3. devfs¿¡ ´ëÇØ ÁÁ¾ÆÇÏÁö ¾Ê´Â°Í
8.3.1. ³ª´Â ±× ³×ÀÌ¹Ö ½ºÅ°¸¶°¡ ½È´Ù
8.3.2. Ä¿³Î¿¡¼­ Devfs Á¤Ã¥
8.3.3. Devfs´Â ºí·ÎÆ®¿þ¾î(bloatware)ÀÌ´Ù
8.4. ¹ö±× ¸®Æ÷Æ® ¹æ¹ý
8.5. ÀÌ»óÇÑ Ä¿³Î ¸Þ¼¼Áö
8.6. devfsdÀÇ ÄÄÆÄÀÏ ¹®Á¦
9. ÀÌ ¹®¼­ÀÇ ¹ø¿ªº»
´Ù¸¥ Âü°í¹®¼­

1. ÀÌ°ÍÀº ¹«¾ùÀΰ¡?

Devfs´Â ·çÆ® ÆÄÀϽýºÅÛ¿¡¼­ "½ÇÁ¦" ij¸¯ÅÍ ¹× Ư¼ö ºí·°µð¹ÙÀ̽º¸¦ Ãë±ÞÇÏ´Â °Í¿¡ ´ëÇÑ ´Ù¸¥ ¹æ¹ýÀÌ´Ù. Ä¿³Î µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£¿¡ ÀÇÇØ µî·ÏµÇ´Â °Íº¸´Ù ´õ ³ªÀº À̸§À¸·Î µð¹ÙÀ̽º¸¦ µî·ÏÇÒ¼ö ÀÖ´Ù. ÀÌ µð¹ÙÀ̽ºµéÀº ±× µå¶óÀ̹ö¿¡ ÁöÁ¤µÈ ¼ÒÀ¯±Ç°ú º¸È£±ÇÇÑÀ» °¡Áø »óÅ·ΠÀÚµ¿ÀûÀ¸·Î devfs¿¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. µ¥¸ó(devfsd)Àº ÀÌ·¯ÇÑ ±âº»°ªÀ» µ¤¾î½á¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Devfs´Â Ä¿³Î 2.3.46 ÀÌÈÄ ¹öÀüºÎÅÍ »ç¿ëÇÒ¼ö ÀÖ´Ù.

참고: devfs´Â ¿É¼ÇÀ̶ó´Â °ÍÀ» ¸í½ÉÇÏÀÚ. ¸¸¾à ¿¹Àü¹æ½ÄÀÇ disc-based µð¹ÙÀ̽º ³ëµå¸¦ ¼±È£ÇÑ´Ù¸é, °£´ÜÇÏ°Ô CONFIG_DEVFS_FS=n (±âº»°ª)¶ó°í µÎ¸é µÈ´Ù. ÀÌ °æ¿ì¿¡, ¾Æ¹«°Íµµ ¹Ù²îÁö ¾Ê´Â´Ù. ¶ÇÇÑ devfs¸¦ È°¼ºÈ­½ÃÄ×´Ù¸é ±âº»°ªÀº ¿¹ÀüÀÇ µð¹ÙÀ̽º À̸§°ú ¿Ïº®ÇÏ°Ô È£È¯µÇµµ·Ï °ü¸®µÈ´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.

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 µð·ºÅ丮°¡ ¾ó¸¶³ª Ä¿Áú¼ö ÀÖ´Â °¡¸¦ º¸¿©ÁØ´Ù.

host           6  bits  (say up to 64 hosts on a really big machine)
channel        4  bits  (say up to 16 SCSI buses per host)
id             4  bits
lun            3  bits
partition      6  bits
TOTAL          23 bits
	
°¡´ÉÇÑ ¸ðµç µð¹ÙÀ̽º ³ëµå¸¦ ÀúÁ¤Çϱ⠿øÇÑ´Ù¸é 8¸Þ°¡(1024*1024)ÀÇ inode¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¸¸¾à id, partition À» Á¦¿ÜÇÏ°í SCSI Ÿ°Ù(id)´ç ÇϳªÀÇ SCSI ¹ö½º¿Í ÇϳªÀÇ ³í¸®Àû À¯´ÖÀ» °¡Áö´Â È£½ºÆ® ¾îµªÅÍ·Î °¡Á¤ÇÑ´Ù ÇÒÁö¶óµµ, ¿©ÀüÈ÷ 10bits ¶Ç´Â 1024°³ÀÇ ³ëµå°¡ ³²´Â´Ù. °¢ VFS inode´Â ´ë·« 256 bytes¸¦ Â÷ÁöÇϹǷΠ(kernel 2.1.78), (½ÇÁ¦ inode ¿ª½Ã VFS inode¿Í À¯»çÇÑ ¾çÀÇ °ø°£À» Â÷ÁöÇÑ´Ù°í °¡Á¤Çϸé) µð½ºÅ©»ó¿¡ 256kBytesÀÇ inode ÀúÀå°ø°£ÀÌ ÇÊ¿äÇÏ´Ù. ¿À´Ã³¯ µð½ºÅ©´Â Àú·ÅÇϹǷÎ, ³ª»ÚÁö´Â ¾Ê´Ù. ÀÓº£µðµå ½Ã½ºÅÛÀº /dev inodeÀÇ 256kBytes¿¡ ´ëÇØ ÁÖÀÇÇØ¾ß ÇÏÁö¸¸ ÀÓº£µðµå ½Ã½ºÅÛÀº /dev µð·ºÅ丮¸¦ ¼öµ¿À¸·Î Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. ³ª ÀÚ½ÅÀÇ ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­´Â ±×·¸°Ô Çؾ߰ÚÁö¸¸, devfs¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ÅÃÇÒ °ÍÀÌ´Ù.

´Ù¸¥ ¹®Á¦´Â ÃÖÃÊ·Î ÂüÁ¶µÉ¶§ 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()ÀÇ Á¦Çѵé

  • 2.2.x´ëÀÇ Ä¿³Îµé

    inode »ý¼ºÀÇ Àǹ̴ devfs°¡ "Ưº°ÇÑ" ¿É¼Ç°ú ÇÔ²² ¸¶¿îÆ® µÇ¾úÀ»¶§´Â ´Ù¸£´Ù. Áö±Ý, µð¹ÙÀ̽º ¿£Æ®¸®°¡ µî·ÏµÇ¾úÀ»¶§, ±× µð¹Ù½ÃÀ¸¸¦ »ý¼ºÇϱâ À§ÇØ mknod() ¸¦ »ç¿ëÇϱâ Àü±îÁö´Â ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÌ´Ù. mknod()°¡ devfs_register() ¸¦ »ç¿ëÇÏ¿© ±× µð¹ÙÀ̽º°¡ µÇ±â ÀüÀÌ´ø Áß¿äÇÏÁö ¾Ê´Ù. ÀÌ·± ÀÛ¾÷ÀÇ ¸ñÀûÀº ´ç½ÅÀÌ ±× Á¦ÇѾȿ¡ ÃÖ¼ÒÇÑÀÇ devfs¸¦ ¸¶¿îÆ® Çϱ⠿øÇÏ´Â °÷¿¡¼­ chroot(2)ÀÇ Á¦ÇÑÀ» Áö¿øÇÏ´Â °ÍÀÌ´Ù. ´ÜÁö ´ç½ÅÀÌ Æ¯º°È÷ »ç¿ë°¡´ÉÇϵµ·Ï ¼³Á¤ÇÏ´Â(´ç½Å¸¸ÀÇ mknod() ¼³Á¤À» ÅëÇÏ¿©) µð¹ÙÀ̽º¸¸ÀÌ Á¢±Ù °¡´ÉÇÏ°Ô µÉ °ÍÀÌ´Ù.

  • 2.4.x ´ëÀÇ Ä¿³Îµé

    ÇöÀçÀÇ 2.3.99 Ä¿³ÎÀº VFS°¡ Àüü ÆÄÀϽýºÅÛÀÇ ³×ÀÓ½ºÆäÀ̽ºÀÇ ÇÑ ºÎºÐÀ» ±× ³×ÀÓ½ºÆäÀ̽ºÀÇ ´Ù¸¥ ºÎºÐÀ¸·Î ¸®¹ÙÀÎµå ½Ãų¼ö ÀÖ´Ù. ÀÌ°ÍÀº ½ÉÁö¾î leaf-node ·¹º§¿¡¼­µµ ÀÛµ¿Çϸç, °¢°¢ÀÇ ÆÄÀϵé°ú µð¹ÙÀ̽º ³ëµå°¡ ±× ³×ÀÓ½ºÆäÀ̽ºÀÇ ´Ù¸¥ ºÎºÐÀ¸·Î ¹ÙÀÎµå µÉ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ°ÍÀº ¸µÅ©¸¦ ¸¸µå´Â °Í°ú À¯»çÇÏÁö¸¸, ÆÄÀϽýºÅÛ(ÇÏµå ¸µÅ©¿Í´Â ´Ù¸¥)°ú chroot() ÀÇ Á¦ÇÑ(½Éº¼¸¯ ¸µÅ©¿Í ´Ù¸¥)À» ÅëÇÏ¿© ÀÛµ¿Çϱ⠶§¹®¿¡ ´õ ³´´Ù.

    VFS¿¡¼­ÀÇ ÀÌ·± Çâ»ó ´öºÐ¿¡, devfs¿¡¼­ ´ÙÁß ¸¶¿îÆ®¿¡ ´ëÇÑ ±â´ÉÀº ´õÀÌ»ó ÇÊ¿äÇÏÁö ¾Ê´Ù. °ü¸®ÀÚ´Â VFS ¹ÙÀεùÀ» »ç¿ëÇÏ¿© chroot(2) Á¦ÇÑ ¾È¿¡ ÃÖ¼ÒÇÑÀÇ µð¹ÙÀ̽º Æ®¸®¸¦ ¸¸µé°Ô µÈ´Ù. ÀÌ°ÍÀº devfsÀÇ ´ÙÁ߸¶¿îÆ® ´É·ÂÀÌ °¡Áø ´ëºÎºÐÀÇ ±â´ÉÀ» Á¦°øÇϱ⠶§¹®¿¡, ³ª´Â(ÀúÀÚ´Â) ´ÙÁß ¸¶¿îÆ® Äڵ带 (RFC ¿¡¼­ÀÇ ³íÀÇ ÈÄ¿¡) »©¹ö·È´Ù. ÀÌ°ÍÀº ÄÚµåÅ©±âÀÇ °¨¼Ò¿Í °£¼ÒÇÔÀ» °¡Á®´Ù ÁÖ¾ú´Ù.

    ¸¸¾à ÃÖ¼ÒÇÑÀÇ chroot() Á¦ÇÑÀ» ¸¸µé±â ¿øÇÑ´Ù¸é, ´ÙÀ½ÀÇ ¸í·É¾î¸¦ Ä¡¸é µÈ´Ù :

    mount --bind /dev/null /gaol/dev/null
    º¸¿©Áֱ⠿øÇÏ´Â ´Ù¸¥ µð¹ÙÀ̽º ³ëµå¿¡µµ ¹Ýº¹Ç϶ó. °£´ÜÇÏ´Ù!


5. ¿î¿µ»óÀÇ ¹®Á¦Á¡

5.1. ÂüÀ»¼º ¾ø´Â À̵éÀ» À§ÇÑ ¼Ò°³

¹®¼­Àб⸦ ÁÁ¾ÆÇÏ´Â »ç¶÷Àº ¾ø´Ù. »ç¶÷µéÀº ¹Ù·Î ¾ò°í ¼öÇàÇϱ⸦ ¿øÇÑ´Ù. µû¶ó¼­ À̹ø ºÎºÐ¿¡¼­´Â ºü¸£°Ô /dev »ó¿¡ devfs¸¦ ¸¶¿îÆ® ÇÏ¿© ¼öÇàÇϴµ¥ ÀÖ¾î ÇÊ¿äÇÑ ´Ü°è ¸¦ ¼³¸íÇÒ °ÍÀÌ´Ù. À̹ø ´Ü°è¸¦ °Ç³Ê¶Ù¾î¶ó. ±×·¯¸é ´ç½ÅÀº °ÅÀÇ ºÎÆÃÇÒ¼ö ¾ø´Â ½Ã½ºÅÛÀ» °¡Áøä ³¡³¯ °ÍÀÌ´Ù. ¾Æ·¡ÀÇ ºÎºÐµéÀº Á»´õ ÀÚ¼¼ÇÑ ºÎºÐ¿¡ ´ëÇØ ¼³¸íÇÏ°í ÀÖ°í, ÇʼöÀûÀÌÁö ¾ÊÀº ¼³Á¤¿É¼Ç¿¡ ´ëÇØ ³íÀÇÇÒ °ÍÀÌ´Ù.


5.1.1. Devfsd

OK, ´ç½ÅÀÌ À̺κÐÀ» Àаí ÀÖ´Ù¸é, ³ª´Â ´ç½ÅÀÌ 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µµ üũÇغ¸¶ó.

참고: ºÎÆ® ½ºÅ©¸³Æ®¿¡ ³Ö¾î¾ß µÉ ÁÙÀº Á¤È®ÇÏ°Ô ´ÙÀ½°ú °°¾Æ¾ß ÇÔÀ» ¸í½ÉÇ϶ó :

/sbin/devfsd /dev

Àý´ë·Î ¾î¶°ÇÑ µ¥¸ó ½ÇÇà ÇÁ·Î±×·¥µµ »ç¿ëÇÏÁö ¸»¶ó. ±×·¸Áö ¾ÊÀ¸¸é ºÎÆ®½ºÅ©¸³Æ®´Â devfsd°¡ ÃʱâÈ­ÇÏ´Â °ÍÀ» ±â´Ù·ÁÁÖÁö ¾Ê´Â´Ù.


5.1.2. ½Ã½ºÅÛ ¶óÀ̺귯¸®µé

À߸øµÈ ¼ÒÇÁÆ®¿þ¾î°¡ µð¹ÙÀ̽º ³×ÀÓ¿¡ ´ëÇØ °¡Á¤Çϱ⠶§¹®¿¡ ÀϾ´Â ¹®Á¦Á¡µéÀÌ ÀÖ´Ù. ÀÚ¼¼ÇÏ°Ô ¸»Çϸé, ¾î¶² ¼ÒÇÁÆ®¿þ¾î´Â ½Éº¼¸¯ ¸µÅ©·Î µÈ µð¹ÙÀ̽º¸¦ »ç¿ëÇÏÁö ¸øÇÑ´Ù. ¸¸¾à libc5 ¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é, libc5.4.44¸¦ ¼³Ä¡Çضó(¸¸¾à libc5.4.46À» »ç¿ëÇÏ°í ÀÖ´Ù¸é ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÏ´Â libc5.4.44·Î ´Ù¿î±×·¹À̵åÇ϶ó). ¸¸¾à glibc¿¡ ±âÃÊÇÑ ½Ã½ºÅÛÀ» »ç¿ëÇÑ´Ù¸é glibc 2.1.3 ÀÌ»óÀÎÁö È®ÀÎÇØ¾ß ÇÑ´Ù.


5.1.3. /etc/securetty

PAM(Pluggable Authentication Modules)Àº ´õ ³ªÀº »ç¿ëÀÚ ÀÎÁõ°ú ¼­ºñ½º¸¦ Á¦°øÇϱ⠶§¹®¿¡ À¯¿¬ÇÑ ¸ÞÄ¿´ÏÁòÀ¸·Î Æò°¡¹Þ°í ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ, ±×°ÍÀº ±úÁö±â ½±°í, º¹ÀâÇÏ°í ¹®¼­È­ µÇ¾î ÀÖÁö ¾Ê´Ù(·¹µåÇÞ 6.1°ú ´Ù¸¥ ¹èÆ÷ÆÇÀ» È®ÀÎÇغ¸¶ó). PAMÀº ½Éº¼¸¯¸µÅ©¿Í´Â ¹®Á¦¸¦ ÀÏÀ¸Å²´Ù. ´ÙÀ½ÀÇ ÁÙÀ» /etc/securetty ÆÄÀÏ¿¡ Ãß°¡½ÃÄѶó :

vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
ÀÌ°ÍÀº º¸¾ÈÀ» ¾àÈ­½ÃÅ°Áö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à 2.10.h ÀÌÀüÀÇ util-linux ¹öÀüÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ±× ÀÌÈÄÀÇ ¹öÀüÀ¸·Î ¾÷±×·¹À̸¦ Çϱ⠹ٶõ´Ù. ¸¸¾à ¾÷±×·¹À̵å ÇÒ ¼ö ¾ø´Ù¸é, ´ÙÀ½ÀÇ ÁÙÀ» /etc/securetty ÆÄÀÏ¿¡ Ãß°¡Ç϶ó :
1
2
3
4
5
6
7
8
ÀÌ°ÍÀº ³×Æ®¿öÅ©¸¦ ÅëÇÑ ·çÆ®ÀÇ ·Î±×ÀÎÀ» Çã¿ëÇϱ⠶§¹®¿¡(Æнº¿öµå´Â ¿ä±¸µÈ´Ù) º¸¾ÈÀ» ¾àÈ­½ÃŲ´Ù. ±×·¯³ª, ½É¸µÅ©¸¦ Ãë±ÞÇϴµ¥ À־ ¹®Á¦°¡ Àֱ⠶§¹®¿¡, ³ª´Â ¾î¶² °æ¿ì¿¡¶óµµ Á¦°øµÇ´Â º¸¾È·¹º§¿¡ ÀǽÉÀ» °¡Áö°í ÀÖ´Ù. (¿ªÀÚ ÁÖ : PAMÀÌ ½É¸µÅ©¿¡ ¹®Á¦Á¡À» º¸À̱⠶§¹®¿¡, ¾îÂ÷ÇÇ º¸¾È¿¡´Â ¹®Á¦Á¡ÀÌ ÀÖ´Ù´Â ¸»)


5.1.4. Xfree86

ÇʼöÀûÀÌÁö´Â ¾ÊÁö¸¸, Á»´õ devfs¿¡ ¹ÐÁ¢Çϵµ·Ï ÇÏ´Â ÆÐÄ¡ÀÇ ÀÏȯÀ¸·Î XFree86 4.0À¸·Î ¾÷±×·¹À̵å ÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ´Ù. ¸¸¾à ±×·¸°Ô ÇÏÁö ¾Ê´Â´Ù¸é, ÀÏ¹Ý »ç¿ëÀÚ°¡ startx¸¦ ÇÒ¼ö ÀÖµµ·Ï /etc/security/console.perms¿¡ ´ÙÀ½ÀÇ ÆÐÄ¡¸¦ Àû¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¸ðµç ¹èÆ÷ÆÇÀÌ ÀÌ ÆÄÀÏÀ» °¡Áö°í ÀÖ´Â °ÍÀº ¾Æ´Ï¹Ç·Î(e.g. µ¥ºñ¾È) ÀÌ°ÍÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°í Çصµ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù.

--- /etc/security/console.perms.orig    Sat Apr 17 16:26:47 1999
+++ /etc/security/console.perms Fri Feb 25 23:53:55 2000
@@ -14,7 +14,7 @@
# man 5 console.perms

# file classes -- ÀÌ°ÍÀº Á¤±ÔÇ¥Çö½ÄÀÌ´Ù.
-<console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
+<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]

# device classes -- these are shell-style globs
<floppy>=/dev/fd[0-1]*
¸¸¾à ÆÐÄ¡°¡ Àû¿ëµÇÁö ¾Ê´Â´Ù¸é, ´ÙÀ½°ú °°ÀÌ º¯°æÇ϶ó.:
<console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
À»
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
À¸·Î ¼öÁ¤ÇÏ¸é µÈ´Ù.


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 ¹ÙÀεù ±â´ÉÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ ±â´ÉÀ» ¼³Á¤Çϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°ÀÌ Ç϶ó:

  • ºÎÆýÿ¡ devfs°¡ ¸¶¿îÆ® µÇÁö ¾Êµµ·ÏÇ϶ó

  • /dev-stateµð·ºÅ丮¸¦ ¸¸µé¾î¶ó

  • ºÎÆ® ½ºÅ©¸³Æ®ÀÇ ¾ÕºÎºÐ¿¡ ´ÙÀ½ÀÇ ÁÙÀ» Ãß°¡Ç϶ó

    mount --bind /dev /dev-state
    mount -t devfs none /dev
    devfsd /dev

  • /etc/devfsd.conf¿¡ ´ÙÀ½À» Ãß°¡Ç϶ó:

    REGISTER	^pt[sy]/.*	IGNORE
    CHANGE		^pt[sy]/.*	IGNORE
    REGISTER	.*		COPY	/dev-state/$devname $devpath
    CHANGE		.*		COPY	$devpath /dev-state/$devname
    CREATE		.*		COPY	$devpath /dev-state/$devname

  • ¸®º×


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¿¡ ³ªÅ¸³ª¹Ç·Î ³ª´Â ¾Æ¹«°Íµµ ÀÒÀº °ÍÀÌ ¾ø´Ù.

경고

¸¸¾à ´ç½ÅÀÇ ¼³Á¤ÀÌ ¿¹Àü¹æ½ÄÀÇ µð¹ÙÀ̽º À̸§(¿¹¸¦ µé¾î /dev/hda1 , /dev/sda1)À» ÇÊ¿ä·Î ÇÑ´Ù¸é, ȣȯ¿£Æ®¸®¸¦ À¯ÁöÇϵµ·Ï devfsd¸¦ ¼³Ä¡ÇÏ°í ¼³Á¤ÇØ¾ß ÇÑ´Ù. ´ç½ÅÀÌ ÀÌ°ÍÀ» ÇÊ¿ä·Î ÇÒ °ÍÀ̶ó´Â °ÍÀº °ÅÀÇ È®½ÇÇÏ´Ù. Ä¿³ÎÀÌ ·çÆ® µð¹ÙÀ̽º¿¡ ´ëÇØ È£È¯Ç׸ñÀ» »ý¼ºÇϱ⠶§¹®¿¡ initrd¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.

¸¸¾à 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¸¦ »ý¼ºÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ÀÇ ÁÙÀ» Ãß°¡Ç϶ó:

mknod /dev/initctl p
kill -SIGUSR1 1 	# /dev/initctlÀÌ ÇöÀç Á¸ÀçÇÏ´ÂÁö¸¦ init¿¡ ¾Ë·ÁÁÜ
´Ù¸¥ ¹æ¹ýÀ¸·Î´Â, Ä¿³ÎÀÌ /dev¿¡ devfs¸¦ ¸¶¿îÆ® Çϱ⸦ ¿øÄ¡ ¾Ê´Â´Ù¸é, /dev/initctl¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÏ¿© ´ÙÀ½ÀÇ ÇÁ·Î½ÃÁ®¸¦ »ç¿ëÇÒ ¼ö ¼ö ÀÖ´Ù:
# cd /sbin
# mv init init.real
# cat > init
#! /bin/sh
mount -n -t devfs none /dev
mknod /dev/initctl p
exec /sbin/init.real $*
[control-D]
# chmod a+x init
initÀÇ ÃֽŠ¹öÀüÀº /dev/initctl¸¦ ÀÚµ¿À¸·Î »ý¼ºÇϹǷÎ, ÀÌ°Í¿¡ ´ëÇؼ­ °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.


5.5.2. ¸ðµâ ÀÚµ¿·Îµù

¸ðµâÀÇ ÀÚµ¿·ÎµùÀ» Çϱâ À§Çؼ­´Â devfsd¸¦ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ´ÙÀ½ÀÇ ÁÙÀ» /etc/devfsd.confÆÄÀÏ¿¡ Ãß°¡½ÃÄѶó:

LOOKUP	.*	MODLOAD
devfsd-v1.3.10 ÀÌÈÄ·Î, MODLOAD ¿¡ ÀÇÇØ »ç¿ëµÇ´Â Æ÷°ýÀûÀÎ /etc/modules.devfs ¼³Á¤ ÆÄÀÏÀÌ ¼³Ä¡µÈ´Ù. ÀÌ°ÍÀº ´ëºÎºÐÀÇ ¼³Á¤µé¿¡ ´ëÇØ ÃæºÐÇÏ´Ù. ¸¸¾à ¼³Á¤ÀÌ ´õ ÇÊ¿äÇÏ´Ù¸é, /etc/modules.confÆÄÀÏÀ» ¼öÁ¤Ç϶ó. devfs°¡ ¸ðµâÀÇ ÀÚµ¿·ÎµùÀ» ÇÏ´Â ¹æ¹ýÀº :

  • ÇÁ·Î¼¼½º°¡ µð¹ÙÀ̽º ³ëµåÀÇ Å½»ö½Ãµµ¸¦ ÇÑ´Ù(e.g. /dev/fred)

  • ¸¸¾à µð¹ÙÀ̽º ³ëµå°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é, Àüü°æ·Î°¡ ¹®ÀÚ¿­·Î devfsd¿¡ ³Ñ°ÜÁø´Ù.

  • devfsd´Â modprobe ÇÁ·Î±×·¥(À§¿¡¼­ º¸¿©Áø ¼³Á¤ ¶óÀÎÀÌ Á¸ÀçÇÏ´Â) ¿¡ ±× ¹®ÀÚ¿­À» ÀüÇØÁÖ°í, ±× ¼³Á¤ÆÄÀÏÀÎ /etc/modules.devfs¿¡ ¸í½ÃÇÑ´Ù.

  • /etc/modules.devfs´Â ·ÎÄà ¼³Á¤¿¡ Á¢±ÙÇϱâ À§ÇØ /etc/modules.confÀ» Æ÷ÇÔÇÑ´Ù.

  • modprobe´Â ±× °æ·Î¸¦ ¸ðµâÀ̸§À¸·Î º¯È¯ÇÏ´Â ¾Ù¸®¾î½º¸¦ Ž»öÇÔÀ¸·Î½á ±×°ÍÀÇ ¼³Á¤ÆÄÀÏÀ» ãÀ» °ÍÀÌ´Ù.

  • º¯È¯µÈ °æ·Î´Â ±× ¸ðµâÀ» ·ÎµùÇϴµ¥ »ç¿ëµÈ´Ù.

¸¸¾à mymod¸ðµâÀ» ·ÎµùÇϱâ À§ÇÏ¿© /dev/fred¸¦ Ž»öÇϱ⠿øÇÑ´Ù¸é, /etc/modules.conf¿¡ ´ÙÀ½ÀÇ ÁÙÀ» Ãß°¡Ç϶ó:

alias	/dev/fred	mymod
±× /etc/modules.devfs ¼­Á¤ ÆÄÀÏÀº Ç¥ÁØ µð¹ÙÀ̽º À̸§¿¡ ´ëÇؼ­ °¢°¢ÀÇ ¾Ù¸®¾î½º¸¦ Á¦°øÇÑ´Ù. ¸¸¾à ÀÌ ÆÄÀÏÀ» ÀÚ¼¼ÇÏ°Ô Ã£´Â´Ù¸é, ¾î¶² ¸ðµâÀº ¿©·¯°³ÀÇ ¾Ù¸®¾î½º ¼³Á¤ ÁÙÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¾Ë°ÍÀÌ´Ù. ±×°ÍÀº ¿§ ¹æ½Ã°ú »õ·Î¿î ¹æ½ÄÀÇ µð¹ÙÀ̽º À̸§¿¡ ´ëÇØ ¸ðµâ ÀÚµ¿·ÎµùÀ» Áö¿øÇϱâ À§ÇØ ÇÊ¿äÇÏ´Ù.


5.5.3. devfs µð¹ÙÀ̽º¿¡ root¸¦ ¸¶¿îÆ®Çϱâ

¸¸¾à "devfs=only" ºÎÆ® ¿É¼ÇÀ» ¼³Á¤ÇßÀ»¶§ devfs µð¹ÙÀ̽º°¡ root¸¦ ¸¶¿îÆ® Çϱ⸦ ¿øÇÑ´Ù¸é, ºÎÆýà Ŀ³Î¿É¼Ç¿¡ "root=<device>" ¿É¼ÇÀ» ³Ö¾î¾ß ÇÑ´Ù. LILO¸¦ »ç¿ëÇÑ´Ù¸é, lilo.conf¿¡ ÀÌ°ÍÀ» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù:

append = "root=>device>"
³î¶ó¿î°¡? ¿½, ³ª ¿ª½Ã ±×·¸´Ù. ´ÙÀ½ÀÇ ÁÙÀ» ´ç½ÅÀÌ °¡Áö°í ÀÖ´Ù¸é (´ëºÎºÐÀÇ »ç¶÷µéÀÌ ±×·± °Íó·³) ÇØ°áÇÑ´Ù:
root = <device>
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 ¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù.

/dev/discs/disc0	first disc
/dev/discs/disc1	second disc
ÀÌµé °¢ Ç׸ñµé¸¶´Ù ±× µð¹ÙÀ̽º¿¡ ´ëÇÏ¿© µð·ºÅ丮¿¡ ½Éº¼¸¯ ¸µÅ©°¡ °É·ÁÀÖ´Ù. µð¹ÙÀ̽º µð·ºÅ丮´Â ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù.
disc	Àüü µð½ºÅ©¿¡ ´ëÇÏ¿©
part*	°¢°¢ÀÇ ÆÄƼ¼Ç¿¡ ´ëÇÏ¿©


5.6.2. CD-ROM Devices

SCSI, IDE ¶Ç´Â ¾î¶² CD-ROMÀÌ´øÁö°£¿¡ ¸ðµç CD-ROMµéÀº /dev/cdroms °è¿­¾Æ·¡ Á¸ÀçÇÑ´Ù.:

/dev/cdroms/cdrom0	first CD-ROM
/dev/cdroms/cdrom1	second CD-ROM
À̵é Ç׸ñ °¢°¢Àº ±× µð¹ÙÀ̽º¿¡ ´ëÇÑ ½ÇÁ¦ µð¹ÙÀ̽º Ç׸ñ¿¡ ´ëÇÑ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù.


5.6.3. Tape Devices

SCSI, IDE ¸¦ ¸··ÐÇÏ°í ¸ðµç Å×ÀÙ ÀåÄ¡µéÀº /dev/tapes°è¿­¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù.

/dev/tapes/tape0	first tape
/dev/tapes/tape1	second tape
À̵é Ç׸ñ °¢°¢Àº ±× µð¹ÙÀ̽º¿¡ ´ëÇÑ µð·ºÅ丮ÀÇ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù.
mt			for mode 0
mtl			for mode 1
mtm			for mode 2
mta			for mode 3
mtn			for mode 0, no rewind
mtln			for mode 1, no rewind
mtmn			for mode 2, no rewind
mtan			for mode 3, no rewind


5.6.4. SCSI Devices

¾î¶² SCSI µð¹ÙÀ̽º¸¦ À¯ÀÏÇÏ°Ô ÆǺ°Çϱâ À§Çؼ­´Â ´ÙÀ½ÀÇ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù:

controller	(host adapter)
bus		(SCSI channel)
target	(SCSI ID)
unit		(Logical Unit Number)
¸ðµç SCSI µð¹ÙÀ̽º´Â /dev/scsi (devfs°¡ /dev¿¡ ¸¶¿îÆ® µÇ¾ú´Ù´Â ÀüÁ¦ÇÏ¿¡) ¾Æ·¡ À§Ä¡ÇÑ´Ù. ±×·¯¹Ç·Î, ´ÙÀ½ ÆĶó¹ÌÅÍ:c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI µð¹ÙÀ̽º´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¯ °ÍÀÌ´Ù.
/dev/scsi/host1/bus2/target3/lun4	device directory
ÀÌ µð·ºÅ丮 ¾È¿¡¼­ SCSI µð¹ÙÀ̽º ŸÀÙ µå¶óÀ̹ö°¡ ÀνºÅçµÈ °Í¿¡ ÀÇÁ¸ÇÏ¿© µð¹ÙÀ̽º Ç׸ñ ¹øÈ£°¡ ¸¸µé¾îÁú °ÍÀÌ´Ù.

SCSI µð½ºÅ© µå¶óÀ̹ö°¡ ¸¸µå´Â Ç׸ñÀ» ¾Ë±âÀ§Çؼ­´Â µð½ºÅ© ³×ÀÌ¹Ö Ã¼°è¿¡ ´ëÇÑ ¼½¼ÇÀ» º¸¶ó.

SCSI Å×ÀÙ µå¶óÀ̹ö Ç׸ñÀÌ ¸¸µé¾îÁö´Â °Í¿¡ ´ëÇØ ¾Ë°í ½ÍÀ¸¸é Å×ÀÙ ³×ÀÌ¹Ö ÃÇ°Ô¿¡ ´ëÇÑ ¼½¼ÇÀ» º¸¶ó.

SCSI CD-ROm µå¶óÀ̹ö´Â ´ÙÀ½À» ¸¸µç´Ù:

cd
SCSI generic µå¶óÀ̹ö´Â ´ÙÀ½À» ¸¸µç´Ù:
	generic


5.6.5. IDE Devices

IDE µð¹ÙÀ̽º¸¦ À¯ÀÏÇÏ°Ô ÁöÁ¤Çϱâ À§Çؼ­´Â ´ÙÀ½ÀÇ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù:

controller
bus		(aka. primary/secondary)
target	(aka. master/slave)
unit
¸ðµç IDE µð¹ÙÀ̽ºµéÀº /dev/ide¾Æ·¹ À§Ä¡ÇÏ°í, SCSI ¼­ºê½Ã½ºÅÛ°ú ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù.


5.6.6. XT Hard Discs

¸ðµç XT µð½ºÅ©µéÀº /dev/xd¾Æ·¡ À§Ä¡ÇÑ´Ù. ù¹ø° XT µð½ºÅ©´Â /dev/xd/disc0µð·ºÅ丮¸¦ °¡Áø´Ù.


5.6.7. TTY devices

tty µð¹ÙÀ̽ºµéÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù.

     New name                   Old-name                   Device Type
     ---------                  --------                   -----------
/dev/tts/{0,1,...}         /dev/ttyS{0,1,...}             Serial ports
/dev/cua/{0,1,...}         /dev/cua{0,1,...}              Call out devices
/dev/vc/0                  /dev/tty                       Current virtual console
/dev/vc/{1,2,...}          /dev/tty{1...63}               Virtual consoles
/dev/vcc/{0,1,...}         /dev/vcs{1...63}               Virtual consoles
/dev/pty/m{0,1,...}        /dev/ptyp??                    PTY masters
/dev/pty/s{0,1,...}        /dev/ttyp??                    PTY slaves


5.6.8. RAMDISCS

RAMDISCµéÀº ±×µé ÀÚ½ÅÀÇ µð·ºÅ丮¿¡ À§Ä¡Çϸç, ´ÙÀ½°ú °°Àº À̸§À» °¡Áø´Ù:

/dev/rd/{0,1,2,...}


5.6.9. Meta Devices

meta µð¹ÙÀ̽ºµéÀº ±×µé ÀÚ½ÅÀÇ µð·ºÅ丮¿¡ À§Ä¡Çϸç, ´ÙÀ½°ú °°´Ù:

/dev/md/{0,1,2,...}


5.6.10. Floppy discs

Ç÷ÎÇÇ µð½ºÅ©µéÀº /dev/floppyµð·ºÅ丮¿¡ À§Ä¡ÇÑ´Ù.


5.6.11. Loop devices

Loop µð¹ÙÀ̽ºµéÀº /dev/loopµð·ºÅ丮¿¡ À§Ä¡ÇÑ´Ù.


5.6.12. Sound devices

Sound µð¹ÙÀ̽ºµéÀº /dev/soundµð·ºÅ丮¿¡ À§Ä¡ÇÑ´Ù. (audio, sequencer,...).


5.7. Devfsd ³×ÀÌ¹Ö ½ºÅ°¸¶

Devfsd´Â Ä¿³ÎÁ¦°ø ³×ÀÓ½ºÆäÀ̽º ÀÇ Æí¸®ÇÑ Ãà¾àÇüÀÎ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ Á¦°øÇÑ´Ù. ¾î¶² °æ¿ì¿¡´Â, Ä¿³ÎÀÌ Á¦°øÇÏ´Â ³×ÀÌ¹Ö ½ºÅ°¸¶´Â ¸Å¿ì Æí¸®ÇÏ°í, µû¶ó¼­ devfsd´Â ´Ù¸¥ ³×ÀÌ¹Ö ½ºÅ°¸¶¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù. devfsd°¡ ¸¸µå´Â Æí¸®ÇÑ À̸§Àº ½ÇÁ¦·Î ¿À¸®Áö³¯ devfs Ä¿³Î ÆÐÄ¡°¡ ¸¸µå´Â À̸§°ú µ¿ÀÏÇÏ´Ù(¸®´©Áî°¡ Big Name Change¸¦ Áö½ÃÇϱâ Àü±îÁö). À̰͵éÀº "»õ·Î¿î ȣȯ ¿£Æ®¸®"·Î¼­ Âü°íµÈ´Ù.

À̵é Æí¸®ÇÑ À̸§À» »ý¼ºÇϱâ À§ÇØ devfsd¸¦ ¼³Á¤Çϱâ À§ÇÏ¿©, ´ÙÀ½ÀÇ ÁÙÀÌ /etc/devfsd.conf¿¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù:

REGISTER        .*         MKNEWCOMPAT
UNREGISTER      .*         RMNEWCOMPAT
ÀÌ°ÍÀº Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§À» ÁöÁ¤Çϱâ À§ÇÏ¿© devfsd°¡ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé(¾ø¾Ù)µµ·Ï ÇÑ´Ù.


5.7.1. SCSI ÇÏµå µð½ºÅ©µé

¸ðµç SCSI µð½ºÅ©µéÀº /dev/sd¾Æ·¡¿¡ À§Ä¡ÇÑ´Ù (devfs´Â /dev¿¡ ¸¶¿îÆ®µÇ¾ú´Ù°í °¡Á¤Çϸé). ±×·¯¹Ç·Î, ´ÙÀ½ÀÇ ÆĶó¹ÌÅÍ:c=1,b=2,t=3,u=4¸¦ °¡Áö´Â SCSI µð½ºÅ©µéÀº

/dev/sd/c1b2t3u4	for the whole disc
/dev/sd/c1b2t3u4p5	for the 5th partition
/dev/sd/c1b2t3u4p5s6	for the 6th slice in the 5th partition
¿¡ ³ªÅ¸³­´Ù.


5.7.2. SCSI Tapes

¸ðµç SCSI Å×ÀÔµéÀº /dev/st¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©µé°ú À¯»çÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ : c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI Å×ÀÙµéÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù:

/dev/st/c1b2t3u4m0	for mode 0
/dev/st/c1b2t3u4m1	for mode 1
/dev/st/c1b2t3u4m2	for mode 2
/dev/st/c1b2t3u4m3	for mode 3
/dev/st/c1b2t3u4m0n	for mode 0, no rewind
/dev/st/c1b2t3u4m1n	for mode 1, no rewind
/dev/st/c1b2t3u4m2n	for mode 2, no rewind
/dev/st/c1b2t3u4m3n	for mode 3, no rewind


5.7.3. SCSI CD-ROMs

¸ðµç SCSI CD-ROMµéÀº /dev/sr¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©µé°ú ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ: c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI CD-ROMÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù:

/dev/sr/c1b2t3u4


5.7.4. SCSI Generic Devices

¸ðµç SCSI CD-ROMµéÀº /dev/sg¾Æ·¡ À§Ä¡ÇÑ´Ù. SCSI µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°Àº ÆĶó¹ÌÅÍ: c=1, b=2, t=3, u=4 ¸¦ °¡Áö´Â SCSI generic µð¹ÙÀ̽º´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù:

/dev/sg/c1b2t3u4


5.7.5. IDE Hard Discs

¸ðµç IDE µð½ºÅ©µéÀº SCSI µð½ºÅ©µé°ú ºñ½ÁÇÑ ¹æ¹ýÀ» »ç¿ëÇÏ¿©, /dev/ide/hd¾Æ·¡ À§Ä¡ÇÑ´Ù. ´ÙÀ½ÀÇ ¸ÊÇÎÀÌ »õ·Î¿î À̸§°ú ¿¹Àü À̸§ »çÀÌ¿¡ Á¸ÀçÇÑ´Ù.

/dev/hda	/dev/ide/hd/c0b0t0u0
/dev/hdb	/dev/ide/hd/c0b0t1u0
/dev/hdc	/dev/ide/hd/c0b1t0u0
/dev/hdd	/dev/ide/hd/c0b1t1u0


5.7.6. IDE Tapes

IDE µð½ºÅ©µé°ú À¯»çÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. ±× Ç׸ñÀº /dev/ide/mtµð·ºÅ丮 ¾È¿¡¼­ ³ªÅ¸³¯ °ÍÀÌ´Ù.


5.7.7. IDE CD-ROM

IDE µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è°¡ »ç¿ëµÈ´Ù. °¢ Ç׸ñÀº /dev/ide/cdµð·ºÅ丮 ¾È¿¡¼­ ³ªÅ¸³¯ °ÍÀÌ´Ù.


5.7.8. IDE Floppies

IDE µð½ºÅ©¿Í ºñ½ÁÇÑ ³×ÀÌ¹Ö Ã¼°è¸¦ »ç¿ëÇÑ´Ù. °¢ Ç׸ñÀº /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¿¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù

REGISTER	.*		MKOLDCOMPAT
UNREGISTER	.*		RMOLDCOMPAT
ÀÌ°ÍÀº devfsd°¡ Ä¿³ÎÀÌ Á¦°øÇÏ´Â À̸§À» ÁöÁ¤Çϵµ·Ï ÇÏ´Â ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé(¾ø¾Ö)µµ·Ï ÇÑ´Ù.


5.9. SCSI È£½ºÆ® Ž»ö°ú °ü·ÃµÈ ¹®Á¦

Devfs´Â SCSI È£½ºÆ® ¹øÈ£¿¡ ´ëÇØ ±âÃÊÇÑ SCSI µð½ºÅ©¸¦ ½Äº°Çϵµ·Ï Çã¿ëÇÑ´Ù. ¸¸¾à ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ¿ÀÁ÷ ÇϳªÀÇ SCSI È£½ºÆ®(card)°¡ ÀÖ´Ù¸é, È£½ºÆ® ¹øÈ£´Â 0À» ¹Þ°Ô µÉ °ÍÀÌ´Ù. ´ç½ÅÀÌ ¿©·¯°³ÀÇ SCSI È£½ºÆ®¸¦ °¡Áö°í ÀÖ´Ù¸é ±×´ÙÁö ½±Áö ¾Ê´Ù. ºÒÇàÇÏ°Ôµµ, ¶§¶§·Î SCSI È£½ºÆ®ÀÇ ¹øÈ£¸¦ ¾ò±â ¿øÇÏ´Â °ÍÀ» ÃßÃøÇϴµ¥ ¾î·Á¿òÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» ½±°Ô Çϱâ À§Çؼ­, "scsihosts"¶ó ºÒ¸®´Â Ä¿³Î ºÎÆ® ÆĶó¹ÌÅÍ°¡ ÀÖ´Ù. ÀÌ°ÍÀº SCSI È£½ºÆ®µéÀÇ ´Ù¸¥ ŸÀÔ¿¡ ´ëÇØ ¼ø¼­¸¦ °áÁ¤Çϵµ·Ï ÇØÁØ´Ù. ÀÌ ÆĶó¹ÌÅÍÀÇ ¹®¹ýÀº:

scsihosts=<name_1>:<name_2>:<name_3>:...:<name_n>
ÀÌ´Ù. ¿©±â¼­ <name_1>,<name_2>,...,<name_n> µéÀº /proc ÆÄÀϽýºÅÛ¿¡¼­ »ç¿ëµÈ µå¶óÀ̹öµéÀÇ À̸§µéÀÌ´Ù. ¿¹¸¦ µé¾î:
scsihosts=aha1542:ppa:aha1542::ncr53c7xx
´Â
- ù¹ø° aha1542 ÄÁÆ®·Ñ·¯   - /dev/scsi/host0/bus#/target#/lun# ÀÏ °ÍÀÌ´Ù.
- ù¹ø° º´·ÄÆ÷Æ® ZIP       - /dev/scsi/host1/bus#/target#/lun# ÀÏ °ÍÀÌ´Ù.
- µÎ¹ø° aha1542 ÄÁÆ®·Ñ·¯   - /dev/scsi/host2/bus#/target#/lun# ÀÏ °ÍÀÌ´Ù.
- ù¹ø° NCR53C7xx ÄÁÆ®·Ñ·¯ - /dev/scsi/host4/bus#/target#/lun# ÀÏ °ÍÀÌ´Ù.
- ³ª¸ÓÁö ÄÁÆ®·Ñ·¯           - /dev/scsi/host5/bus#/target#/lun#,
                              /dev/scsi/host6/bus#/target#/lun# µîµî ÀÏ °ÍÀÌ´Ù.
- ¸¸¾à À§ÀÇ ¾î¶² ÄÁÆ®·Ñ·¯µµ ¹ß°ßµÇÁö ¾Ê¾Ò´Ù¸é - ±× ¿¹¾àµÈ À̸§µéÀÌ ´Ù¸¥ µð¹ÙÀ̽º¿¡ ÀÇÇØ
                                                »ç¿ëµÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù.
- /dev/scsi/host3/bus#/target#/lun# ´Â Àý´ë·Î »ç¿ëµÇÁö ¾Ê´Â´Ù.
¿¡ ¿¬°áµÈ µð¹ÙÀ̽º¸¦ ÀǹÌÇÑ´Ù. ¿øÇÑ´Ù¸é ºÐ¸®ÀÚ·Î ':' ´ë½Å¿¡ ','¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ³ª´Â ¿©±â¼­ devfsd ³×ÀÌ¹Ö ½ºÅ°¸¶ ¸¦ »ç¿ëÇÑ´Ù.

¸¸¾à °°Àº ŸÀÔÀ¸·Î ¿©·¯°³ÀÇ Ä«µå(NCR53c8xx¿Í °°Àº)¸¦ °¡Áö°í ÀÖ´Ù¸é, ÀÌ ½ºÅ°¸¶°¡ SCSI È£½ºÆ®¸¦ ÁöÁ¤ÇÏÁö´Â ¸øÇÑ´Ù. ÀÌ·± °æ¿ì¿¡ ´ç½ÅÀº ÀÌ°ÍÀ» Á¦¾îÇϱâ À§Çؼ­ µå¶óÀ̹ö¸¦ ÁöÁ¤ÇÏ´Â ºÎÆ® ÆĶó¹ÌÅ͸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.


6. ÇöÀç Æ÷ÆÃµÈ µð¹ÙÀ̽º µå¶óÀ̹öµé

  • ¸ðµç miscellaneous ij¸¯ÅÍ µð¹ÙÀ̽ºµéÀº devfs¸¦ Áö¿øÇÑ´Ù (ÀÌ°ÍÀº misc_register()¸¦ ÅëÇÏ¿© Åõ¸íÇÏ°Ô ÀÌ·ç¾î Áø´Ù)

  • SCSI µð½ºÅ©¿Í ÀÏ¹Ý ÇÏµå µð½ºÅ©µé

  • ij¸¯ÅÍ ¸Þ¸ð¸® µð¹ÙÀ̽ºµé(null, zero, full, ±âŸµîµî) -- C. Scott Ananian <cananian (at) alumni.princeton.edu>¿¡°Ô °¨»çÇÏ´Ù.

  • ·çÇÁ µð¹ÙÀ̽ºµé(/dev/loop?)

  • TTY µð¹ÙÀ̽ºµé (ÄܼÖ, ½Ã¸®¾ó Æ÷Æ®, Å͹̳ΰú pseudo Å͹̳εé) -- C. Scott Ananian <cananian (at) alumni.princeton.edu> ¿¡ °¨»çÇÑ´Ù.

  • SCSI Å×ÀÔÀåÄ¡(/dev/scsi ¿Í /dev/tapes)

  • SCSI CD-ROM(/dev/scsi¿Í /dev/cdroms)

  • SCSI ÀÏ¹Ý µð¹ÙÀ̽ºµé(/dev/scsi)

  • RAMDISCS (/dev/ram?)

  • ¸ÞŸ µð¹ÙÀ̽ºµé (/dev/md*)

  • º´·ÄÆ÷Æ® ÇÁ¸°ÅÍ (/dev/printers)

  • »ç¿îµå µð¹ÙÀ̽º (/dev/sound) -- C. Scott Ananian <cananian (at) alumni.princeton.edu> ¿Í Eric Dumas <dumas (at) linux.eu.org> ¿¡°Ô °¨»çÇÑ´Ù.

  • Á¶À̽ºÆ½(/dev/joysticks)

  • Sparc Å°º¸µå (/dev/kbd)

  • DSP56001 µðºñÅÐ ½Ã±×³Î ÇÁ·Î¼¼¼­ (/dev/dsp56k)

  • ¾ÖÇà µ¥½ºÅ©Å¾ ¹ö½º (/dev/adb)

  • Coda ³×Æ®¿÷ ÆÄÀϽýºÅÛ (/dev/cfs*)

  • ¹öÃò¾ó ÄÜ¼Ö Ä¸ÃÄ µð¹ÙÀ̽º (/dev/vcc) -- Dennis Hou <smilax (at) mindmeld.yi.org> ¿¡ °¨»çÇÑ´Ù.

  • ÇÁ·¹ÀÓ ¹öÆÛ µð¹ÙÀ̽º (/dev/fb)

  • ºñµð¿À ĸÃÄ µð¹ÙÀ̽º (/dev/v41)


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

¿©±â¿¡´Â Åë»óÀûÀÎ Áú¹®°ú ´äº¯ÀÌ ÀÖ´Ù.

  • Devfsd°¡ ¸ðµç Æ۹̼ÇÀ» °ü¸®ÇÏÁö ¾Ê´Â´Ù

    ´ç½ÅÀÌ Àû´çÇÑ À̺¥Æ®¸¦ ĸÃÄÇÏ°í ÀÖ´ÂÁö È®ÀÎÇ϶ó. ¿¹¸¦ µé¾î,Ä¿³ÎÀÌ ¸¸µç µð¹ÙÀ̽º ¿£Æ®¸®´Â REGISTER À̺¥Æ®¸¦ ¹ß»ý½ÃÅ°Áö¸¸, devfsd°¡ »ý¼ºÇÑ °ÍµéÀº CREATEÀ̺¥Æ®¸¦ ¹ß»ýÇÑ´Ù.

  • Devfsd ´Â ¸ðµç REGISTERÀ̺¥Æ®¸¦ ĸÃÄÇÏÁö ¾Ê´Â´Ù.

    ¾ÕÀÇ Ç׸ñÀ» º¸¶ó : ´ç½ÅÀº CREATEÀ̺¥Æ®¸¦ ĸÃÄÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

  • X°¡ ½ÃÀÛÇÏÁö ¾Ê´Â´Ù.

    À§¿¡ ¾à¼úµÈ ¸ðµç ´Ü°è¸¦ µû¶óÇß´ÂÁö È®ÀÎÇغ¸¶ó.

  • ¿Ö ³×Æ®¿öÅ© µð¹ÙÀ̽º°¡ devfs¿¡ ³ªÅ¸³ªÁö ¾Ê´Â°¡?

    ÀÌ°ÍÀº ¹ö±×°¡ ¾Æ´Ï´Ù. ³×Æ®¿÷ µð¹ÙÀ̽º´Â ³×ÀÓ½ºÆäÀ̽º¿Í´Â ¿ÏÀüÈ÷ ºÐ¸®µÇ¾î ÀÖ´Ù. ±×°ÍµéÀº socket(2)¿Í setsockopt(2)¿¡ ÀÇÇØ Á¢±ÙµÇ°í, µû¶ó¼­ µð¹ÙÀ̽º ³ëµå°¡ ÇÊ¿ä¾ø´Ù. ³ª´Â ³×Æ®¿÷ µð¹ÙÀ̽º¸¦ µð¹ÙÀ̽º ³×ÀÓ½ºÆäÀ̽º¿¡ ¿Å±æ °ÍÀ» Á¦¾ÈÇÏ¿´Áö¸¸, ¾Æ¹«·± ÀÀ´äÀ» ¹ÞÁö ¸øÇß´Ù.

  • Ä¿³Î¿¡ devfs°¡ ÄÄÆÄÀϵǾî ÀÖ´ÂÁö È®ÀÎÇÏ´Â ¹æ¹ýÀº ¹«¾ùÀΰ¡?

    Ä¿³Î¿¡ ³»ÀåµÇ¾î Àְųª ÇöÀç ·ÎµùµÇ¾î ÀÖ´Â ¸ðµç ÆÄÀϽýºÅÛµéÀº /proc/filesystems¿¡ ³ªÅ¸³­´Ù. ¸¸¾à devfs ¿£Æ®¸®°¡ º¸Àδٸé, devfs°¡ ÄÄÆÄÀϵǾî ÀÖ´Â Ä¿³ÎÀ̶ó´Â °ÍÀ» ¾Ë¼ö ÀÖ´Ù. ¸¸¾à Á¤È®ÇÏ°Ô ¼³Á¤ÇÏ°í Ä¿³ÎÀ» ÀçÄÄÆÄÀÏ ÇÑ´Ù¸é, devfs´Â ³»ÀåµÇ¾î ÀÖÀ» °ÍÀÌ´Ù. »ý°¢Çϱ⿡ Á¦´ë·Î ¼³Á¤ÇßÀ½¿¡µµ /proc/filesystems¿¡ ³ªÅ¸³ªÁö ¾Ê´Â´Ù¸é, ´ç½ÅÀÌ ½Ç¼ö¸¦ ÇÑ °ÍÀÌ´Ù. ÀϹÝÀûÀÎ ½Ç¼ö´Â:

    • devfs ÆÐÄ¡¸¦ Àû¿ëÇÏÁö ¾ÊÀº 2.2.x Ä¿³ÎÀ» »ç¿ëÁßÀÌ´Ù(¸¸¾à Ä¿³ÎÀ» ÆÐÄ¡ÇÏ´Â ¹æ¹ýÀ» ¸ð¸¥´Ù¸é, ´ë½Å¿¡ 2.4.x¸¦ »ç¿ëÇÏ°í, ³ª¿¡°Ô ÆÐÄ¡ÇÏ´Â ¹ýÀ» Áú¹®Çؼ­ ¼º°¡½Ã°Ô ÇÏÁö ¸»¶ó)

    • CONFIG_EXPERIMENTAL=y ·Î ¼³Á¤ÇÏ´Â °ÍÀ» Àؾú´Ù.

    • CONFIG_DEVFS_FS=y·Î ¼³Á¤ÇÏ´Â °ÍÀ» Àؾú´Ù.

    • CONFIG_DEVFS_MOUNT=y·Î ¼³Á¤ÇÏ´Â °ÍÀ» Àؾú´Ù. (¸¸¾à ºÎÆýà devfs°¡ ÀÚµ¿À¸·Î ¸¶¿îÆ® µÇ±â¸¦ ¿øÇÑ´Ù¸é)

    • make config ³ª make xconfig ´ë½Å¿¡ .config ¸¦ Á÷Á¢ ¼öÁ¤Ç϶ó.

    • ¼³Á¤À» º¯°æÇÏ°í ÄÄÆÄÀÏÇϱâ Àü¿¡ make dep; make cleanÇÏ´Â °ÍÀ» Àؾú´Ù.

    • Ä¿³Î°ú ¸ðµâÀ» ÄÄÆÄÀÏ ÇÏ´Â °ÍÀ» Àؾú´Ù.

    • Ä¿³ÎÀ» ¼³Ä¡ÇÏ´Â °ÍÀ» Àؾú´Ù.

    • ¸ðµâÀ» ¼³Ä¡ÇÏ´Â °ÍÀ» Àؾú´Ù

    Á¦¹ß ¹ö±× ¸®Æ÷Æ®¸¦ º¸³»±â Àü¿¡ À§ÀÇ ¸ðµç ´Ü°è¸¦ ¼öÇàÇÏ¿´´ÂÁö µÎ¹ø¾¿ üũÇϵµ·Ï Ç϶ó.

  • devfs°¡ /dev¿¡ ¸¶¿îÆ®µÇ¾ú´ÂÁö ¾î¶»°Ô È®ÀÎÇÏÁÒ?

    µð¹ÙÀ̽º ÆÄÀϽýºÅÛÀº µ¥¸ó°ú Åë½ÅÇϱâ À§ÇØ »ç¿ëµÇ´Â ".devfsd" ¶ó ºÒ¸®´Â Ç׸ñÀ» Ç×»ó »ý¼ºÇÑ´Ù. µ¥¸óÀÌ ½ÇÇàÁßÀÌ ¾Æ´Ï¶ó ÇÒÁö¶óµµ, ±× Ç׸ñÀº Á¸ÀçÇÑ´Ù. ÀÌ Ç׸ñÀÇ Á¸Àç¿¡ ´ëÇØ È®ÀÎÇÏ´Â °ÍÀº devfs°¡ ¸¶¿îÆ® µÇ¾ú´ÂÁö ¾Æ´ÑÁö °áÁ¤ÇÏ´Â ÁÁÀº ¹æ¹ýÀÌ´Ù. Ç׸ñÀÇ ÇüÅÂ(i.e. ÀϹÝÀûÀÎ ÆÄÀÏ, ij¸¯ÅÍ µð¹ÙÀ̽º, named pipe, µîµî)Àº »çÀüÁÖÀÇ ¾øÀÌ ¹Ù²ð¼öµµ ÀÖ´Ù. ¿ÀÁ÷ ±× Ç׸ñ(.devfsd:¿ªÀÚ ÁÖ)ÀÇ Á¸À縸ÀÌ ¹ÏÀ»¸¸ÇÑ °ÍÀÌ´Ù


8.2. devfsÀÇ ´ë¾È

³ª´Â ¸ðµç devfs¸¦ ¹Ý´ëÇÑ Á¦¾Èµé°ú ´ëÁ¶ÇØ º¸¾Ò°í, ±×°ÍµéÀÇ ÇѰ踦 ¼³¸íÇß´Ù.

참고: ÁغñÁßÀÔ´Ï´Ù.


8.2.1. ¿Ö µ¥¸ó¿¡¼­ create/remove À̺¥Æ®¸¦ º¸³»Áö ¾Ê´Â°¡?

¿©±â¿¡¼­ ±×·¯ÇÑ Á¦¾ÈÀº µð¹ÙÀ̽ºµéÀÌ create/remove À̺¥Æ®µéÀ» µî·ÏÇÒ ¼ö ÀÖ°í, µ¥¸óÀº ±× À̺¥Æ®µéÀ» µéÀ» ¼ö ÀÖ´Â Ä¿³ÎÀÇ API¸¦ °³¹ßÇÏÀÚ´Â °ÍÀÌ´Ù. ±× µ¥¸óÀº (µð½ºÅ©»óÀÇ ÇѺκÐÀÎ)/dev¸¦ »ý¼º/ÇØÁ¦ ÇÒ °ÍÀÌ´Ù.

ÀÌ°ÍÀº ¿©·¯°¡Áö Á¦ÇÑÀ» °¡Áö°í ÀÖ´Ù:

  • ±×°ÍÀº ¿ÀÁ÷ Ä¿³ÎÀÌ ºÎÆÃÀ» ³¡³½ÈÄ¿¡ ¸ðµâÀ» ¿Ã¸®°Å³ª Á¦°ÅÇÏ´Â (¶Ç´Â µð¹ÙÀ̽º¸¦ Ãß°¡Çϰųª Á¦°ÅÇÏ´Â) °Í¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ´Ù. À̺¥Æ®ÀÇ µ¥ÀÌÅͺ£À̽º ¾øÀÌ´Â µ¥¸óÀÌ ¿ÏÀüÇÑ /dev¸¦ ¸¸µé ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø´Ù.

  • ¸¸¾à ÀÌ ½ºÅ°¸¶¿¡ ´ëÇÑ µ¥ÀÌÅͺ£À̽º¸¦ Ãß°¡ÇÑ´Ù¸é, ¹®Á¦Á¡Àº »ç¿ëÀÚ °ø°£¿¡¼­ ±× µ¥ÀÌÅͺ£À̽º¸¦ º¸¿©ÁÖ´Â ¹æ¹ýÀÌ´Ù. ¸¸¾à µ¥¸ó¿¡¼­ ÆÄÀÌÇÁ¸¦ ÅëÇØ Åë°úµÇ´Â À̺¥Æ® ÄÚµåµéÀÇ ¹®ÀÚ¿­ ¸®½ºÆ®¸¦ ¸¸µç´Ù¸é, ¿ÀÁ÷ µ¥¸ó¸¸ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ³ª´Â ÀÌ µ¥ÀÌÅ͸¦ º¸¿©ÁÖ±â À§ÇÑ À忬ÀûÀº ¹æ¹ýÀ¸·Î devfs¿Í °°Àº ÆÄÀϽýºÅÛ ºñ½ÁÇÑ °ÍÀ» ¼³¸íÇÒ °ÍÀÌ´Ù. ÆÄÀϽýºÅÛÀ¸·Î½á ±× µ¥ÀÌÅ͸¦ º¸¿©ÁÖ´Â °ÍÀº »ç¿ëÀÚ°¡ »ç¿ë°¡´ÉÇÑ °ÍÀ» ¾Ë¾Æº¸±â ½±°Ô ÇÏ°í ¶ÇÇÑ ±× "µ¥ÀÌÅͺ£À̽º"¸¦ Ž»öÇϱ⠽±µµ·Ï ÇÏ´Â ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϱ⠽±°Ô ÇÑ´Ù.

  • µð¹ÙÀ̽º ³ëµå¿Í µå¶óÀ̹ö »çÀÌÀÇ ºýºýÇÑ ¹ÙÀεùÀÌ ´õ ÀÌ»ó °¡´ÉÇÏÁö ¾Ê´Ù. (requiring the otherwise perfectly avoidable Å×ÀÌºí °Ë»ö)

  • /dev¿¡¼­ ¸ðµâÀÇ ÀÚµ¿·ÎµùÀº »ý¼ºµÈ µð¹ÙÀ̽º ³ëµå¸¦ ÇÊ¿ä·Î Çϱ⿡ inode Ž»ö À̺¥Æ®¸¦ ÀâÀ» ¼ö ¾ø´Ù. ÀÌ°ÍÀº Ä¿´Ù¶õ ¼ÂÀ¸·ÎºÎÅÍ »ý¼ºµÈ ¸Å¿ì ÀûÀº¼öÀÇ inodeµéÀÇ µå¶óÀ̹ö¿¡ ´ëÇÑ ¹®Á¦ÀÌ´Ù.

  • ÀÌ ±â¹ýÀº root ÆÄÀϽýºÅÛÀÌ Àбâ Àü¿ëÀ¸·Î ¸¶¿îÆ® µÇ¾úÀ»¶§´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.


8.2.2. scsidev¿¡ ´ëÇÑ ´õ ³ªÀº ±¸Çö

ÀÌ Á¦¾ÈÀº scsidev ÇÁ·Î±×·¥À» Æ÷ÇÔ½ÃÄѼ­ ±×°ÍÀ» SCSI µð¹ÙÀ̽º »Ó¸¸ ¾Æ´Ï¶ó, ¸ðµç µð¹ÙÀ̽º¸¦ Ž»öÇϴµ¥¿¡µµ È®ÀåÇÏÀÚ´Â °ÍÀÌ´Ù. scsidev ÇÁ·Î±×·¥Àº /proc/scsi ¸¦ Ž»öÇÏ´Â ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÑ´Ù.

¹®Á¦Á¡:

  • Ä¿³ÎÀº ÇöÀç »ç¿ë°¡´ÉÇÑ ¸ðµç µð¹ÙÀ̽ºµéÀÇ ¸ñ·ÏÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù. ¸ðµç µå¶óÀ̺êµéÀÌ Ä¿³Î ¸Þ¼¼Áö¸¦ »ý¼ºÇϰųª /proc¿¡ ¿£Æ®¸®¸¦ µî·ÏÇÏÁö´Â ¾Ê´Â´Ù.

  • devfs API¿Í´Â ´Ù¸£°Ô µð¹ÙÀ̽º¸¦ µî·Ï½ÃÅ°´Â ÀÏÁ¤ÇÑ ¸ÞÄ¿´ÏÁòÀÌ ¾ø´Ù.

  • ±×¿Í °°Àº API¸¦ ±¸ÇöÇÏ´Â °ÍÀº À§ÀÇ Á¦¾È°ú °°´Ù.


8.2.3. ·¥ µð½ºÅ©¿¡ /dev¸¦ ³Ö´Â °Í

ÀÌ Á¦¾ÈÀº ·¥µð½ºÅ©¸¦ »ý¼ºÇÏ°í µð¹ÙÀ̽º ³ëµåµéÀ» °Å±â¿¡ µÐ ÈÄ /dev¿¡ ±×°ÍÀ» ¸¶¿îÆ® ÇÏÀÚ´Â °ÍÀÌ´Ù.

¹®Á¦Á¡:

  • ÀÌ°ÍÀº ·çÆ® ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ® Çϱâ À§Çؼ­´Â ¿©ÀüÈ÷ µð¹ÙÀ̽º ³ëµå°¡ ÇÊ¿äÇϹǷΠ·çÆ® ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ® ÇÒ¶§´Â µµ¿òÀÌ µÇÁö ¸øÇÑ´Ù.

  • ¸¸¾à ·çÆ® µð¹ÙÀ̽º ³ëµå¿¡µµ ÀÌ ±â¹ýÀ» »ç¿ëÇϱ⠿øÇÑ´Ù¸é, initrd¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ°ÍÀº ºÎÆà °úÁ¤À» º¹ÀâÇÏ°Ô ÇÏ°í, °ü¸®ÀÚ¿Í ¼³Á¤ÇÏ´Â °ÍÀ» ´õ ¾î·Æ°Ô ÇÑ´Ù. initrd ´Â ½¬¿î ½Ã½ºÅÛ °ü¸®¸¦ ¾Ñ¾Æ°¨À¸·Î½á º»ÁúÀûÀ¸·Î ºÒÅõ¸íÇÏ´Ù.

  • Á¤È®ÇÏ°Ô ·¥µð½ºÅ©¸¦ À§Ä¡½ÃÅ°±â À§ÇÑ Á¤º¸°¡ ºÒÃæºÐÇÏ´Ù. ±×·¡¼­ ¿ì¸®´Â ±× ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ À§ÀÇ Á¦¾ÈÀ¸·Î µ¹¾Æ°£´Ù.

  • ramdisc-based ÇØ°áÃ¥Àº °¢ Ç׸ñ¸¶´Ù ÀÏ¹Ý VFS inode¿Í dentry ¿¡ ´ëÇؼ­ 284 ¹ÙÀÌÆ®¿Í 112 ¹ÙÀÌÆ®ÀÇ ±âº»ÀûÀÎ ÀúÀå°ø°£ÀÌ ÇÊ¿äÇϹǷÎ, ´õ ¸¹Àº Ä¿³Î ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ´Ù. devfs°¡ 72 ¹ÙÀÌÆ®¸¦ ¿ä±¸ÇÏ´Â °Í°ú ºñ±³Çغ¸¶ó.


8.2.4. ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù: ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù

¶§¶§·Î »ç¶÷µéÀº ÇöÀçÀÇ ½ºÅ°¸¶°¡ ÁÁ´Ù¶ó´Â ÁÖÀåÀ» µè°ï ÇÑ´Ù. ÀÌ°ÍÀº ±×µéÀÌ ¹«½ÃÇÏ´Â °Í¿¡ ´ëÇÑ °ÍÀÌ´Ù.

  • µð¹ÙÀ̽º ¹øÈ£ÀÇ Å©±â(¸ÞÀÌÀú/¸¶ÀÌ³Ê ¹øÈ£ ´ç 8ºñÆ®)Àº ½ÇÁ¦ Á¦ÇÑ»çÇ×ÀÌ°í, ¾î¶² ¹æ½ÄÀ¸·Î´ø ¼öÁ¤µÇ¾î¾ß¸¸ ÇÑ´Ù. ¿¹¸¦ µé¾î Å« SCSI µð¹ÙÀ̽º ¹øÈ£¸¦ °¡Áö´Â ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´çµÇÁö ¾ÊÀº ¸ÞÀÌÀú ¹øÈ£µéÀ» °è¼Ó »ç¿ëÇÒ °ÍÀÌ´Ù. USB´Â 8ºñÆ®ÀÇ ¸¶ÀÌ³Ê ¹øÈ£ Á¦ÇÑÀ» ³ÑÀ» ÇÊ¿ä°¡ ÀÖ´Ù.

  • ´Ü¼øÈ÷ µð¹ÙÀ̽º ¹øÈ£¸¦ Áõ°¡½ÃÅ°´Â °Í¸¸À¸·Î´Â ºÒÃæºÐÇÏ´Ù. ¸¹Àº ³ë·ÂÀ» ÇÊ¿ä·Î ÇÏ´Â °Í°ú´Â ´Þ¸®, ¼öõ°³ ÀÌ»óÀÇ µð¹ÙÀ̽º ³ëµå¸¦ °¡Áö´Â /dev ¸¦ °ü¸®ÇÏ´Â ¹®Á¦¸¦ ÇØ°áÇÏÁö´Â ¸øÇÑ´Ù.

  • °Å´ëÇÑ /devÀÇ ¹®Á¦¸¦ ¹«½ÃÇÏ´Â °ÍÀº µ¿ÀûÀÎ /dev¸¦ ¿øÇÏ´Â ¸¹Àº ¼öÀÇ ÇÕ¸®ÀûÀÎ ÁÖÀåÀ» öȸÇϰųª ¿À·¡°¡Áö ¸øÇÒ °ÍÀÌ´Ù.

  • Ç¥ÁØ ÀÀ´ä: "µð¹ÙÀ̽º °ü¸® µ¥¸óÀ» ÀÛ¼ºÇ϶ó" ÀÌ°ÍÀº ¿ì¸®°¡ À§ÀÇ Á¦¾ÈÀ¸·Î µ¹¾Æ°¡°Ô ÇÑ´Ù.


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¿¡ ´ëÇÑ ¹ö±×¸¦ ¾Ë°í ÀÖ´Ù¸é(¶Ç´Â ¾Ë°í ÀÖ´Ù°í »ý°¢ÇÑ´Ù¸é), ´ÙÀ½ÀÇ ´Ü°è´ë·Î ÇàÇ϶ó:

  1. ÃÖ½ÅÀÇ devfs ÆÐÄ¡¸¦ Àû¿ëÇß´ÂÁö È®ÀÎÇغ¸¶ó. ÃÖ½ÅÀÇ Ä¿³Î¹öÀü¿¡ ÃÖ½ÅÀÇ devfs ÆÐÄ¡°¡ Àû¿ëµÇÁö ¾Ê¾ÒÀ» ¼öµµ ÀÖ´Ù(Linus´Â ¸Å¿ì ¹Ù»Ú´Ù)

  2. ´ç½ÅÀÇ ¹ö±× ¸®Æ÷Æ®¿¡ ¿ÏÀüÇÑ Ä¿³Î ·Î±× (dmesg¸¦ »ç¿ëÇÏ¿©)¸¦ ÀúÀåÇÏ¿© Æ÷ÇÔÇ϶ó. ¸ðµç ºÎÆ® ¸Þ¼¼Áö¸¦ Àâ¾Æ³»±â À§ÇÑ ³»ºÎ¹öÆÛÀÇ Å©±â¸¦ Áõ°¡½ÃÅ°±â À§ÇØ -s¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù.

  3. Ä¿³Î ºÎÆ® Ä¿¸Çµå ¶óÀο¡ devfs=dall¸¦ ³Ö°í ºÎÆÃÇغ¸°í (ºÎÆ®·Î´õ¿¡¼­ ÀÌ°ÍÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ¹®¼­¸¦ Àеµ·Ï Ç϶ó), ±× °á°ú¸¦ ÆÄÀÏ·Î ÀúÀåÇ϶ó. ÀÌ°ÍÀº ¸Å¿ì ÀåȲ½º·¯¿î ÀÏÀÌ°í, ¸ÞÁ¦½Ã ¹öÆÛ¸¦ ³Ñ¾î¼³ ¼öµµ ÀÖÁö¸¸, ÇÒ¼ö¸¸ ÀÖ´Ù¸é ´õ ¸¹Àº °ÍÀ» Àâ¾Æ³»µµ·Ï ³ë·ÂÇØ´Þ¶ó.

  4. ´ç½ÅÀÇ devfsd ¼³Á¤ÆÄÀÏÀ» º¹»çÇØ º¸³»´Þ¶ó.

  5. ³ª ¿¡°Ô ¸ÕÀú ¹ö±× ¸®Æ÷Æ®¸¦ º¸³»¶ó. ´ç½ÅÀÌ ¸®´ª½º Ä¿³Î ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¹ö±×¸¦ ¸®Æ÷Æ® ÇÑ´Ù°í Çؼ­ ³»°¡ ¾Ë °ÍÀ̶ó°í ±â´ëÇÏÁö´Â ¸»¶ó. À§¿¡ ³ª¿­µÈ ¸ðµç Á¤º¸¸¦ Æ÷ÇÔÇÏ°í, ±×¿Ü °ü·ÃÀÌ ÀÖ´Ù°í »ý°¢ÇÏ´Â °ÍÀ» Ãß°¡½ÃÄѵµ ÁÁ´Ù. Á¦¸ñ¿¡ devfs¸¦ ³Ö¾î¼­, ³ªÀÇ ¸ÞÀÏ ÇÊÅÍ°¡ ±ä±ÞÇÑ »óȲÀÓÀ» ¾Ë¼ö ÀÖ°Ô Ç϶ó.

¿©±â, ´äÀå¹ÞÀ» ±âȸ¸¦ Çâ»ó½ÃÄÑÁÖ´Â Áú¹®ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù: http://www.tuxedo.org/~esr/faqs/smart-questions.html ¸¸¾à ¹ö±×º¸°í¸¦ ÇÏ°í ½Í´Ù¸é, http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ¸¦ ÀÐÀ» ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù.


8.5. ÀÌ»óÇÑ Ä¿³Î ¸Þ¼¼Áö

´ç½ÅÀÇ Ä¿³Î·Î±×¿¡¼­ devfs¿Í °ü·ÃµÈ ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡´Â ±× ¸Þ¼¼ÁöµéÀÇ Àǹ̸¦ ³ª¿­Çß´Ù (±×¸®°í °¡´ÉÇÏ´Ù¸é ±× ¸Þ¼¼Áö¿Í °ü·ÃÇؼ­ ÇØ¾ß ÇÒ °ÍµéÀÇ ¸ñ·ÏÀÌ´Ù)

  • devfs_register(fred):could not append to parent, err: -17

    ´ç½ÅÀº ±× ¿¡·¯Äڵ尡 ÀǹÌÇÏ´Â ¹Ù¸¦ È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖÁö¸¸, º¸Åë 17Àº EEXIST¸¦ ÀǹÌÇÑ´Ù. ÀÌ°ÍÀº µå¶óÀ̹ö°¡ µð·ºÅ丮¿¡ fred Ç׸ñÀ» »ý¼ºÇÏ·Á°í ÇßÁö¸¸, °°Àº À̸§ÀÇ Ç׸ñÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. ÀÌ°ÍÀº Á¾Á¾ Æ۹̼ÇÀ» º¹±¸Çϱâ À§ÇÑ ¼ö´ÜÀ¸·Î /dev¿¡ inodeµéÀ» Ç®¾î³õÀ¸·Á´Â ½ºÅ©¸³Æ®°¡ À߸øµÇ¾úÀ»¶§ ÀϾ´Ù. ÀÌ ¸Þ¼¼Áö´Â ±× µð¹ÙÀ̽º ³ëµå°¡ ¿©ÀüÈ÷ ±× µå¶óÀ̹ö¿¡ Á¢±ÙÇϵµ·Ï Çã¿ëÇϱ⠶§¹®¿¡ (¿Â Á¤¼ºÀ» ´ÙÇÏ¿©:-) devfs=onlyºÎÆ® ¿É¼ÇÀ» »ç¿ëÇÏ´õ¶óµµ) À§ÇèÇÏ´Ù. ÀÌ·¯ÇÑ ºÒÇÊ¿äÇÑ ¸Þ¼¼Áö¸¦ Á¦°ÅÇϱ⠿øÇÑ´Ù¸é, devfsd-v1.3.20À¸·Î ¾÷±×·¹À̵å ÇÏ°í, Æ۹̼ÇÀ» ÀúÀåÇϱâ À§ÇÏ¿© ÃßõµÈ RESTORE Áö½ÃÀÚ¸¦ »ç¿ëÇ϶ó.

  • devfs_mk_dir(bill): using old entry in dir: c1808724 ""

    ÀÌ°ÍÀº µå¶óÀ̹ö°¡ ºÎ¸ðµð·ºÅ丮°¡ °°Àº À̸§À» °¡Áö´Â billÀ̶ó ºÒ¸®´Â µð·ºÅ丮¸¦ »ý¼ºÇÏ·Á°í ÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°íÀ§ÀÇ ¸Þ¼¼Áö¿Í À¯»çÇÏ´Ù. ÀÌ °æ¿ì¿¡, µå¶óÀ̹ö°¡ ÀÛµ¿À» ¿Ã¹Ù¸£°Ô °è¼ÓÇϱâ À§Çؼ­, ¿¾ Ç׸ñÀÌ ±× µå¶óÀ̹ö¿¡ ÁÖ¾îÁö°í Àç»ç¿ëµÈ´Ù. 2.5 Ä¿³Î¿¡¼­´Â, ±× µå¶óÀ̹ö´Â NULL Ç׸ñÀÌ ÁÖ¾îÁö°í, µû¶ó¼­, ¾î¶² ȯ°æ¿¡¼­´Â ¿äûµÈ µð¹ÙÀ̽º ³ëµå¸¦ »ý¼ºÇÏÁö ¸øÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀÇ ÇØ°áÃ¥Àº À§¿Í °°´Ù


8.6. devfsdÀÇ ÄÄÆÄÀÏ ¹®Á¦

º¸Åë, devfsdÄÄÆÄÀÏÀº ´ÜÁö ¼Ò½º µð·ºÅ丮¿¡¼­ make¸¦ Ä£ ÈÄ, make install (·çÆ®·Î)À» Ä¡´Â °ÍÀ¸·Î µÈ´Ù. °¡²ûÀº, À߸øµÈ ¼³Á¤À¸·Î ÀÎÇØ ¹®Á¦°¡ ÀϾ ¼öµµ ÀÖ´Ù.

  • DEVFSD_NOTIFY_DELETE¿¡ °ü·ÃµÈ ¿¡·¯¸Þ¼¼Áö

    ÀÌ°ÍÀº /usr/include/linux³ª /usr/src/linux¿¡ ¿¹ÀüÀÇ Ä¿³Î Çì´õ¸¦ °¡Áö°í Àֱ⠶§¹®¿¡ ÀϾ´Ù. KERNEL_DIRº¯¼ö¸¦ (¸¸¾à /usr/src/linux¿¡ »õ Ä¿³Î¼Ò½º¸¦ ¼³Ä¡ÇÏÁö ¾Ê¾Ò´Ù¸é) make¿¡ Àü´ÞÇϰųª, /usr/include/linux¿¡ Ä¿³Î ¼Ò½º¿¡ ÀÖ´Â devfs_fs.h¸¦ º¹»çÇÏ¸é µÈ´Ù.


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 : scsihosts= ºÎÆ® ¿É¼Ç¿¡ ´ëÇØ ³íÇÏ´Â ÁÁÀº ¹®¼­ , Gilbert Douglas .

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 .




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0015 sec