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()ÀÇ Á¦Çѵé