8Àå. µð¹ÙÀ̽º µå¶óÀ̹ö (Device Drivers)

¿î¿µÃ¼Á¦ÀÇ ¸ñÀûÁß Çϳª´Â ½Ã½ºÅÛÀÇ Çϵå¿þ¾î ÀåÄ¡º°·Î ´Ù¸¥ Ư¡À» »ç¿ëÀڷκÎÅÍ °¨Ãß´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î °¡»ó ÆÄÀÏ ½Ã½ºÅÛ(Virtual File System)Àº ÆÄÀÏ ½Ã½ºÅÛÀÌ ¾î¶² ¹°¸®Àû ÀåÄ¡ ¿¡ µé¾úÀÖµç »ó°ü¾øÀÌ, ¸¶¿îÆ®µÈ ÆÄÀÏ ½Ã½ºÅÛµéÀ» ÀÏ°üµÈ ¸ð½ÀÀ¸·Î º¸¿©ÁØ´Ù. ÀÌ Àå¿¡¼­´Â ¸®´ª½º Ä¿³ÎÀÌ ½Ã½ºÅÛ¿¡ ÀÖ´Â ¹°¸®ÀûÀÎ ÀåÄ¡¸¦ ¾î¶»°Ô °ü¸®ÇÏ´ÂÁö »ìÆ캸±â·Î ÇÑ´Ù.

CPU°¡ ½Ã½ºÅÛ¿¡ ÀÖ´Â Áö´ÉÀ» °¡Áø À¯ÀÏÇÑ ÀåÄ¡´Â ¾Æ´Ï´Ù. CPU ¸»°íµµ ¸ðµç ¹°¸®Àû ÀåÄ¡µé Àº Áö´ÉÀÌ ÀÖ´Â ÀڽŸ¸ÀÇ Çϵå¿þ¾î ÄÁÆ®·Ñ·¯¸¦ °¡Áö°í ÀÖ´Ù. Å°º¸µå, ¸¶¿ì½º, Á÷·ÄÆ÷Æ®´Â SuperIO ĨÀÌ Á¦¾îÇÏ°í, IDE Çϵåµð½ºÅ©´Â IDE ÄÁÆ®·Ñ·¯°¡, SCSI µð½ºÅ©´Â SCSI ÄÁÆ®·Ñ·¯°¡ Á¦¾îÇÑ´Ù. ¸ðµç Çϵå¿þ¾î ÄÁÆ®·Ñ·¯´Â °¢ÀÚÀÇ °íÀ¯ÇÑ Á¦¾î/»óÅ ·¹Áö½ºÅÍ(Control and Status Registers, CSRs)¸¦ °¡Áö¸ç, ÀÌ°ÍÀº ÀåÄ¡µé¸¶´Ù ´Ù¸£´Ù. Adaptec 2940 SCSI ÄÁÆ®·Ñ·¯ÀÇ CSRs°ú NCR 810 SCSI ÄÁÆ®·Ñ·¯ÀÇ CSRs´Â ¿ÏÀüÈ÷ ´Ù¸¥´Ù. CSRs´Â ÀåÄ¡¸¦ ½ÃÀÛÇÏ°í ¸ØÃß°í, ÃʱâÈ­ ÇÏ¸ç ¹®Á¦°¡ ¹ß»ýÇßÀ» ¶§ À̸¦ Áø´ÜÇϴµ¥ ÀÌ¿ëµÈ´Ù. ¸ðµç ÀÀ¿ëÇÁ·Î±×·¥¿¡ Çϵå¿þ¾î¸¦ °ü¸® ÇÏ´Â Äڵ带 ³ÖÁö ¾ÊÀ¸¸ç, ¸®´ª½º Ä¿³Î¸¸ ±× Äڵ带 °¡Áö°í ÀÖ´Ù. Çϵå¿þ¾î ÄÁÆ®·Ñ·¯¸¦ ´Ù·ç °í °ü¸®ÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ µð¹ÙÀ̽º µå¶óÀ̹ö¶ó°í ÇÑ´Ù. ¸®´ª½º Ä¿³Î µð¹ÙÀ̽º µå¶óÀ̹ö´Â ±Ùº»ÀûÀ¸·Î Ư±ÇÃþ¿¡¼­ ½ÇÇàµÇ°í, ¸Þ¸ð¸®¿¡ »óÁÖÇϸç, Àú±Þ Çϵå¿þ¾î ó¸® ·çƾÀ» °¡Áø °øÀ¯ ¶óÀ̺귯¸®ÀÌ´Ù. ¸®´ª½º¿¡ ÀÖ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â ÀÚ½ÅÀÌ °ü¸®ÇÏ´Â ÀåÄ¡µéÀÇ Æ¯¼ºµéÀ» ó¸®ÇÑ´Ù.

À¯´Ð½ºÀÇ ±âº»ÀûÀΠƯ¡ ÁßÀÇ Çϳª´Â ÀåÄ¡¸¦ ´Ù·ç´Â °ÍÀ» Ãß»óÈ­ÇÑ´Ù´Â °ÍÀÌ´Ù. ¸ðµç ÇÏµå ¿þ¾î ÀåÄ¡µéÀº º¸Åë ÆÄÀÏó·³ º¸À̸ç, ÆÄÀÏÀ» ´Ù·ç´Â µ¥ ¾²À̴ ǥÁØ ½Ã½ºÅÛ ÄÝ°ú ¶È°°Àº ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¿­°í, ´Ý°í, Àаí, ¾µ ¼ö ÀÖ´Ù1. ½Ã½ºÅÛÀÇ ¸ðµç ÀåÄ¡´Â ÀåÄ¡ Ư¼ö ÆÄÀÏ (device special file)·Î Ç¥½Ã°¡ µÈ´Ù. ¿¹¸¦ µé¾î, ½Ã½ºÅÛ¿¡ Àִ ù¹ø° IDE µð½ºÅ©´Â /dev/hda·Î ³ªÅ¸³½´Ù. ºí·° (µð½ºÅ©) ÀåÄ¡(block device)³ª ¹®ÀÚ ÀåÄ¡(character device)¸¦ ³ªÅ¸ ³»´Â ÀåÄ¡ Ư¼ö ÆÄÀÏÀº mknod ¸í·ÉÀ¸·Î ¸¸µé¾îÁö¸ç, ¸ÞÀÌÀú¿Í ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£·Î ÀåÄ¡¸¦ ³ªÅ¸³½´Ù. ³×Æ®¿÷ ÀåÄ¡µéµµ ÀåÄ¡ Ư¼ö ÆÄÀϷΠǥ½Ã°¡ µÇÁö¸¸, À̵éÀº ¸®´ª½º°¡ ½Ã½ºÅÛ¿¡¼­ ³×Æ®¿÷ ÄÁÆ®·Ñ·¯¸¦ ã¾Æ¼­ ÃʱâÈ­ÇÒ ¶§ (¸®´ª½º¿¡ ÀÇÇØ) ¸¸µé¾îÁø´Ù2. ¶È°°Àº µð¹ÙÀ̽º µå¶ó À̹ö·Î Á¦¾îµÇ´Â ¸ðµç ÀåÄ¡´Â ¶È°°Àº ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£¸¦ °®´Â´Ù. ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£´Â ´Ù¸¥ ÀåÄ¡³ª ÄÁÆ®·Ñ·¯¸¦ ±¸ºÐÇϴµ¥ »ç¿ëÇÑ´Ù3. ¿¹¸¦ µé¾î ù¹ø° IDE µð½ºÅ©ÀÇ °¢ ÆÄƼ¼ÇµéÀº ´Ù¸¥ ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£¸¦ °®´Â´Ù. ±×·¡¼­ ù¹ø° IDE µð½ºÅ© µÎ¹ø° ÆÄƼ¼ÇÀº (/dev/hda2) ¸ÞÀÌÀú ¹øÈ£·Î 3, ¸¶ÀÌ³Ê ¹øÈ£·Î 2¸¦ °®´Â´Ù. ºí·° ÀåÄ¡¿¡ ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®ÇÏ´Â °æ¿ìó·³ ½Ã½ºÅÛ ÄÝ¿¡ ÀåÄ¡ Ư¼ö ÆÄÀÏÀ» Àü´ÞÇϸé, ¸®´ª½º´Â ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£¿Í ¿©·¯ ½Ã½º ÅÛ Å×À̺íÀ» ÀÌ¿ëÇÏ¿©(ÀÌ·± °Í ÁßÀÇ Çϳª·Î ¹®ÀÚ ÀåÄ¡ Å×À̺íÀÎ chrdevs°¡ ÀÖ´Ù), ÀåÄ¡ Ư ¼ö ÆÄÀÏÀ» ÀåÄ¡ÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö·Î ¿¬°áÇÑ´Ù.

¸®´ª½º´Â ¹®ÀÚ, ºí·°, ³×Æ®¿÷, ÀÌ ¼¼°¡Áö Á¾·ùÀÇ Çϵå¿þ¾î ÀåÄ¡¸¦ Áö¿øÇÑ´Ù. ¹®ÀÚ ÀåÄ¡´Â ¹ö ÆÛ¸¦ ÅëÇÏÁö ÇÏ°í ¹Ù·Î ÀÐ°í ¾µ ¼ö ÀÖ´Â ÀåÄ¡·Î, /dev/cua0°ú /dev/cua1 °°Àº Á÷·Ä Æ÷ Æ®°¡ ¿©±â¿¡ ¼ÓÇÑ´Ù. ºí·° ÀåÄ¡´Â ÀÏÁ¤ÇÑ ºí·° Å©±â(º¸Åë 512 ¶Ç´Â 1024 ¹ÙÀÌÆ®ÀÌ´Ù)ÀÇ ¹è¼ö ·Î¸¸ ÀÐ°í ¾µ ¼ö ÀÖ´Ù. ºí·° ÀåÄ¡´Â ¹öÆÛ Ä³½Ã(buffer cache)¸¦ ÅëÇؼ­ ÀÐ°í ¾²¸ç, ¾Æ¹« °÷ÀÌ ³ª Á¢±ÙÇÒ ¼ö ÀÖ´Ù. Áï ¾î¶² ºí·°ÀÌµç ±×°ÍÀÌ ÀåÄ¡ÀÇ ¾îµð¿¡ ÀÖµçÁö °£¿¡ ÀÐ°í ¾µ ¼ö ÀÖ´Ù ´Â °ÍÀÌ´Ù. ºí·° ÀåÄ¡´Â ÀåÄ¡ Ư¼ö ÆÄÀÏÀ» ÅëÇؼ­ Á¢±ÙÇÒ ¼öµµ ÀÖÁö¸¸, º¸ÅëÀº ÆÄÀÏ ½Ã½ºÅÛ À» ÅëÇؼ­ Á¢±ÙÇÑ´Ù. ºí·° ÀåÄ¡¸¸ÀÌ ¸¶¿îÆ®µÇ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» Áö¿øÇÒ ¼ö ÀÖ´Ù. ³×Æ®¿÷ ÀåÄ¡ ´Â BSD ¼ÒÄÏ ÀÎÅÍÆäÀ̽º·Î Á¢±ÙÇϸç, ÀÌ´Â 10Àå¿¡ ÀÖ´Â ³×Æ®¿öÅ· ¼­ºê½Ã½ºÅÛ ºÎºÐ¿¡¼­ ÀÚ ¼¼È÷ À̾߱âÇÑ´Ù.

¸®´ª½º Ä¿³Î¿¡´Â ¸¹Àº ¼­·Î ´Ù¸¥ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀÖÁö¸¸ (ÀÌ°ÍÀÌ ¸®´ª½ºÀÇ Èû ÁßÀÇ ÇÏ ³ªÀÌ´Ù), ±×µéÀº ¸ðµÎ ¾î¶² °øÅëÀûÀΠƯ¼ºÀ» °¡Áö°í ÀÖ´Ù :


8.1 Æú¸µ(Polling)°ú ÀÎÅÍ·´Æ®(Interrupt)

ÀåÄ¡¿¡ ¸í·ÉÀ» ÇÒ ¶§ (¿¹¸¦ µé¾î "Çìµå¸¦ ¿Å°Ü Ç÷ÎÇÇ µð½ºÅ©ÀÇ 42¹ø ¼½Å͸¦ Àоî¶ó"), µð¹Ù À̽º µå¶óÀ̹ö´Â ±× ¸í·ÉÀÌ ¾ðÁ¦ ³¡³µ´ÂÁö ¾Æ´Â ¹æ¹ýÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. µð¹ÙÀ̽º µå¶óÀ̹ö ´Â ÀåÄ¡¸¦ Æú¸µÇÒ ¼öµµ ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

ÀåÄ¡¸¦ Æú¸µÇÑ´Ù´Â °ÍÀº ÀϹÝÀûÀ¸·Î ¿äûÇÑ ÀÛ¾÷ÀÌ ³¡³µ´Â Áö¸¦ ¾Ë±â À§ÇØ ÀåÄ¡ÀÇ »óÅ°¡ º¯ÇÒ ¶§±îÁö ÀåÄ¡ÀÇ »óÅ ·¹Áö½ºÅ͸¦ °è¼ÓÇؼ­ ÀÚÁÖ Àд °ÍÀ» ¸»ÇÑ´Ù. µð¹ÙÀ̽º µå¶óÀ̹ö ´Â Ä¿³ÎÀÇ ÇÑ ºÎºÐÀ̱⠶§¹®¿¡, ¸¸¾à µå¶óÀ̹ö°¡ Æú¸µ¸¸ ÇÏ·Á°í ÇÑ´Ù¸é ÀåÄ¡°¡ ÀÛ¾÷À» ³¡¸¶ Ä¥ ¶§±îÁö Ä¿³ÎÀÇ ´Ù¸¥ ºÎºÐÀÌ ¼öÇàµÉ ¼ö ¾øÀ¸¹Ç·Î ²ûÂïÇÑ ÀÏÀÌ ¹ú¾îÁú °ÍÀÌ´Ù. ±×·¡¼­ Æú ¸µÀ» ÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â ½Ã½ºÅÛ Å¸À̸Ӹ¦ ÀÌ¿ëÇÏ¿© ¾î´ÀÁ¤µµ ½Ã°£ÀÌ Áö³ª¸é Ä¿³ÎÀÌ µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÀÖ´Â ÇÑ ·çƾÀ» ºÎ¸£µµ·Ï ÇÑ´Ù. ±×·¯¸é ÀÌ Å¸ÀÌ¸Ó ·çƾÀº ¸í·ÉÀÌ ¼öÇà µÇ¾ú´ÂÁö »óŸ¦ °Ë»çÇÑ´Ù6. ÀÌ´Â ¸®´ª½ºÀÇ Ç÷ÎÇÇ µå¶óÀ̹ö¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ŸÀÌ¸Ó ¸¦ ÀÌ¿ëÇÏ´Â Æú¸µÀº ÁÁÀº ¹æ¹ýÀÌÁö¸¸, À̺¸´Ù ´õ È¿°úÀûÀÎ ¹æ¹ýÀ¸·Î ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀÖ´Ù.

Á¦¾îÇÏ´Â Çϵå¿þ¾î ÀåÄ¡°¡ ¼­ºñ½º¸¦ ¹Þ¾Æ¾ß ÇÒ ¶§ Çϵå¿þ¾î ÀÎÅÍ·´Æ®¸¦ ¹ß»ýÇÏ´Â °ÍÀÌ ÀÎÅÍ ·´Æ®¸¦ ÀÌ¿ëÇÑ µð¹ÙÀ̽º µå¶óÀ̹öÀÌ´Ù. ¿¹¸¦ µé¾î, ÀÌ´õ³Ý µð¹ÙÀ̽º µå¶óÀ̹ö´Â ³×Æ®¿÷¿¡¼­ ÀÌ´õ³Ý ÆÐŶÀ» ¹ÞÀ» ¶§¸¶´Ù ÀÎÅÍ·´Æ®¸¦ ¹ß»ýÇÑ´Ù. ¸®´ª½º Ä¿³ÎÀº ÀÌ ÀÎÅÍ·´Æ®¸¦ Çϵå¿þ¾î ÀåÄ¡¿¡¼­ ¿Ã¹Ù¸¥ µð¹ÙÀ̽º µå¶óÀ̹ö·Î Àü´ÞÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ´Â µð¹ÙÀ̽º µå¶óÀ̹ö°¡ Ä¿³Î¿¡ ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ°Ú´Ù°í µî·ÏÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù. µå¶óÀ̹ö´Â ÀÎÅÍ·´Æ® ó¸® ·çƾ ÀÇ ÁÖ¼Ò¿Í ÀÚ½ÅÀÌ »ç¿ëÇÏ°í ½ÍÀº ÀÎÅÍ·´Æ® ¹øÈ£¸¦ Ä¿³Î¿¡ µî·ÏÇÑ´Ù. ÇöÀç µð¹ÙÀ̽º µå¶óÀÌ ¹ö°¡ ¾î¶² ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ°í ÀÖÀ¸¸ç, ±× ÀÎÅÍ·´Æ®°¡ ¾ó¸¶³ª ¸¹ÀÌ ¹ß»ýÇß´ÂÁö ¾Ë·Á¸é, /proc/interrupts ÆÄÀÏÀ» º¸¸é µÈ´Ù.

	0: 	727432 		timer
	1: 	20534 		keyboard
	2: 	0 		cascade
	3: 	79691 	+ 	serial
	4: 	28258 	+ 	serial
	5: 	1 		sound blaster
	11: 	20868 	+ 	aic7xxx
	13: 	1 		math error
	14: 	247 	+ 	ide0
	15: 	170 	+ 	ide1 

ÀÎÅÍ·´Æ® ÀÚ¿øÀ» ¿äûÇÏ´Â °ÍÀº µå¶óÀ̹ö°¡ ÃʱâÈ­ µÉ ¶§ ÇÑ´Ù7. ½Ã½ºÅÛÀÇ ¾î¶² ÀÎÅÍ·´Æ®µé Àº óÀ½ºÎÅÍ °íÁ¤µÇ¾î Àִµ¥, ÀÌ´Â IBM PC ±¸Á¶ÀÇ ¿À·£ À¯¹°ÀÌ´Ù. ±×·¡¼­ Ç÷ÎÇÇ ÄÁÆ®·Ñ·¯ ´Â ¾ðÁ¦³ª ÀÎÅÍ·´Æ® 6À» »ç¿ëÇÑ´Ù. ´Ù¸¥ ÀÎÅÍ·´Æ®µé, ¿¹¸¦ µé¾î PCI ÀåÄ¡¿¡¼­ ¹ß»ýÇÏ´Â ÀÎ ÅÍ·´Æ®µéÀº ºÎÆýÿ¡ µ¿ÀûÀ¸·Î ÇÒ´çµÈ´Ù. ÀÌ°æ¿ì µð¹ÙÀ̽º µå¶óÀ̹ö´Â ÀÎÅÍ·´Æ®ÀÇ ¼ÒÀ¯±ÇÀ» ¿äûÇϱâ ÀÌÀü¿¡ ÀÚ½ÅÀÌ Á¦¾îÇÒ ÀåÄ¡ÀÇ ÀÎÅÍ·´Æ® ¹øÈ£ (IRQ)¸¦ ¸ÕÀú ¾Ë¾Æ³»¾ß ÇÑ´Ù. ¸®´ª½º ´Â PCI¿¡¼­ »ç¿ëÇÏ´Â ÀÎÅÍ·´Æ®¿¡ ´ëÇØ, IRQ ¹øÈ£¸¦ Æ÷ÇÔÇÏ¿© ½Ã½ºÅÛ¿¡ ÀÖ´Â ÀåÄ¡ Á¤º¸¸¦ ¾Ë ¼ö Àִ ǥÁØ PCI BIOS ÄݹéÀ» Áö¿øÇÑ´Ù.

ÀÎÅÍ·´Æ®°¡ CPU¿¡ ¾î¶»°Ô Àü´ÞµÇ´ÂÁö´Â Çϵå¿þ¾î ±¸Á¶¿¡ µû¶ó ´Ù¸£Áö¸¸, ´ëºÎºÐ ±¸Á¶¿¡¼­ ´Â ½Ã½ºÅÛ¿¡¼­ ´Ù¸¥ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÏ´Â °ÍÀ» ¸·´Â Ưº°ÇÑ ¸ðµå¿¡¼­ ÀÎÅÍ·´Æ®¸¦ Àü´ÞÇÑ´Ù. ±×·¡¼­ µð¹ÙÀ̽º µå¶óÀ̹ö´Â ÀÎÅÍ·´Æ® ó¸® ·çƾ ¾È¿¡¼­´Â µÇµµ·Ï ÀûÀºÀÏÀ» ÇÏ¿©, ¸®´ª½º Ä¿³ÎÀÌ ÀÎÅÍ·´Æ® 󸮿¡¼­ ºüÁ®³ª¿Í ÀÎÅÍ·´Æ®µÇ±â Àü¿¡ ÇÏ´ø ÀÏ·Î µÇµ¹¾Æ°¥ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. ÀÎÅÍ·´Æ®¸¦ ¹Þ¾ÒÀ» ¶§ ¸¹Àº ÀÏÀ» ÇØ¾ß ÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â, ³ªÁß¿¡ ºÒ·Áµµ µÇ´Â ÀÛ¾÷À» Ä¿³ÎÀÇ ÇϹݺΠÇڵ鷯³ª ÀÛ¾÷Å¥¿¡ ³Ö¾î ó¸®ÇÒ ¼ö ÀÖ´Ù.


8.2 Á÷Á¢ ¸Þ¸ð¸® Á¢±Ù (Direct Memory Access, DMA)

µ¥ÀÌÅ͸¦ Çϵå¿þ¾î¿¡¼­ Çϵå¿þ¾î ÀåÄ¡·Î º¸³»°Å³ª ¹ÞÀ» ¶§ ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¿Ô´Ù°¬´ÙÇÏ´Â µ¥ÀÌÅÍÀÇ ¾çÀÌ ÀÛÀ» ¶§´Â Àß µ¿ÀÛÇÑ´Ù. 1 ¹Ð¸®ÃÊ (1/1000 ÃÊ)¿¡ ÇÑ ±ÛÀÚ¾¿ Àü¼ÛÇÏ´Â 9600 bps ¸ðµ©À» ¿¹·Î µé¾îº¸ÀÚ. ¸¸¾à ÀÎÅÍ·´Æ® 󸮽ð£ - Çϵå¿þ¾î ÀåÄ¡ ¿¡¼­ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÏ°í, µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÀÎÅÍ·´Æ® ó¸® ·çƾÀÌ ºÒ¸®±â±îÁö °É¸®´Â ½Ã°£ - ÀÌ ÀÛ´Ù¸é (2 ¹Ð¸®Ãʶó°í ÇÏÀÚ), µ¥ÀÌÅÍ Àü¼ÛÀ¸·Î Àüü ½Ã½ºÅÛ¿¡ ÁÖ´Â ¿µÇâÀº ¸Å¿ì ÀÛÀ» °ÍÀÌ´Ù. 9600 bps ¸ðµ©ÀÇ µ¥ÀÌÅÍ Àü¼ÛÀº °Ü¿ì CPU ÇÁ·Î¼¼¼­ ½Ã°£ÀÇ 0.002% ¸¸À» ÀÌ¿ë ÇÒ »ÓÀÌ´Ù. ±×·¯³ª Çϵåµð½ºÅ© ÄÁÆ®·Ñ·¯³ª ÀÌ´õ³Ý ÀåÄ¡°°ÀÌ °í¼Óµµ ÀåÄ¡µéÀÇ µ¥ÀÌÅÍ Àü¼Û·ü Àº ¸Å¿ì ³ô´Ù. SCSI ÀåÄ¡´Â 1ÃÊ¿¡ 40MB±îÁö µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù.

DMA´Â ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ °³¹ßµÇ¾ú´Ù. DMA ÄÁÆ®·Ñ·¯´Â CPU°¡ °³ÀÔÇÏÁö ¾Ê°í ÀåÄ¡¿Í ½Ã½ºÅÛÀÇ ¸Þ¸ð¸® »çÀÌ¿¡ µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. PCÀÇ ISA DMA ÄÁÆ®·Ñ·¯ ´Â ¿©´ü°³ÀÇ DMAÀÇ Ã¤³ÎÀ» °¡Áö°í ÀÖÀ¸¸ç, ÀÌ Áß 7°³¸¦ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °¢ DMA ä³ÎÀº 16 ºñÆ® ÁÖ¼Ò ·¹Áö½ºÅÍ¿Í 16 ºñÆ® Ä«¿îÅÍ ·¹Áö½ºÅÍ¿¡ ¿¬°áµÇ¾î ÀÖ´Ù. µ¥ÀÌÅÍ Àü¼ÛÀ» ÃʱâÈ­Çϱâ À§ÇØ µð¹ÙÀ̽º µå¶óÀ̹ö´Â DMA ä³ÎÀÇ ÁÖ¼Ò·¹Áö½ºÅÍ¿Í Ä«¿îÅÍ ·¹Áö½ºÅÍ, µ¥ÀÌÅÍ Àü¼Û ¹æÇâ(ÀÐÀ» °ÍÀÎÁö, ¾µ °ÍÀÎÁö)À» ÇÔ²² ¼³Á¤ÇÑ´Ù. ±×¸®°í ÀÚ½ÅÀÌ ¿øÇÒ ¶§ ÀåÄ¡¿¡°Ô DMA¸¦ ½ÃÀÛÇصµ ÁÁ´Ù°í ¸í·ÉÇÑ´Ù. µ¥ÀÌÅÍ Àü¼ÛÀÌ ¿Ï·áµÇ¸é ÀåÄ¡´Â PC¿¡ ÀÎ ÅÍ·´Æ®¸¦ ¹ß»ýÇÑ´Ù. Àü¼ÛÀÌ ÀÌ·ç¾îÁö´Â µ¿¾È¿¡ CPU´Â ´Ù¸¥ÀÏÀ» ¸¾´ë·Î ÇÒ ¼ö ÀÖ´Ù.

µð¹ÙÀ̽º µå¶óÀ̹ö´Â DMA¸¦ ¸Å¿ì Á¶½ÉÇؼ­ »ç¿ëÇØ¾ß ÇÑ´Ù. ¹«¾ùº¸´Ùµµ DMA ÄÁÆ®·Ñ·¯´Â °¡»ó ¸Þ¸ð¸®¿¡ ´ëÇؼ­ ¾Æ¹«°Íµµ ¸ð¸£°í ÀÖÀ¸¸ç, ±×Àú ½Ã½ºÅÛÀÇ ¹°¸®Àû ¸Þ¸ð¸®¿¡ Á¢±ÙÇÒ »Ó ÀÌ´Ù. µû¶ó¼­ DMA¿¡¼­ »ç¿ëÇÏ´Â ¸Þ¸ð¸®´Â ¹°¸®ÀûÀÎ ¸Þ¸ð¸®¿¡¼­ ¿¬¼ÓµÈ ºí·°À¸·Î µÇ¾î ÀÖ ¾î¾ß ÇÑ´Ù. ÀÌ´Â ÇÁ·Î¼¼½ºÀÇ °¡»ó ¸Þ¸ð¸® ÁÖ¼Ò°ø°£À¸·Î DMA¸¦ ¹Ù·Î »ç¿ëÇÒ ¼ö ¾ø´Ù´Â ¸» ÀÌ´Ù8. ¾î·µç »ç¿ëÀÚ´Â ÇÁ·Î¼¼½ºÀÇ ¹°¸®Àû ÆäÀÌÁö¸¦ ¸Þ¸ð¸®¿¡ ¶ô(lock)À» °É¾î9, DMA ÀÛ¾÷ Áß¿¡ ¸Þ¸ð¸®°¡ ½º¿Ò ÀåÄ¡·Î ½º¿Ò ¾Æ¿ôµÇ´Â °ÍÀ» ¹æÁöÇÏ°Ô ¸¸µé¼ö ÀÖ´Ù. µÑ°·Î, DMA ÄÁÆ® ·Ñ·¯´Â ¹°¸®Àû ¸Þ¸ð¸® Àüü¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Ù. DMA ä³ÎÀÇ ÁÖ¼Ò ·¹Áö½ºÅÍ´Â DMA ¾îµå·¹ ½ºÀÇ Ã³À½ 16 bit¸¦ ³ªÅ¸³»°í, ÆäÀÌÁö ·¹Áö½ºÅÍ¿¡ ´ÙÀ½ 8 ºñÆ®°¡ ÀÖ´Ù. Áï DMA °¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸®´Â ÇϺΠ16MB·Î Á¦ÇѵǾî ÀÖ´Ù´Â °ÍÀÌ´Ù.

DMA ä³ÎÀº ¿ÀÁ÷ 7°³ ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø°í, µð¹ÙÀ̽º µå¶óÀ̹öµéÀÌ °°ÀÌ °øÀ¯ÇÒ ¼ö ¾ø´Â µå¹® ÀÚ¿øÀÌ´Ù. ÀÎÅÍ·´Æ®¿Í ¸¶Âù°¡Áö·Î µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¾î¶² DMA ä³ÎÀ» »ç¿ëÇÒ Áö ¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù. ¿ª½Ã ÀÎÅÍ·´Æ®¿¡¼­Ã³·³ ¾î¶² ÀåÄ¡°¡ »ç¿ëÇÏ´Â DMA ä³ÎÀº °íÁ¤µÇ¾î ÀÖ´Ù. ¿¹¸¦ µé¾î, Ç÷ÎÇÇ ÀåÄ¡´Â Ç×»ó DMA ä³Î 2¹øÀ» »ç¿ëÇÑ´Ù. °¡²ûÀº ÀåÄ¡°¡ »ç¿ëÇÏ´Â DMA ä³ÎÀº Á¡ÆÛ·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¸¹Àº ÀÌ´õ³Ý ÀåÄ¡µéÀº ÀÌ·± ±â¼úÀ» »ç¿ëÇÑ´Ù. À̺¸´Ù ´õ À¶ Å뼺 ÀÖ´Â ÀåÄ¡µéÀº ¾î¶² DMA¸¦ ä³ÎÀ» »ç¿ëÇÒ °ÍÀÎÁö ¾Ë·ÁÁÙ ¼ö À־ (ÀÚ½ÅÀÇ CSRsÀ» ÅëÇÏ¿©), µð¹ÙÀ̽º µå¶óÀ̹ö´Â ´ÜÁö ºñ¾îÀÖ´Â DMA ä³ÎÀ» »ç¿ëÇÏ¸é µÈ´Ù.

¸®´ª½º´Â DMA ä³Î Çϳª´ç ÀÖ´Â dma_chan ÀڷᱸÁ¶ÀÇ º¤Å͸¦ ÀÌ¿ëÇÏ¿© DMA ä³ÎÀÇ »ç ¿ë¿©ºÎ¸¦ ÃßÀûÇÒ ¼ö ÀÖ´Ù. dma_chan ÀڷᱸÁ¶´Â µÎ°³ÀÇ Ç׸ñÀ¸·Î µÇ¾î Àִµ¥, Çϳª´Â DMA ä³ÎÀÇ ¼ÒÀ¯ÀÚ¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ°í, ´Ù¸¥ Çϳª´Â DMA ä³ÎÀÌ ÇÒ´çµÇ¾î ÀÖ´ÂÁö ºñ ¾î ÀÖ´ÂÁö¸¦ ³ªÅ¸³»´Â Ç÷¡±×ÀÌ´Ù. cat /proc/dma¶ó´Â ¸í·ÉÀ» ³»¸®¸é ³ª¿À´Â °ÍÀÌ ÀÌ dma_chan ÀڷᱸÁ¶ÀÇ º¤ÅÍÀÌ´Ù.


8.3 ¸Þ¸ð¸®

µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÑ´Ù. µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¸®´ª½º Ä¿³Î ÀÇ ÀϺκÐÀ̹ǷΠ°¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ½ÇÇàµÉ ¶§, Áï ÀÎÅÍ·´ Æ®¸¦ ¹Þ¾Ò´Ù´øÁö ÇϹݺΠÇڵ鷯(bottom half handler)³ª ÀÛ¾÷Å¥ Çڵ鷯(task queue handler)°¡ ½º ÄÉÁìµÇ¾úÀ» ¶§, current ÇÁ·Î¼¼½º´Â ¹Ù²ð ¼ö ÀÖ´Ù10. µð¹ÙÀ̽º µå¶óÀ̹ö´Â ƯÁ¤ÇÑ ÇÁ·Î¼¼½º °¡ ½ÇÇàµÇ°í ÀÖÀ» ¶§, ºñ·Ï ±× ÇÁ·Î¼¼½ºÀÇ ÇÑÄÒ¿¡¼­ µ¹¾Æ°¡°í ÀÖ´õ¶óµµ, ±× ƯÁ¤ ÇÁ·Î¼¼½º¿¡ ÀÇÁ¸ÇÒ ¼ö ¾ø´Ù. Ä¿³ÎÀÇ ³ª¸ÓÁö ºÎºÐó·³ µð¹ÙÀ̽º µå¶óÀ̹öµµ ÀڷᱸÁ¶¸¦ ¸¸µé¾î ÀÚ½ÅÀÌ Á¦¾îÇÏ´Â ÀåÄ¡¸¦ °ü¸®ÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ÀڷᱸÁ¶´Â Á¤ÀûÀ¸·Î ÇÒ´çÇÏ¿© µð¹ÙÀ̽º µå¶óÀ̹ö ÀÇ ÄÚµåÀÇ ÀϺηΠÆ÷Ç﵃ ¼öµµ ÀÖÁö¸¸, ÀÌ´Â Ä¿³ÎÀ» ÇÊ¿äÀÌ»óÀ¸·Î Å©°Ô ¸¸µé¾î ³¶ºñÀûÀÌ´Ù. ´ëºÎºÐÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö´Â Ä¿³ÎÀÇ ÆäÀÌÁöµÇÁö ¾Ê´Â ¸Þ¸ð¸®(non-paged)¸¦ ÇÒ´ç¹Þ¾Æ ÀڽŠÀÇ ÀڷḦ ³Ö´Â´Ù.

¸®´ª½º´Â Ä¿³Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ÇØÁ¦ÇÏ´Â ·çƾÀ» Á¦°øÇϴµ¥, µð¹ÙÀ̽º µå¶óÀ̹ö´Â À̸¦ »ç¿ëÇÑ´Ù. Ä¿³Î ¸Þ¸ð¸®´Â 2ÀÇ Á¦°ö½Â ´ÜÀ§·Î ÇÒ´çµÈ´Ù. ¿¹¸¦ µé¸é 128À̳ª 512 Å©±â·Î ÇÒ´ç µÇ´Âµ¥, µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ´õ ÀÛÀº Å©±â¸¦ ¿äûÇصµ ÀÌ·¸°Ô ÇÒ´çµÈ´Ù. µð¹ÙÀ̽º µå¶óÀ̹ö °¡ ¿äûÇÏ´Â Å©±â´Â ´ÙÀ½ ºí·°ÀÇ Å©±â¿¡ ¸ÂÃç ¿Ã¸²ÇÏ¿© ÇÒ´çµÈ´Ù. ÀÌ·¸°Ô Çϸé ÇÁ¸® ºí·°µé À» ÇÕÃÄ ´õ Å« ºí·°À» ¸¸µé ¼ö ÀÖÀ¸¹Ç·Î, Ä¿³Î ¸Þ¸ð¸® ÇØÁ¦°¡ ½¬¿öÁø´Ù11.

Ä¿³Î ¸Þ¸ð¸®¸¦ ¿äû¹Þ¾ÒÀ» ¶§ ¸®´ª½º´Â ¸î°¡Áö ¿©ºÐÀÇ ÀÏÀ» ÇؾߵȴÙ. ¸¸¾à ÇÁ¸® ¸Þ¸ð¸®°¡ ÀûÀ¸¸é, ¹°¸®Àû ÆäÀÌÁö¸¦ Æó±âÇϰųª ½º¿Ò ÀåÄ¡·Î ½º¿Ò ¾Æ¿ôÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ¸®´ª½º´Â ¸Þ¸ð¸®¸¦ ¿äûÇÑ ÇÁ·Î¼¼½º¸¦ Àá½Ã º¸·ù½ÃÅ°°í, ÃæºÐÇÑ ¹°¸®Àû ¸Þ¸ð¸®°¡ »ý±æ ¶§±îÁö ÀÛ¾÷À» ´ë±âÅ¥¿¡ ³Ö¾îµÐ´Ù. ¾î¶² µð¹ÙÀ̽º µå¶óÀ̹ö(¶Ç´Â ½ÇÁ¦ ¸®´ª½º Ä¿³Î ÄÚµå)´Â ÀÌ·± ÀÛ¾÷ÀÌ ¹ß »ýÇÏ´Â °ÍÀº ¿øÇÏÁö ¾ÊÀ¸¸ç, ÀÌ °æ¿ì °ð¹Ù·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ¾ø´Ù¸é Ä¿³Î ¸Þ¸ð¸® ÇÒ´ç ·çƾÀº ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù. ¸¸¾à µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÇÒ´ç¹ÞÀº ¸Þ¸ð¸®¸¦ DMA·Î ÀÔÃâ·ÂÀ» Çϱ⸦ ¿øÇÑ´Ù¸é, ±× ¸Þ¸ð¸®¸¦ ¿ä±¸ÇÒ ¶§ DMA°¡´ÉÀ̶ó°í ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÑ ½Ã½º ÅÛ¿¡ DMA°¡´É ¸Þ¸ð¸®¸¦ ±¸¼ºÇÏ´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÏ´Â °ÍÀº ¸®´ª½º Ä¿³ÎÀÌÁö µð¹ÙÀ̽º µå¶ó À̹ö°¡ ¾Æ´Ï´Ù.


8.4 Ä¿³Î°ú µð¹ÙÀ̽º µå¶óÀ̹ö¿ÍÀÇ ÀÎÅÍÆäÀ̽º

¸®´ª½º Ä¿³ÎÀº µð¹ÙÀ̽º µå¶óÀ̹öµé°ú Ç¥ÁØÀûÀÎ ¹æ¹ýÀ» ÅëÇÏ¿© »óÈ£ÀÛ¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¸ðµç Á¾·ùÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö - ¹®ÀÚ, ºí·°, ³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö - ´Â Ä¿³ÎÀÌ ÀÌµé ·Î¿¡°Ô ¼­ºñ½º¸¦ ¿äûÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Â °øÅëÀûÀÎ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ÀÌ °øÅëÀûÀÎ ÀÎÅÍÆäÀ̽º´Â Ä¿³ÎÀÌ ¼­·Î ¸¹ÀÌ ´Ù¸¥ ÀåÄ¡µé°ú µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ¿ÏÀüÈ÷ ¶È°°ÀÌ ´Ù·ê ¼ö ÀÖ°Ô ÇÑ´Ù. ¿¹¸¦ µé¾î SCSI¿Í IDE µð½ºÅ©´Â ¸Å¿ì ´Ù¸£°Ô µ¿ÀÛÇÏÁö¸¸, ¸®´ª½º Ä¿³ÎÀº ¶È°° Àº ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ À̵éÀ» »ç¿ëÇÑ´Ù.

¸®´ª½º´Â ¸Å¿ì µ¿ÀûÀÌ´Ù. ¸®´ª½º Ä¿³ÎÀº ºÎÆÃÇÒ ¶§¸¶´Ù ´Ù¸¥ ¹°¸®Àû ÀåÄ¡µéÀ» ¾Ë°Ô µÇ°í, ´Ù ¸¥ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ÇÊ¿ä·Î ÇÏ°Ô µÈ´Ù. ¸®´ª½º´Â Ä¿³ÎÀ» ºôµåÇÒ ¶§ ¼³Á¤ ½ºÅ©¸³Æ®¸¦ Åë ÇÏ¿© ¿©·¯ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ·¸°Ô µé¾î°£ µð¹ÙÀ̽º µå¶óÀ̹ö´Â ºÎÆÃÇÒ ¶§ ÃʱâÈ­°¡ µÇ´Âµ¥, À̵éÀÌ Á¦¾îÇÒ Çϵå¿þ¾î°¡ ¾øÀ» ¼öµµ ÀÖ´Ù. ¾î¶² µå¶óÀ̹öµéÀº Ä¿³Î ¸ðµâ·Î ¸¸µé¾îÁ®¼­ ÀÚ½ÅÀÌ ÇÊ¿ä·Î ÇÒ ¶§¿¡¸¸ ·ÎµåµÉ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ µð¹ÙÀ̽º µå¶óÀÌ ¹öÀÇ µ¿ÀûÀÎ ¼º°ÝÀ» ¿øÇÒÇÏ°Ô Çϱâ À§ÇØ, µð¹ÙÀ̽º µå¶óÀ̹ö´Â ÀÚ½ÅÀÌ ÃʱâÈ­µÉ ¶§ Ä¿³Î¿¡ ÀÚ±â ÀÚ½ÅÀ» µî·ÏÇÑ´Ù. ¸®´ª½º´Â µð¹ÙÀ̽º µå¶óÀ̹ö¿ÍÀÇ ÀÎÅÍÆäÀ̽ºÀÇ ÇÑ ºÎºÐÀ¸·Î¼­, µî·Ï µÈ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ Å×À̺íÀ» °ü¸®ÇÑ´Ù. À̵é Å×À̺íÀº ÇØ´çÇÏ´Â Á¾·ùÀÇ ÀåÄ¡¿Í ÀÎÅÍÆä À̽º¸¦ Á¦°øÇÏ´Â ÇÔ¼öµéÀÇ Æ÷ÀÎÅÍ¿Í Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù.


±×¸² 8.1 : ¹®ÀÚ ÀåÄ¡

8.4.1 ¹®ÀÚ ÀåÄ¡(Character Device)

¹®ÀÚ ÀåÄ¡´Â ¸®´ª½ºÀÇ ÀåÄ¡µé Áß¿¡¼­ °¡Àå ´Ü¼øÇÑ °ÍÀÌ´Ù. ÇÁ·Î±×·¥Àº ±× ÀåÄ¡°¡ ¸¶Ä¡ ÆÄÀÏ ÀÎ °Íó·³ Ç¥ÁØ ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÏ¿© ¿­°í, Àаí, ¾²°í, ´ÝÀ» ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ »ç½ÇÀº ±× Àå Ä¡°¡ PPP µ¥¸óÀÌ ¸®´ª½º ½Ã½ºÅÛÀ» ÀÎÅͳݿ¡ ¿¬°áÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¸ðµ©À̶ó ÇÒ Áö¶óµµ ¸¶Âù°¡Áö´Ù. ¹®ÀÚ ÀåÄ¡°¡ ÃʱâÈ­ µÉ ¶§ ÀÌ°ÍÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö´Â, device_struct ÀÚ·á ±¸Á¶ÀÇ º¤ÅÍÀÎ chrdevs¿¡ ÀÚ½ÅÀÇ ¿£Æ®¸®¸¦ Ãß°¡ÇÔÀ¸·Î½á ¸®´ª½º Ä¿³Î¿¡ ÀÚ½ÅÀ» µî·ÏÇÑ´Ù12 . ÀåÄ¡ÀÇ ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£´Â (¿¹¸¦ µé¾î tty ÀåÄ¡¿¡ ÇÒ´çµÇ´Â 4¹ø) ÀÌµé ¹è¿­ÀÇ À妽º ·Î¼­ »ç¿ëµÈ´Ù. ÀåÄ¡¿¡ ´ëÇÑ ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£´Â °íÁ¤µÇ¾î ÀÖ´Ù. chrdevs º¤ÅÍÀÇ °¢ ¿ø¼ÒÀÎ device_struct ÀڷᱸÁ¶´Â µÎ°¡Áö Ç׸ñÀ» °¡Áö°í ÀÖ´Ù. Çϳª´Â µð¹ÙÀ̽º µå¶óÀ̹öÀÇ µî ·ÏÀ̸§¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ°í, ´Ù¸¥ Çϳª´Â ÆÄÀÏ ¿¬»ê ºí·°¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù. ÀÌ ÆÄÀÏ ¿¬»ê ºí·°Àº, ÆÄÀÏÀ» ¿­°í, ¾²°í, Àаí, ´Ý´Â ÀÌ·± ÆÄÀÏ ¿¬»êÀ» ¼öÇàÇÏ´Â ¹®ÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö ¿¡ ÀÖ´Â ·çƾÀÇ ÁÖ¼ÒµéÀÌ´Ù13. /proc/devices¿¡ ÀÖ´Â ¹®ÀÚ ÀåÄ¡¿¡ ´ëÇÑ ³»¿ëµéÀº ¸ðµÎ chrdevs º¤ÅÍ¿¡¼­ °¡Á®¿Â °ÍÀÌ´Ù.

¹®ÀÚ ÀåÄ¡ (¿¹¸¦ µé¾î /dev/cua0)¸¦ ³ªÅ¸³»´Â ¹®ÀÚ Æ¯¼ö ÆÄÀÏÀ» ¿­¸é, Ä¿³ÎÀº ¿Ã¹Ù¸¥ ¹®ÀÚ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÆÄÀÏ Ã³¸® ·çƾÀÌ ºÒ¸± ¼ö ÀÖµµ·Ï ¼Â¾÷À» ÇØÁÖ¾î¾ß ÇÑ´Ù. º¸ÅëÀÇ ÆÄÀÏ À̳ª µð·ºÅ丮ó·³ °¢ ÀåÄ¡ Ư¼ö ÆÄÀÏÀº VFS inode·Î Ç¥ÇöµÈ´Ù. ¹®ÀÚ Æ¯¼ö ÆÄÀÏ¿¡ ´ëÇÑ VFS inode´Â ÀåÄ¡ÀÇ ¸ÞÀÌÀú ½Äº°ÀÚ¿Í ¸¶ÀÌ³Ê ½Äº°ÀÚ¸¦ °¡Áö°í ÀÖ´Ù (ÀÌ´Â ¸ðµç ÀåÄ¡ Ư¼ö ÆÄÀÏ¿¡¼­ µ¿ÀÏÇÏ´Ù). ÀÌ VFS inode´Â ÀåÄ¡ Ư¼ö ÆÄÀÏÀ» Á¶È¸ÇÑ °æ¿ì¿¡, ½ÇÁ¦ ±â¹ÝÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ (EXT2°°Àº) ÆÄÀÏ ½Ã½ºÅÛ¿¡ ½ÇÁ¦·Î ÀÖ´Â Á¤º¸¸¦ °¡Áö°í ¸¸µç´Ù.

°¢ VFS inode´Â ÇÑ ¼ÂÆ®ÀÇ ÆÄÀÏ ¿¬»êµé°ú ¿¬°áµÇ¾î Àִµ¥, ÀÌµé ¿¬»êÀº ±× inode°¡ °¡¸®Å° ´Â ÆÄÀÏ ½Ã½ºÅÛ °´Ã¼¿¡ µû¶ó ´Ù¸£´Ù14. ¹®ÀÚ Æ¯¼ö ÆÄÀÏÀ» ³ªÅ¸³»´Â VFS inode°¡ ¸¸µé¾îÁú ¶§ ¸¶´Ù, ÀÌ inodeÀÇ ÆÄÀÏ ¿¬»ê ÇÔ¼öµéÀº ±âº» ¹®ÀÚ ÀåÄ¡ ¿¬»êÀ¸·Î ¼³Á¤µÈ´Ù. ÀÌ´Â ´Ü ÇϳªÀÇ ÆÄÀÏ ¿¬»ê - ÆÄÀÏ ¿­±â ¿¬»ê¸¸ °¡Áö°í ÀÖ´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¹®ÀÚ Æ¯¼ö ÆÄÀÏÀ» ¿­¸é, ÀÌ Æ÷ °ýÀûÀÎ ¿­±â ÆÄÀÏ ¿¬»ê ÇÔ¼ö´Â, ÀåÄ¡ÀÇ ¸ÞÀÌÀú ½Äº°ÀÚ¸¦ chrdevs º¤ÅÍ¿¡ ´ëÇÑ À妽º·Î »ç ¿ëÇÏ¿©, ÀÌ ÀåÄ¡¿¡ ´ëÇÑ ÆÄÀÏ ¿¬»ê ºí·°À» °¡Á®¿Â´Ù. ¶ÇÇÑ ÀÌ ¹®ÀÚ Æ¯¼ö ÆÄÀÏÀ» ¼³¸íÇÏ´Â file ÀڷᱸÁ¶ÀÇ ÆÄÀÏ ¿¬»ê Æ÷ÀÎÅÍ°¡ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ °ÍÀ» °¡¸®Å°µµ·Ï ÀÌ ÀڷᱸÁ¶¸¦ ¼Â¾÷ÇÑ´Ù. ÀÌÈÄ, ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ºÎ¸£´Â ¸ðµç ÆÄÀÏ ¿¬»êÀº ¹®ÀÚ ÀåÄ¡ÀÇ ÆÄÀÏ ¿¬»êÀ¸·Î ¸Å ÇÎµÇ¾î ºÒ¸®°Ô µÈ´Ù.


8.4.2 ºí·° ÀåÄ¡(Block Device)

ºí·° ÀåÄ¡µéµµ ÆÄÀÏó·³ Á¢±ÙÇÏ´Â °ÍÀ» Áö¿øÇÑ´Ù. ¿­¸° ºí·° Ư¼ö ÆÄÀÏ¿¡ ¿Ã¹Ù¸¥ ÆÄÀÏ ¿¬»ê ¼¼Æ®¸¦ Á¦°øÇϴµ¥ »ç¿ëµÇ´Â ¹æ¹ýÀº ¹®ÀÚ ÀåÄ¡¿¡ »ç¿ëÇß´ø ¹æ¹ý°ú ¸Å¿ì Èí»çÇÏ´Ù. ¸®´ª½º´Â blkdevs º¤ÅÍ·Î µî·ÏµÈ ºí·° ÀåÄ¡µéÀ» °ü¸®ÇÑ´Ù. blkdevs´Â chrdevs º¤ÅÍ¿¡¼­¿Í ¸¶Âù°¡ Áö·Î ÀåÄ¡ÀÇ ¸ÞÀÌÀú ÀåÄ¡¹øÈ£·Î À妽ºµÇ¾î ÀÖ´Ù. ¶ÇÇÑ ±× ¿£Æ®¸® ¿ª½Ã device_struct ÀڷᱸÁ¶ÀÌ´Ù. ¹®ÀÚ ÀåÄ¡¿Í ´Ù¸¥ Á¡Àº, ºí·° ÀåÄ¡µéÀÇ Å¬·¡½º¶ó´Â°Ô ÀÖ´Ù´Â °ÍÀÌ´Ù. SCSI Àå Ä¡³ª IDE ÀåÄ¡ °°Àº °ÍÀÌ ±×·± Ŭ·¡½ºÀÌ´Ù. Ŭ·¡½º´Â ¸®´ª½º Ä¿³Î¿¡ ÀÚ½ÅÀ» µî·ÏÇÏ°í Ä¿³Î ¿¡ ÆÄÀÏ ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù. ¾î¶² Ŭ·¡½ºÀÇ ºí·° ÀåÄ¡µé¿¡ »ç¿ëÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â Ŭ·¡½º °íÀ¯ÀÇ Æ¯º°ÇÑ Å¬·¡½º ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ±×·¡¼­ ¿¹¸¦ µé¾î SCSI µð¹ÙÀ̽º µå ¶óÀ̹ö´Â, SCSI ¼­ºê½Ã½ºÅÛÀÌ Ä¿³Î¿¡ ÇØ´ç ÀåÄ¡¿¡ ´ëÇÑ ÆÄÀÏ ÇÔ¼ö¸¦ Á¦°øÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º¸¦ SCSI ¼­ºê½Ã½ºÅÛ¿¡ Á¦°øÇØ¾ß ÇÑ´Ù.

±×¸² 8.2 : ¹öÆÛ Ä³½Ã ºí·° ÀåÄ¡ ¿äû

¸ðµç ºí·° µð¹ÙÀ̽º µå¶óÀ̹ö´Â º¸ÅëÀÇ ÆÄÀÏ ¿¬»ê°ú ÇÔ²² ¹öÆÛ Ä³½Ã¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇØ¾ß ÇÑ´Ù15. °¢ ºí·° µð¹ÙÀ̽º µå¶óÀ̹ö´Â blk_dev º¤ÅÍ¿¡ ÀÖ´Â blk_dev_struct ÀÚ ·á±¸Á¶ÀÇ ³»¿ëÀ» ä¿î´Ù. ¿©±â¿¡¼­µµ, ÀÌ º¤ÅÍ¿¡ ´ëÇÑ À妽º´Â ÀåÄ¡ÀÇ ¸ÞÀÌÀú ¹øÈ£ÀÌ´Ù. blk_dev_struct ÀڷᱸÁ¶´Â ¿äû(request) ·çƾÀÇ ÁÖ¼Ò¿Í, ¹öÆÛ Ä³½Ã°¡ ÇÑ ºí·°ÀÇ µ¥ÀÌÅÍ ¸¦ Àаųª ¾²±â À§ÇØ µå¶óÀ̹ö¿¡°Ô ÇÏ´Â ¿äûÀ» ³ªÅ¸³»´Â request ÀڷᱸÁ¶ ¸®½ºÆ®¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

¹öÆÛ Ä³½Ã´Â µî·ÏµÈ ÀåÄ¡¿¡¼­ µ¥ÀÌÅ͸¦ Àаųª ¾²·Á°í ÇÒ ¶§, request ÀڷᱸÁ¶¸¦ blk_dev_struct ¿¡ Ãß°¡ÇÑ´Ù. ±×¸² 8.2´Â °¢request°¡ Çϳª ÀÌ»óÀÇ buffer_head ÀÚ ·á±¸Á¶¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ°í, °¢ request´Â ÇÑ ºí·°ÀÇ µ¥ÀÌÅ͸¦ Àаųª ¾²¶ó´Â ¿äûÀ̶ó´Â °ÍÀ» º¸¿©ÁØ´Ù. buffer_head ÀڷᱸÁ¶´Â ¹öÆÛ Ä³½Ã¿¡ ÀÇÇØ ¶ôÀÌ µÇ¸ç, ÀÌ ¹öÆÛ ·ÎÀÇ ºí·° ¿¬»êÀÌ ³¡³ª±æ ±â´Ù¸®´Â ÇÁ·Î¼¼½º°¡ ÀÖÀ» °ÍÀÌ´Ù. °¢ request ±¸Á¶Ã¼´Â Á¤Àû ¸® ½ºÆ®ÀÎ all_requests ¸®½ºÆ®¿¡¼­ ÇÒ´çµÈ´Ù. ¿äûÀÌ ÅÖºó ¿äû ¸®½ºÆ®¿¡ Ãß°¡µÇ¸é, ÀÌ ¿äû Å¥¸¦ ó¸®Çϱâ À§ÇØ µå¶óÀ̹öÀÇ ¿äû ÇÔ¼ö°¡ ºÒ¸®°Ô µÈ´Ù. ±×·¯¸é µå¶óÀ̹ö´Â ±×Àú ´Ü¼øÈ÷ ¸®½ºÆ®¿¡ ÀÖ´Â ¸ðµç request¸¦ ó¸®ÇÒ °ÍÀÌ´Ù.

ÀÏ´Ü µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¿äûÀ» ó¸®ÇÏ°í ³ª¸é, µå¶óÀ̹ö´Â request ±¸Á¶Ã¼¿¡¼­ °¢°¢ÀÇ buffer_head ±¸Á¶Ã¼¸¦ ¾ø¾Ö°í, ÀÌ°ÍÀÌ °»½ÅµÇ¾úÀ½À» Ç¥½ÃÇÏ°í À̵éÀÇ ¶ôÀ» ÇØÁ¦ÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô buffer_headÀÇ ¶ôÀ» ÇØÁ¦Çϸé, ±× ºí·° ¿¬»êÀÌ ³¡³ª±æ ±â´Ù¸®¸ç Àáµé¾îÀÖ´Â ÇÁ·Î ¼¼½º°¡ ÀÖÀ» ¶§ À̸¦ ±ú¿ì°Ô µÈ´Ù. ÀÌ·± ¿¹·Î ÆÄÀÏ À̸§À» ÇØ°áÇÏ´Â °úÁ¤¿¡¼­ EXT2 ÆÄÀÏ ½Ã½ºÅÛÀÌ ÆÄÀÏ ½Ã½ºÅÛÀ» ´ã°í ÀÖ´Â ºí·° ÀåÄ¡·ÎºÎÅÍ ´ÙÀ½ EXT2 µð·ºÅ丮 ¿£Æ®¸®¸¦ Æ÷ÇÔÇÏ °í ÀÖ´Â µ¥ÀÌÅÍ ºí·°À» Àоî¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÇÁ·Î¼¼½º´Â µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀÚ½ÅÀ» ±ú¿ï ¶§±îÁö Àáµé°Ô µÇ¸ç, ±ú¾î³µÀ» ¶§¿¡´Â buffer_head¿¡ µð·ºÅ丮 ¿£Æ®¸®°¡ µé¾îÀÖÀ» °ÍÀÌ´Ù. ÀÌÁ¦ request ÀڷᱸÁ¶´Â ºñ¾ú´Ù°í Ç¥½ÃµÇ°í, ÀÌ ÀڷᱸÁ¶´Â ÀÌÁ¦ ´Ù¸¥ ºí·° ¿äû À» À§ÇØ »ç¿ëµÉ ¼ö ÀÖ°Ô µÈ´Ù.


8.5 ÇÏµå µð½ºÅ©(Hard Disk)

µð½ºÅ© µå¶óÀ̺ê´Â ÀڷḦ ȸÀüÇÏ´Â µð½ºÅ© ¿ø¹Ý(platter)¿¡ ÀúÀåÇÔÀ¸·Î½á ÀڷḦ Á»´õ ¿µ¼Ó ÀûÀ¸·Î ÀúÀåÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀڷḦ ±â·ÏÇϱâ À§ÇØ ¾ÆÁÖ Á¶±×¸¸ Çìµå°¡ ¿ø¹ÝÀÇ Ç¥¸é¿¡ ÀÖ ´Â ¹Ì¼¼ÇÑ ¾Ë°»À̸¦ ÀÚ¼ºÀ» ¶ç°Ô ÇÑ´Ù. Çìµå´Â ƯÁ¤ ¹Ì¼¼ÇÑ ¾Ë°»ÀÌÀÇ ÀÚ¼ºÀ» °¨ÁöÇÏ¿© ÀÚ·á ¸¦ Àд´Ù.

µð½ºÅ© µå¶óÀ̺ê´Â Çϳª ÀÌ»óÀÇ ¿ø¹Ý(platter)À¸·Î ±¸¼ºµÇ¾î ÀÖ°í, °¢ ¿ø¹ÝÀº ¹Ì¼¼ÇÏ°Ô °£ À¯ ¸®³ª ¼¼¶ó¹Í º¹ÇÕ¹°Áú¿¡ ¹Ì¼¼ÇÑ »êȭöÀÌ ¾ãÀº ÃþÀ¸·Î ÄÚÆõǾî ÀÖ´Ù. ¿ø¹ÝµéÀº °¡¿îµ¥ Ãà (spindle)¿¡ ¿¬°áµÇ¾î ÀÏÁ¤ÇÑ ¼Óµµ·Î ȸÀüÀ» Çϴµ¥, ÀÌ È¸Àü ¼Óµµ´Â ¸ðµ¨¿¡ µû¶ó¼­ 3000RPM ºÎÅÍ 10000RPM±îÁö ´Ù¸£´Ù. À̸¦ ´ÜÁö 360RPMÀ¸·Î ȸÀüÇÏ´Â Ç÷ÎÇÇ µð½ºÅ©¿Í ºñ±³Çغ¸¸é ±× Â÷À̸¦ ´À³¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù. µð½ºÅ©ÀÇ Àбâ/¾²±â Çìµå´Â ÀڷḦ ÀÐ°í ¾²´Â ¿ªÇÒÀ» Çϸç, °¢ Ç¥¸é¸¶´Ù ÇϳªÀÇ Çìµå°¡ ÀÖ¾î °¢ ¿ø¹Ý¿¡ Çìµå°¡ ½ÖÀ¸·Î Á¸ÀçÇÑ´Ù. Àбâ/¾²±â Çìµå´Â ¹° ¸®ÀûÀ¸·Î ¿ø¹ÝÀÇ Ç¥¸éÀ» °Çµå¸®Áö ¾ÊÀ¸¸ç, ´ë½Å ¾ÆÁÖ ¾ãÀº(¹é¸¸ºÐÀÇ 10ÀÎÄ¡ Á¤µµ) °ø±â Äí ¼Ç À§¿¡ ¶°ÀÖ´Ù. Àбâ/¾²±â Çìµå´Â. Çìµå¸¦ ¿òÁ÷ÀÌ´Â ÀåÄ¡(actuator)¿¡ ÀÇÇØ ¿ø¹ÝÀÇ Ç¥¸éÀ» °¡ ·ÎÁú·¯ ¿òÁ÷ÀδÙ. ¸ðµç Àбâ/¾²±â Çìµå´Â ¼­·Î ºÙ¾î À־ ¿ø¹ÝÀÇ Ç¥¸é¿¡¼­ ¶È°°ÀÌ ¿òÁ÷ÀÌ °Ô µÈ´Ù.

¿ø¹ÝÀÇ °¢ Ç¥¸éÀº Æ®·¢(track)À̶ó°í ÇÏ´Â ¾ÆÁÖ °¡´Â µ¿½É¿øÀ¸·Î ³ª´©¾îÁø´Ù. Æ®·¢0Àº °¡Àå ¹Ù±ù¿¡ ÀÖ´Â Æ®·¢ÀÌ°í, °¡Àå ³ôÀº ¹øÈ£¸¦ °®´Â Æ®·¢Àº Á᫐ Ãà¿¡ °¡Àå °¡±î¿î Æ®·¢ÀÌ´Ù. ½Ç ¸°´õ(cylinder)´Â ¶È°°Àº ¹øÈ£¸¦ °¡Áö´Â Æ®·¢ÀÇ ÁýÇÕÀÌ´Ù. µû¶ó¼­ µð½ºÅ©¿¡ ÀÖ´Â ¸ðµç ¿ø¹ÝÀÇ ¾çÂÊ¿¡ ÀÖ´Â 5¹ø° Æ®·¢Àº ¸ðµÎ 5¹ø ½Ç¸°´õÀÌ´Ù. ½Ç¸°´õÀÇ °³¼ö´Â Æ®·¢ÀÇ °³¼ö¿Í °°À¸¹Ç·Î Á¾Á¾ µð½ºÅ©ÀÇ ±âÇÏÀû ±¸Á¶¸¦ ¼³¸íÇÒ ¶§ ½Ç¸°´õ¶ó´Â ¿ë¾î¸¦ ¾²´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. °¢ Æ®·¢Àº ¼½ÅÍ(sector)·Î ³ª´¶´Ù. ¼½ÅÍ´Â ÀڷḦ Çϵåµð½ºÅ©¿¡ ÀúÀåÇÏ°í ÀоîµéÀÏ ¼ö ÀÖ´Â ÃÖ¼Ò´ÜÀ§·Î µð½ºÅ©ÀÇ ºí·° Å©±â¿Í °°´Ù. ÀϹÝÀûÀÎ ¼½ÅÍÅ©±â´Â 512¹ÙÀÌÆ®ÀÌ°í, µð½ºÅ©¸¦ Á¦ ÀÛÇÑ ÈÄ Æ÷¸ËÀ» ÇÒ ¶§ ÀÌ Å©±â°¡ ÁöÁ¤µÈ´Ù.

µð½ºÅ©´Â º¸Åë ±âÇÏÀû ±¸Á¶ - ½Ç¸°´õ¿Í Çìµå, ±×¸®°í ¼½ÅÍÀÇ °³¼ö - ·Î À̾߱âÇÑ´Ù. ¿¹¸¦ µé ¾î ºÎÆÃÇÒ ¶§ ¸®´ª½º¿¡¼­ ÇÊÀÚÀÇ IDE µð½ºÅ© ÁßÀÇ Çϳª¸¦ ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù.

hdb: Conner Peripherals 540MB-CFS540A, 516MB w/64kB Cache, CHS=1050/16/63

ÀÌ°ÍÀº µð½ºÅ©°¡ 1050°³ÀÇ ½Ç¸°´õ (Æ®·¢), 16°³ÀÇ Çìµå (8°³ÀÇ ¿ø¹Ý), ±×¸®°í Æ®·¢¸¶´Ù 63 °³ÀÇ ¼½Å͸¦ °¡Áö°í ÀÖ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù. °¢ ¼½ÅÍ Áï ºí·°¸¶´Ù 512¹ÙÀÌÆ®ÀÇ Å©±â¸¦ °¡Áö¹Ç ·Î, µð½ºÅ©ÀÇ ÀúÀå¿ë·®Àº 529200 ¹ÙÀÌÆ®°¡ µÈ´Ù. ÀÌ´Â À§¿¡¼­ º¸¿©ÁÖ´Â µð½ºÅ©ÀÇ ¿ë·® 516MBÇÏ°í´Â Â÷ÀÌ°¡ Àִµ¥, ÀÌ´Â ¼½ÅÍ ÁßÀÇ ÀϺδ µð½ºÅ© ÆÄƼ¼Ç Á¤º¸¸¦ °£Á÷Çϴµ¥ »ç ¿ëµÇ±â ¶§¹®ÀÌ´Ù. ¾î¶² µð½ºÅ©µéÀº ÀÚµ¿À¸·Î ¹èµå ¼½ÅÍ(bad sector)¸¦ ã¾Æ³»¼­ µð½ºÅ©°¡ Á¦´ë ·Î ÀÛµ¿Çϵµ·Ï À妽º¸¦ ´Ù½Ã ºÙÀ̱⵵ ÇÑ´Ù.

ÇÏµå µð½ºÅ©´Â ÆÄƼ¼Ç(partition)À¸·Î ÂÉ°³Áú ¼ö ÀÖ´Ù. ÆÄƼ¼ÇÀº Ưº°ÇÑ ¸ñÀûÀ» À§ÇØ ÇÒ´çÇÑ ¼½Å͵éÀÇ °Å´ëÇÑ ±×·ìÀÌ´Ù. µð½ºÅ©ÀÇ ÆÄƼ¼ÇÀ» ³ª´©´Â °ÍÀº µð½ºÅ©¸¦ ¿©·¯ ¿î¿µÃ¼Á¦·Î ¾²°Å ³ª, ´Ù¸¥ ¸ñÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¸¹Àº ¸®´ª½º ½Ã½ºÅÛÀº ÇϳªÀÇ µð½ºÅ©¿¡ ¼¼°³ÀÇ ÆÄƼ¼ÇÀ» °¡Áø´Ù - Çϳª´Â DOS ÆÄÀÏ ½Ã½ºÅÛÀÌ°í, ´Ù¸¥ Çϳª´Â EXT2 ÆÄÀÏ ½Ã½ºÅÛÀ», ¸¶Áö¸· Àº ½º¿Ò ÆÄƼ¼ÇÀÌ´Ù. Çϵåµð½ºÅ©ÀÇ ÆÄƼ¼Ç Á¤º¸´Â ÆÄƼ¼Ç Å×ÀÌºí¿¡ ÀûÇôÀÖ´Ù. ÆÄƼ¼Ç Å×À̺í ÀÇ °¢ ¿£Æ®¸®´Â ÆÄƼ¼ÇÀÌ ¾îµð¼­ ½ÃÀÛÇÏ°í ¾îµð¼­ ³¡³ª´ÂÁö¸¦ Çìµå¿Í ¼½ÅÍ, ½Ç¸°´õ ¹øÈ£¸¦ °¡Áö°í ±â¼úÇÑ´Ù. fdisk·Î DOS·Î Æ÷¸ËµÈ µð½ºÅ©´Â 4°³ÀÇ 1Â÷ µð½ºÅ© ÆÄƼ¼Ç(primary disk partition)À» °¡Áú ¼ö ÀÖ´Ù. ÆÄƼ¼Ç Å×À̺íÀÇ 4°³ ¿£Æ®¸® ¸ðµÎ°¡ ¾²¿©¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. fdisk´Â ¼¼°¡Áö À¯ÇüÀÇ ÆÄƼ¼ÇÀ» Áö¿øÇϴµ¥, °¢°¢ 1Â÷(primary), È®Àå(extended), ³í¸® (logical) ÆÄƼ¼ÇÀÌ´Ù. È®Àå ÆÄƼ¼ÇÀº ÁøÂ¥ ÆÄƼ¼ÇÀÌ ¾Æ´Ï¶ó, ¿©·¯ °³ÀÇ ³í¸® ÆÄƼ¼ÇÀ» °¡Áö°í ÀÖ´Â °ÍÀÌ´Ù. È®ÀåÆÄƼ¼Ç°ú ³í¸® ÆÄƼ¼ÇÀº 1Â÷ ÆÄƼ¼ÇÀ» ³×°³¹Û¿¡ °¡Áú ¼ö ÀÖ´Â Á¦ÇÑÀ» ¿ì ȸÇϱâ À§ÇÑ ¹æ¹ýÀ¸·Î °³¹ßµÇ¾ú´Ù. ´ÙÀ½Àº µÎ°³ÀÇ 1Â÷ ÆÄƼ¼ÇÀ» °¡Áö°í ÀÖ´Â µð½ºÅ©¿¡ ´ëÇØ fdisk¸¦ ½ÇÇàÇßÀ» ¶§ÀÇ Ãâ·Â °á°úÀÌ´Ù :

Disk /dev/sda:  64 heads,  32 sectors, 510 cylinders
Units = cylinders of 2048 * 512 bytes 

	Device	Boot 	Begin 	Start 	End 	Blocks 	Id 	System 
	/dev/sda1		1 	1 	478 	489456 	83 	Linux native 
	/dev/sda2		479 	479 	510 	32768 	82 	Linux swap 

Expert command (m for help) : p 

Disk /dev/sda:  64 heads,  32 sectors, 510 cylinders 

	Nr 	AF 	Hd 	Sec 	Cyl 	Hd 	Sec 	Cyl 	Start 	Size 	ID 
	1 	00 	1 	1 	0 	63 	32 	477 	32 	978912 	83 
	2 	00 	0 	1 	478 	63 	32 	509 	978944 	65536 	82 
	3 	00 	0 	0 	0 	0 	0 	0 	0 	0 	00 
	4 	00 	0 	0 	0 	0 	0 	0 	0 	0 	00 

À̴ ù¹ø° ÆÄƼ¼ÇÀÌ ½Ç¸°´õ 0 (Áï Æ®·¢ 0), Çìµå 1, ¼½ÅÍ 1¿¡¼­ ½ÃÀÛÇϸç, 477¹ø ½Ç¸°´õ, 32 °³ÀÇ ¼½ÅÍ, 63°³ÀÇ Çìµå±îÁö ÀÖ´Ù´Â °ÍÀ» º¸¿©ÁØ´Ù. ¿©±â¿£ Æ®·¢´ç 32°³ÀÇ ¼½ÅÍ¿Í 64°³ÀÇ Àбâ/¾²±â Çìµå°¡ ÀÖÀ¸¹Ç·Î, ÀÌ ÆÄƼ¼ÇÀÇ Å©±â´Â À־ ½Ç¸°´õ °³¼ö¿Í °°´Ù16. fdisk´Â ±âº» ÀûÀ¸·Î ÆÄƼ¼ÇÀ» ½Ç¸°´õ¸¦ °æ°è·Î ¹è¿­ÇÑ´Ù. ÀÌ´Â ¸Ç ¹Ù±ù ½Ç¸°´õ 0¿¡¼­ ½ÃÀÛÇÏ¿© ÃàÀÌ ÀÖ ´Â ¹æÇâÀ¸·Î ¾ÈÂÊÀ¸·Î µé¾î°¡ 478°³ÀÇ ½Ç¸°´õ¸¦ °®´Â´Ù. µÎ¹ø° ÆÄƼ¼ÇÀº ½º¿Ò ÆÄƼ¼ÇÀ¸·Î ¼­ ´ÙÀ½ ½Ç¸°´õ (478)¿¡¼­ ½ÃÀÛÇÏ¿© µð½ºÅ©ÀÇ °¡Àå ¾ÈÂÊ ½Ç¸°´õ±îÁö »¸ÃÄÀÖ´Ù.

±×¸² 8.3 : µð½ºÅ©ÀÇ ¿¬°á ¸®½ºÆ®

¸®´ª½º´Â ÃʱâÈ­ÇÏ´Â µ¿¾È ½Ã½ºÅÛ¿¡ ÀÖ´Â Çϵåµð½ºÅ©ÀÇ ¹èÄ¡µµ¸¦ ±×·Á À̸¦ ¸ÅÇÎÇÑ´Ù. ¸ÕÀú ½Ã½ºÅÛ¿¡ Çϵåµð½ºÅ©°¡ ¸î °³°¡ ÀÖ°í ¾î¶² Á¾·ùÀÎÁö ¾Ë¾Æ³½´Ù. ³ª¾Æ°¡ °³º° µð½ºÅ©ÀÇ ÆÄƼ ¼ÇÀÌ ¾î¶»°Ô ³ª´©¾îÁ³´ÂÁöµµ ã¾Æ³½´Ù. À̵éÀº gendisk ÀÚ·á ±¸Á¶·Î Ç¥½ÃµÇ¸ç, À̵éÀÇ ¸® ½ºÆ®´Â gendisk_head ¸®½ºÆ® Æ÷ÀÎÅÍ°¡ °¡¸®Å°°í ÀÖ´Ù. IDE°°Àº °³º° µð½ºÅ© ¼­ºê½Ã½ºÅÛ Àº ÃʱâÈ­µÉ ¶§ ÀÚ½ÅÀÌ Ã£Àº µð½ºÅ©¸¦ gendisk ÀڷᱸÁ¶·Î ¸¸µé¾î³½´Ù. µð½ºÅ© ¼­ºê½Ã½ºÅÛ Àº À̸¦ ÆÄÀÏ¿¬»êÀ» µî·ÏÇÏ°í ¿£Æ®¸®¸¦ blk_dev ÀڷᱸÁ¶¿¡ ³ÖÀ» ¶§¿Í µ¿½Ã¿¡ ÇÑ´Ù. °¢ gendisk ÀڷᱸÁ¶´Â °íÀ¯ÇÑ ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£¸¦ °¡Áö¸ç, ÀÌ´Â ºí·° Ư¼ö ÀåÄ¡ÀÇ ¸ÞÀÌÀú ¹ø È£¿Í ÀÏÄ¡ÇÑ´Ù. ¿¹¸¦ µé¾î, SCSI µð½ºÅ© ¼­ºê½Ã½ºÅÛÀº ¸ðµç SCSI µð½ºÅ© ÀåÄ¡¿¡ Àû¿ëµÇ´Â ¸Þ ÀÌÀú¹øÈ£ 8À» °¡Áö´Â ÇϳªÀÇ gendisk ¿£Æ®¸® ("sd")¸¦ ¸¸µç´Ù. ±×¸² 8.3Àº µÎ°³ÀÇ gendisk ¿£Æ®¸®¸¦ º¸¿©ÁØ´Ù. ¾ÕÀÇ °ÍÀº SCSI µð½ºÅ© ¼­ºê½Ã½ºÅÛÀÇ °ÍÀÌ°í, ´ÙÀ½ °ÍÀº IDE µð½ºÅ© ÄÁÆ®·Ñ·¯ °ÍÀÌ´Ù. ÀÌ°ÍÀº ù¹ø° IDE ÄÁÆ®·Ñ·¯ÀÎ ide0ÀÌ´Ù.

µð½ºÅ© ¼­ºê½Ã½ºÅÛÀÌ ÃʱâÈ­ÇÒ ¶§ ¸¸µå´Â gendisk ¿£Æ®¸®´Â, ´ÜÁö ¸®´ª½º°¡ ÆÄƼ¼ÇÀ» °Ë»ç ÇÒ ¶§¿¡¸¸ ¾²ÀδÙ. ´ë½Å, °¢ µð½ºÅ© ¼­ºê½Ã½ºÅÛÀº ÀåÄ¡ÀÇ ¸ÞÀÌÀú¿Í ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£¸¦ ¹°¸® ÀûÀÎ µð½ºÅ©¿¡ ÀÖ´Â ÆÄƼ¼Ç°ú ¸ÅÇνÃų ¼ö ÀÖµµ·Ï ÀڽŸ¸ÀÇ ÀڷᱸÁ¶¸¦ ±¸ÃàÇÑ´Ù. ºí·° Àå Ä¡°¡ ¹öÆÛ Ä³½Ã³ª ÆÄÀÏ ¿¬»êÀ» ÅëÇØ ÀÐÇôÁö°Å³ª ¾²ÀÏ ¶§, Ä¿³ÎÀº ÀÌ ¿¬»êÀ» ºí·° ÀåÄ¡ Ư¼ö ÆÄÀÏ(¿¹¸¦ µé¾î /dev/sda2)¿¡¼­ ¹ß°ßÇÑ ¸ÞÀÌÀú ÀåÄ¡¹øÈ£¸¦ ÀÌ¿ëÇÏ¿© ¿Ã¹Ù¸¥ ÀåÄ¡·Î º¸³» °Ô µÈ´Ù. ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£¸¦ ½ÇÁ¦ ¹°¸®Àû ÀåÄ¡¿¡ ¿¬°áÇÏ´Â °ÍÀº °³º° µð¹ÙÀ̽º µå¶óÀ̹ö³ª ¼­ºê½Ã½ºÅÛÀÇ ¿ªÇÒÀÌ´Ù.


8.5.1 IDE µð½ºÅ©

Áö±Ý ¸®´ª½º ½Ã½ºÅÛ¿¡¼­ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â µð½ºÅ©´Â IDE(Integrated Disk Electronics) µð½ºÅ©ÀÌ´Ù. IDE´Â SCSI°°Àº I/O ¹ö½º°¡ ¾Æ´Ï¶ó µð½ºÅ© ÀÎÅÍÆäÀ̽ºÀÌ´Ù17. °¢ IDE ÄÁÆ®·Ñ·¯ ´Â µÎ°³±îÁö µð½ºÅ©¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù. Çϳª´Â ÁÖ(master) µð½ºÅ©ÀÌ°í ´Ù¸¥ Çϳª´Â Á¾¼Ó (slave) µð½ºÅ©ÀÌ´Ù. ÁÖÀÌ³Ä ¾Æ´Ï¸é Á¾¼ÓÀ̳Ĵ º¸Åë µð½ºÅ©¿¡ ÀÖ´Â Á¡ÆÛ·Î ¼³Á¤ÇÑ´Ù. ½Ã½ºÅÛ ¿¡ Àִ ù¹ø° IDE ÄÁÆ®·Ñ·¯´Â 1Â÷(primary) IDE ÄÁÆ®·Ñ·¯¶ó°í ÇÏ°í ´ÙÀ½ °ÍÀº 2Â÷ (secondary) ÄÁÆ®·Ñ·¯¶ó°í ÇÑ´Ù. IDE´Â 1ÃÊ¿¡ 3.3 MbyteÀÇ µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖÀ¸¸ç, IDE µð½ºÅ©ÀÇ ÃÖ´ë Å©±â´Â 538 MBÀÌ´Ù. È®Àå IDE (Extended IDE, EIDE)´Â µð½ºÅ©ÀÇ Å©±â¸¦ ÃÖ´ë 8.6 GB, Àü¼Û¼Óµµ¸¦ ÃÊ´ç 16.6 MB±îÁö ¿Ã¸° °ÍÀÌ´Ù. IDE¿Í EIDE µð½ºÅ©´Â SCSI µð½ºÅ©º¸´Ù ½Î¼­ ±Ù·¡ÀÇ ´ëºÎºÐÀÇ PC´Â º¸µå»ó¿¡ Çϳª ÀÌ»óÀÇ IDE ÄÁÆ®·Ñ·¯¸¦ °¡Áö°í ÀÖ´Ù.

¸®´ª½º´Â IDE µð½ºÅ©ÀÇ À̸§À» µð½ºÅ© ÄÁÆ®·Ñ·¯¸¦ ¹ß°ßÇÑ ¼ø¼­¿¡ µû¶ó ºÙÀδÙ. 1Â÷ ÄÁÆ®·Ñ ·¯ÀÇ ÁÖ µð½ºÅ©´Â /dev/hda, Á¾¼Ó µð½ºÅ©´Â /dev/hdbÀÌ´Ù. /dev/hdc´Â 2Â÷ IDE ÄÁÆ® ·Ñ·¯¿¡ ÀÖ´Â ÁÖ µð½ºÅ©ÀÌ´Ù. IDE ¼­ºê½Ã½ºÅÛÀº ¸®´ª½º Ä¿³Î¿¡ IDE ÄÁÆ®·Ñ·¯¸¦ µî·ÏÇÏÁö¸¸ µð½ºÅ©¸¦ µî·ÏÇÏ´Â °ÍÀº ¾Ê´Â´Ù. 1Â÷ IDE ÄÁÆ®·Ñ·¯¿¡ ´ëÇÑ ¸ÞÀÌÀú ½Äº°ÀÚ(¶Ç´Â ÀåÄ¡ ¹øÈ£) ´Â 3ÀÌ°í, 2Â÷ IDE ÄÁÆ®·Ñ·¯´Â 22ÀÌ´Ù. ±×·¡¼­ ½Ã½ºÅÛÀÌ µÎ°³ÀÇ IDE ÄÁÆ®·Ñ·¯¸¦ °¡Áö°í ÀÖ ´Ù¸é, blk_dev¿Í blkdevs º¤ÅÍÀÇ 3¹ø°ú 22¹ø À妽º¿¡ IDE ¼­ºê½Ã½ºÅÛÀÇ ¿£Æ®¸®°¡ ÀÖÀ» °ÍÀÌ´Ù. IDE µð½ºÅ©ÀÇ ºí·° Ư¼ö ÆÄÀÏÀº ÀÌ·± ¹øÈ£ ºÙÀÌ´Â ¹æ¹ýÀ» ¹Ý¿µÇÏ¿©, 1Â÷ IDE ÄÁÆ® ·Ñ·¯¿¡ ¿¬°áµÇ¾î ÀÖ´Â /dev/hda¿Í /dev/hdb µÎ °³´Â ¸ÞÀÌÀú ½Äº°ÀÚ·Î 3À» °¡Áø´Ù. Ä¿³Î Àº ÀÌµé ºí·° Ư¼ö ÆÄÀÏÀ» °ü¸®ÇÏ´Â IDE ¼­ºê½Ã½ºÅÛ¿¡ ´ëÇÑ ÆÄÀÏ ¿¬»êÀ̳ª ¹öÆÛ Ä³½Ã ¿¬»ê À», ¸ÞÀÌÀú ½Äº°ÀÚ¸¦ À妽º·Î »ç¿ëÇÏ¿© ¾Ë¾Æ³½ IDE ¼­ºê½Ã½ºÅÛÀ¸·Î Àü´ÞÇÑ´Ù. ¾î¶² ¿äûÀÌ µé¾î¿ÔÀ» ¶§ ¾î¶² IDE µð½ºÅ©¿¡°Ô ¿äûÀÌ µé¾î¿Ô´ÂÁö ¾Ë¾Æ³»´Â °ÍÀº IDE ¼­ºê½Ã½ºÅÛÀÇ ¸ò ÀÌ´Ù. À̸¦ À§ÇØ IDE ¼­ºê½Ã½ºÅÛÀº ÀåÄ¡ Ư¼ö ½Äº°ÀÚ¿¡ ÀÖ´Â ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£¸¦ »ç¿ëÇÏ´Â µ¥, ÀÌ°ÍÀº ¿Ã¹Ù¸¥ µð½ºÅ©ÀÇ ÇØ´çÇÏ´Â ÆÄƼ¼ÇÀ¸·Î ¿äûÀ» º¸³¾ ¼ö ÀÖµµ·Ï ÇÏ´Â Á¤º¸¸¦ °¡Áö °í ÀÖ´Ù. 1Â÷ IDE ÄÁÆ®·Ñ·¯¿¡ ÀÖ´Â Á¾¼Ó IDE µå¶óÀ̺êÀÎ /dev/hdbÀÇ ÀåÄ¡ ½Äº°ÀÚ´Â (3,64)ÀÌ°í, ÀÌ µð½ºÅ©ÀÇ Ã¹¹ø° ÆÄƼ¼Ç(/dev/hdb1)¿¡ ´ëÇÑ ÀåÄ¡ ½Äº°ÀÚ´Â (3,65)ÀÌ´Ù.


8.5.2 IDE ¼­ºê½Ã½ºÅÛÀÇ ÃʱâÈ­

IDE µð½ºÅ©´Â IBM PCÀÇ ¿ª»çÀÇ ¸¹Àº ºÎºÐÀ» ÇÔ²² ÇØ¿Ô´Ù. ÀÌ ½Ã°£À» ÅëÇØ À̵é ÀåÄ¡·ÎÀÇ ÀÎÅÍÆäÀ̽ºµµ º¯ÇØ ¿ÔÀ¸¸ç, ÀÌ´Â IDE ¼­ºê½Ã½ºÅÛÀÇ ÃʱâÈ­¸¦ óÀ½ »ý°¢Çß´ø °Íº¸´Ù ´õ º¹Àâ ÇÏ°Ô ¸¸µç´Ù.

¸®´ª½º°¡ Áö¿øÇÒ ¼ö ÀÖ´Â ÃÖ´ë IDE ÄÁÆ®·Ñ·¯ÀÇ °¹¼ö´Â 4°³ÀÌ´Ù. °¢ ÄÁÆ®·Ñ·¯´Â ide_hwifs º¤ÅÍ¿¡ ÀÖ´Â ide_hwif_t ÀڷᱸÁ¶·Î Ç¥ÇöÇÑ´Ù. °¢ ide_hwif_t ÀڷᱸÁ¶´Â µÎ°³ÀÇ ide_drive_t ÀÚ·á ±¸Á¶¸¦ °¡Áö°í ÀÖÀ¸¸ç, ÀÌ Áß Çϳª´Â ÁÖ IDE µå¶óÀ̺ê, ´Ù¸¥ ÇÏ ³ª´Â Á¾¼Ó IDE µå¶óÀ̺긦 À§ÇÑ °ÍÀÌ´Ù. IDE ¼­ºê½Ã½ºÅÛ¸¦ ÃʱâÈ­ÇÒ ¶§ ¸®´ª½º´Â ¸ÕÀú ½Ã½º ÅÛÀÇ CMOS ¸Þ¸ð¸®¿¡ µð½ºÅ© Á¤º¸°¡ ÀÖ´ÂÁö »ìÆ캻´Ù. CMOS ¸Þ¸ð¸®´Â ¹åµ¥¸®¿¡¼­ Àü¿øÀ» °ø±Þ¹Þ±â ¶§¹®¿¡ PCÀÇ Àü¿øÀ» ²ô´õ¶óµµ ³»¿ë¹°À» ÀÒ¾î¹ö¸®Áö ¾Ê´Â ¸Þ¸ð¸®´Ù. ÀÌ CMOS ¸Þ ¸ð¸®´Â, PCÀÇ Àü¿øÀÌ ÄÑÁ® ÀÖ´ÂÁö ²¨Á® ÀÖ´ÂÁö¿¡ ¹«°üÇÏ°Ô µ¹¾Æ°¡´Â ½Ç½Ã°£ ½Ã°è(real time clock, RTC) ÀåÄ¡¿¡ µé¾îÀÖ´Â °ÍÀÌ´Ù. CMOS ¸Þ¸ð¸®ÀÇ À§Ä¡´Â ½Ã½ºÅÛÀÇ BIOS¿¡¼­ ¼³Á¤Çϸç, ÀÌ´Â ¾î¶² IDE ÄÁÆ®·Ñ·¯¿Í µå¶óÀ̺갡 ÀÖ´ÂÁö ¸®´ª½º¿¡°Ô ¾Ë·ÁÁØ´Ù. ¸®´ª½º´Â ¹ß°ßÇÑ µð½º Å©ÀÇ ±âÇÏÀû Á¤º¸¸¦ BIOS·ÎºÎÅÍ ¾òÀ¸¸ç, ÀÌ Á¤º¸¸¦ ÀÌ µå¶óÀ̺꿡 ´ëÇÑ ide_hwif_t ÀÚ·á ±¸Á¶¸¦ ¼³Á¤Çϴµ¥ »ç¿ëÇÑ´Ù. ÃÖ±Ù¿¡ ³ª¿Â PCµéÀº PCI EIDE ÄÁÆ®·Ñ·¯¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â Intel 82430 VX Ĩ¼Â°°Àº PCI Ĩ¼ÂÀ» »ç¿ëÇÑ´Ù. ÀÌ °æ¿ì IDE ¼­ºê½Ã½ºÅÛÀº PCI BIOS ÄݹéÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ¿¡ ÀÖ´Â PCI (E)IDE ÄÁÆ®·Ñ·¯¸¦ ã´Â´Ù. ±×¸®°í ÇöÀç ÀÖ´Â À̵é Ĩ¼Â¿¡ PCI °íÀ¯ÀÇ ÁúÀÇ ·çƾÀ» È£ÃâÇÑ´Ù.

IDE ÀÎÅÍÆäÀ̽º, Áï ÄÁÆ®·Ñ·¯°¡ ¹ß°ßµÇ¸é, ÄÁÆ®·Ñ·¯¿Í ÀÌ¿¡ ¿¬°áµÈ µð½ºÅ©¸¦ ¹Ý¿µÇÏ¿© ide_hwif_t°¡ ¼³Á¤µÈ´Ù. IDE µå¶óÀ̹ö°¡ I/O ¸Þ¸ð¸® °ø°£¿¡ ÀÖ´Â IDE ¸í·É ·¹Áö½ºÅÍ¿¡ ¸í ·ÉÀ» ¾¸À¸·Î½á µ¿ÀÛÀÌ ÀÌ·ç¾îÁø´Ù. 1Â÷IDE ÄÁÆ®·Ñ·¯ÀÇ ¸í·É ·¹Áö½ºÅÍ¿Í Á¦¾î ·¹Áö½ºÅÍÀÇ ±âº» I/O ÁÖ¼Ò´Â 0x1F0 - 0x1F7ÀÌ´Ù. À̵é ÁÖ¼Ò´Â IBM PC ÃÊâ±â¿¡¼­ºÎÅÍ °üÇàÀ¸·Î ¼³Á¤µÈ °ÍÀÌ´Ù. IDE µå¶óÀ̹ö´Â °¢ ÄÁÆ®·Ñ·¯¸¦ ¸®´ª½º ºí·° ¹öÆÛ Ä³½Ã¿Í VFS¿¡ µî·ÏÇϴµ¥, ÀÌ´Â blk_dev¿Í blkdevs º¤ÅÍ¿¡ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù. IDE µå¶óÀ̹ö´Â ¶ÇÇÑ ÇØ´çÇÏ´Â ÀÎÅÍ·´Æ®¿¡ ´ëÇÑ Á¦¾î±ÇÀ» ¿äûÇÑ´Ù. À̵é ÀÎÅÍ·´Æ® ¿ª½Ã °üÇàó·³ 1Â÷ IDE ÄÁÆ®·Ñ·¯¿¡ 14, 2Â÷ IDE ÄÁÆ®·Ñ·¯´Â 15·Î ¼³Á¤µÈ´Ù. ±×·¸Áö¸¸, ÀÌµé ¼³Á¤Àº IDEÀÇ ´Ù¸¥ »ó¼¼ÇÑ ¼³Á¤°ú ¸¶Âù°¡Áö·Î Ä¿³Î¿¡ ¸í·ÉÇà(command line) ¿É¼ÇÀ» Á־ µ¤¾î ¾µ ¼ö ÀÖ´Ù. IDE µå¶óÀ̹ö´Â ¶ÇÇÑ ºÎÆýà ¹ß°ßµÈ IDE ÄÁÆ®·Ñ·¯¸¶´Ù gendisk¸¦ ¸¸µé¾î gendiskÀÇ ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù ÀÌ ¸®½ºÆ®´Â ³ªÁß¿¡ ºÎÆýà ¹ß°ßµÈ ¸ðµç ÇÏµå µð½ºÆ®ÀÇ ÆÄƼ¼Ç Å×À̺íÀ» ã´Âµ¥ »ç¿ëÇÑ´Ù. ÆÄƼ¼ÇÀ» °Ë »çÇÏ´Â ÄÚµå´Â IDE ÄÁÆ®·Ñ·¯°¡ µÎ°³ÀÇ IDE µð½ºÆ®¸¦ Á¦¾îÇÒ ¼öµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù.


±×¸² 8.4 : SCSI ÀڷᱸÁ¶

8.5.3 SCSI µð½ºÅ©

SCSI (Small Computer System Interface) ¹ö½º´Â, Çϳª ÀÌ»óÀÇ È£½ºÆ®¸¦ Æ÷ÇÔÇÏ¿© ¹ö½º¸¶´Ù 8°³ ±îÁöÀÇ ÀåÄ¡¸¦ Áö¿øÇÒ ¼ö ÀÖ´Â È¿À²ÀûÀÎ 1´ë1 µ¥ÀÌÅÍ ¹ö½ºÀÌ´Ù. °¢ ÀåÄ¡´Â °íÀ¯ÇÑ ½Äº°ÀÚ ¸¦ °¡Á®¾ß Çϴµ¥, ÀÌ´Â ´ë°³ µð½ºÅ©¿¡ ÀÖ´Â Á¡ÆÛ·Î ¼³Á¤ÇÑ´Ù. ¹ö½º¿¡ ÀÖ´Â ¾î¶² µÎ ÀåÄ¡ »ç ÀÌÀ̵簣¿¡ µ¿±âÀûÀ¸·Î ¶Ç´Â ºñµ¿±âÀûÀ¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖÀ¸¸ç, 32ºñÆ® Å©±â·Î ÃÊ´ç 40 MB±îÁö Àü¼ÛÇÒ ¼ö ÀÖ´Ù. SCSI ¹ö½º´Â ÀåÄ¡°£¿¡ µ¥ÀÌÅÍ¿Í »óÅ Á¤º¸¸¦ ÇÔ²² Àü¼ÛÇϸç, Àü ¼Û ½ÃÀÛÀÚ(initiator)¿Í Àü¼Û ´ë»ó(target) »çÀÌÀÇ ÇϳªÀÇ Æ®·£Àè¼ÇÀº ¿©´ü°³ÀÇ ¼­·Î ´Ù¸¥ »óÅ ¸¦ °¡Áú ¼ö ÀÖ´Ù. SCSI ¹ö½ºÀÇ ÇöÀç »óÅ´ ¹ö½º¿¡ ÀÖ´Â ´Ù¼¸°³ÀÇ ½ÅÈ£·ÎºÎÅÍ ¾Ë ¼ö ÀÖ´Ù. ¿©´ü°³ »óÅ´ ´ÙÀ½°ú °°´Ù.

¸®´ª½º SCSI ¼­ºê½Ã½ºÅÛÀº µÎ°¡Áö ±âº»ÀûÀÎ ¿ä¼Ò·Î µÇ¾î ÀÖ´Ù. °¢°¢Àº ÀڷᱸÁ¶·Î Ç¥ÇöÀÌ µÇ´Âµ¥ À̵éÀº ´ÙÀ½°ú °°´Ù.


SCSI ¼­ºê½Ã½ºÅÛÀÇ ÃʱâÈ­

SCSI ¼­ºê½Ã½ºÅÛÀ» ÃʱâÈ­ÇÏ´Â °ÍÀº SCSI ¹ö½º¿Í ÀåÄ¡µéÀÇ µ¿ÀûÀΠƯ¼º ¶§¹®¿¡ ¸Å¿ì º¹Àâ ÇÏ´Ù. ¸®´ª½º´Â ºÎÆýÿ¡ SCSI ¼­ºê½Ã½ºÅÛÀ» ÃʱâÈ­ÇÑ´Ù - ½Ã½ºÅÛ¿¡ ÀÖ´Â SCSI ÄÁÆ®·Ñ·¯ (SCSI È£½ºÆ®¶ó°í ÇÏ´Â)¸¦ ã°í, °¢ SCSI ¹ö½º¸¦ °Ë»çÇÏ¿© ¸ðµç ÀåÄ¡µéÀ» ã¾Æ³½´Ù. ±×¸®°í À̵é ÀåÄ¡¸¦ ÃʱâÈ­ÇÏ¿© ¸®´ª½º Ä¿³ÎÀÇ ´Ù¸¥ ºÎºÐ¿¡¼­ ÀÏ¹Ý ÆÄÀÏ ¿¬»ê°ú ¹öÆÛ Ä³½Ã ºí·° Àå Ä¡ ¿¬»êÀ» °¡Áö°í À̵éÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÃʱâÈ­´Â ³×°¡Áö »óÅ¿¡¼­ ÀÌ·ç¾îÁø´Ù.

ù°, ¸®´ª½º´Â Ä¿³ÎÀ» ºôµåÇÒ ¶§ µé¾î°¡ ÀÖ´Â SCSI È£½ºÆ® ¾î´ðÅÍ, Áï ÄÁÆ®·Ñ·¯ Áß ¾î¶² °ÍÀÌ ÀÚ½ÅÀÌ Á¦¾îÇÒ Çϵå¿þ¾î¸¦ °¡Áö°í ÀÖ´ÂÁö ã´Â´Ù. Ä¿³Î¿¡ Æ÷ÇÔµÈ °¢ SCSI È£½ºÆ®´Â builtin_scsi_hosts º¤ÅÍ¿¡ Scsi_Host_Template ¿£Æ®¸®¸¦ °¡Áö°í ÀÖ´Ù. Scsi_Host_Template ÀڷᱸÁ¶´Â ¾î¶² SCSI ÀåÄ¡°¡ SCSI È£½ºÆ®¿¡ ¿¬°áµÇ¾î ÀÖ´ÂÁö °¨ ÁöÇÏ´Â °Í °°Àº ÀÏÀ» ¼öÇàÇÏ´Â SCSI È£½ºÆ® º°·Î °íÀ¯ÇÑ ·çƾµé¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ´Ù. SCSI ¼­ºê½Ã½ºÅÛÀº ÀÚ½ÅÀ» ¼³Á¤ÇÏ´Â µ¿¾È ÀÌµé ·çƾÀ» ºÎ¸£¸ç, ÀÌµé ·çƾÀº ÀÌ·± È£½º Æ® À¯ÇüÀ» Áö¿øÇÏ´Â SCSI µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÇÑ ºÎºÐÀÌ´Ù. ½ÇÁ¦ SCSI ÀåÄ¡°¡ ¿¬°áµÇ¾î ÀÖ ´Â °¨ÁöµÈ SCSI È£½ºÆ®´Â, ÀÚ½ÅÀÇ Scsi_Host_Template ÀڷᱸÁ¶¸¦ È°¼ºÈ­µÈ SCSI È£½º Æ®µéÀÇ scsi_hosts ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù. °¨ÁöµÈ È£½ºÆ® À¯ÇüÀÇ °¢ È£½ºÆ®´Â scsi_hostlist ¸®½ºÆ®¿¡ ÀÖ´Â Scsi_Host ÀڷᱸÁ¶·Î Ç¥ÇöµÈ´Ù. ¿¹¸¦ µé¾î, µÎ°³ÀÇ NCR810 PCI SCSI ÄÁÆ®·Ñ·¯¸¦ °¡Áø ½Ã½ºÅÛÀº °¢ ÄÁÆ®·Ñ·¯º°·Î Çϳª¾¿Çؼ­, ¸®½ºÆ®¿¡ µÎ°³ÀÇ Scsi_Host ¿£Æ®¸®¸¦ °¡Áö°Ô µÈ´Ù. °¢ Scsi_Host´Â ÀÚ½ÅÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ³ªÅ¸³» ´Â Scsi_Host_Template¸¦ °¡¸®Å²´Ù.

ÀÌÁ¦ ¸ðµç SCSI È£½ºÆ®¸¦ ¹ß°ßÇßÀ¸¹Ç·Î, SCSI ¼­ºê½Ã½ºÅÛÀº ¾î¶² SCSI ÀåÄ¡°¡ È£½ºÆ®ÀÇ ¹ö ½º¿¡ ¿¬°áµÇ¾ú´ÂÁö ã¾Æ¾ß ÇÑ´Ù. SCSI ÀåÄ¡´Â 0¿¡¼­ 7±îÁöÀÇ ÀåÄ¡ ¹øÈ£¸¦ °¡Áö´Âµ¥, ÀÌ ¹ø È£´Â ÀÚ½ÅÀÌ ¿¬°áµÈ SCSI ¹ö½º¿¡¼­ À¯ÀÏÇØ¾ß ÇÑ´Ù. SCSI ½Äº°ÀÚ´Â ´ë°³ ÀåÄ¡¿¡ ÀÖ´Â Á¡ÆÛ·Î ¼³Á¤ÇÑ´Ù. SCSI ÃʱâÈ­ ÄÚµå´Â SCSI ¹ö½º¿¡ ÀÖ´Â ÀåÄ¡·Î TEST_UNIT_READY ¸í·ÉÀ» º¸³»¼­ ÀåÄ¡¸¦ ã´Â´Ù. ÀåÄ¡°¡ ´ë´äÀ» ÇÑ´Ù¸é, ENQUIRY ¸í·ÉÀ» º¸³»¼­ ½Å¿øÈ®ÀÎÀ» ÇÑ´Ù. ÀÌ´Â ¸®´ª ½º¿¡°Ô Á¦ÀÛÀÚ(vendor)ÀÇ À̸§°ú ÀåÄ¡ÀÇ ¸ðµ¨¸í°ú °³Á¤(revision) À̸§À» Àü´ÞÇÑ´Ù. SCSI ¸í·É Àº Scsi_Cmnd ÀڷᱸÁ¶·Î Ç¥ÇöµÇ°í, µð¹ÙÀ̽º µå¶óÀ̹öÀÇ Scsi_Host_Template Àڷᱸ Á¶¿¡ ÀÖ´Â µð¹ÙÀ̽º µå¶óÀ̹ö ·çƾ¿¡ ºÎ¸¦ ´ë À̸¦ Àü´ÞÇÑ´Ù. ¹ß°ßÇÑ ¸ðµç SCSI ÀåÄ¡´Â Scsi_Device ÀڷᱸÁ¶·Î Ç¥ÇöÇϸç, °¢°¢Àº ÀÚ½ÅÀÇ ºÎ¸ð Scsi_Host¸¦ °¡¸®Å²´Ù. ¸ðµç Scsi_Device ÀڷᱸÁ¶´Â scsi_devices ¸®½ºÆ®¿¡ Ãß°¡µÈ´Ù. ±×¸² 8.4´Â ¾î¶»°Ô À̵é ÁÖ µÈ ÀڷᱸÁ¶µéÀÌ ¼­·Î ¿¬°üµÇ¾î ÀÖ´ÂÁö º¸¿©ÁØ´Ù.

SCSI ÀåÄ¡ À¯ÇüÀ¸·Î´Â ³×°¡Áö°¡ ÀÖ´Ù - µð½ºÅ©, Å×ÀÌÇÁ, CD, ±×¸®°í ÀϹÝ. À̵é SCSI À¯ÇüÀÇ °¢°¢Àº ´Ù¸¥ ¸ÞÀÌÀú ºí·° ÀåÄ¡ À¯ÇüÀ¸·Î Ä¿³Î¿¡ °³º°ÀûÀ¸·Î µî·ÏµÈ´Ù. ±×·¸Áö¸¸ À̵éÀº ÁÖ ¾îÁø SCSI ÀåÄ¡ À¯ÇüÀ» °®´Â ÀåÄ¡°¡ Çϳª ÀÌ»ó ÀÖ¾î¾ß Ä¿³Î¿¡ µî·ÏµÈ´Ù. °¢ SCSI À¯ÇüÀº - ¿¹¸¦ µé¾î SCSI µð½ºÅ© - ÀڽŸ¸ÀÇ ÀåÄ¡ Å×À̺íÀ» °ü¸®ÇÑ´Ù. À̵éÀº ÀÌ Å×À̺íÀ» Ä¿³ÎÀÇ ºí ·° ¿¬»ê(ÆÄÀÏÀ̳ª ¹öÆÛij½Ã)À» ¿Ã¹Ù¸¥ µð¹ÙÀ̽º µå¶óÀ̹ö³ª SCSI È£½ºÆ®·Î º¸³»´Âµ¥ »ç¿ëÇÑ ´Ù. °¢ SCSI À¯ÇüÀº Scsi_Device_Template ÀڷᱸÁ¶·Î Ç¥ÇöÇÑ´Ù. ÀÌ ÀڷᱸÁ¶´Â ÀÌ À¯ ÇüÀÇ SCSI ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¿Í ´Ù¾çÇÑ ÀÛ¾÷À» ¼öÇàÇÏ´Â ·çƾµéÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Ù. SCSI ¼­ºê½Ã½ºÅÛÀº À̵é ÅÛÇø´À» »ç¿ëÇÏ¿© °¢ À¯ÇüÀÇ SCSI ÀåÄ¡¿¡ ´ëÇØ SCSI À¯Çü¿¡ µû¸¥ ·çƾ À» ºÎ¸£´Âµ¥ »ç¿ëÇÑ´Ù. ´Ù¸£°Ô ¸»Çϸé, SCSI ¼­ºê½Ã½ºÅÛÀÌ SCSI µð½ºÅ© ÀåÄ¡¸¦ ¿¬°áÇÏ·Á°í ÇÒ ¶§, SCSI µð½ºÅ© À¯Çü¿¡ µû¸¥ ¿¬°á ·çƾÀ» ºÎ¸¥´Ù´Â °ÍÀÌ´Ù. ¾î¶² À¯ÇüÀ» °®´Â SCSI ÀåÄ¡ °¡ Çϳª ÀÌ»ó ¹ß°ßµÇ¸é Scsi_Type_Template ÀڷᱸÁ¶°¡ scsi_Devicelist ¸®½ºÆ®¿¡ Ãß°¡µÈ´Ù.

SCSI ¼­ºê½Ã½ºÅÛ ÃʱâÈ­ÀÇ ¸¶Áö¸· »óÅ´ µî·ÏµÈ °¢ Scsi_Device_TemplateÀÇ Á¾·á (finish) ÇÔ¼ö¸¦ ºÎ¸£´Â °ÍÀÌ´Ù. SCSI µð½ºÅ© À¯ÇüÀ̶ó¸é, ÀÌ´Â ¹ß°ßÇÑ ¸ðµç SCSI µð½ºÅ©¸¦ ȸ Àü½ÃÄÑ ±×µéÀÇ µð½ºÅ© ±¸Á¶¸¦ ±â·ÏÇÏ´Â ÀÏÀ» ÇÑ´Ù. ¶ÇÇÑ ±×¸² 8.3¿¡ º¸ÀÌ´Â °Íó·³, ¸ðµç SCSI µð½ºÅ©¸¦ ³ªÅ¸³»´Â gendisk ÀڷᱸÁ¶¸¦ µð½ºÅ©ÀÇ ¿¬°á ¸®½ºÅ©¿¡ Ãß°¡ÇÑ´Ù.


ºí·° ÀåÄ¡ ¿äûÀ» Àü´ÞÇϱâ

ÀÏ´Ü ¸®´ª½º°¡ SCSI ¼­ºê½Ã½ºÅÛÀ» ÃʱâÈ­ÇÏ°í ³ª¸é SCSI ÀåÄ¡µéÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù. Á¤ »óÀûÀ¸·Î µ¿ÀÛÇÏ´Â °¢ SCSI ÀåÄ¡ À¯ÇüÀº ÀÚ½ÅÀ» Ä¿³Î¿¡ µî·ÏÇÏ¿©, ¸®´ª½º°¡ ºí·° ÀåÄ¡ ¿äû À» Àڽſ¡°Ô º¸³¾ ¼ö ÀÖ°Ô ÇÑ´Ù. ¿©±â¿¡´Â blk_dev¸¦ ÅëÇÑ ¹öÆÛ Ä³½Ã ¿äûÀ̳ª, blkdevs ¸¦ ÅëÇÏ´Â ÆÄÀÏ ¿¬»êÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ¿©±â¼­´Â Çϳª ÀÌ»óÀÇ EXT2 ÆÄÀÏ ½Ã½ºÅÛ ÆÄƼ¼ÇÀ» °¡Áö°í ÀÖ´Â SCSI µð½ºÅ© µå¶óÀ̹ö¸¦ ¿¹·Î µé¾î, ÀÌ EXT2 ÆÄƼ¼Ç Áß Çϳª¸¦ ¸¶¿îÆ®ÇÒ ¶§ Ä¿³Î ¹öÆÛ ¿äûÀ» ¾î¶»°Ô ¿Ã¹Ù¸¥ SCSI µð½ºÅ©·Î Àü´ÞÇÏ´ÂÁö »ìÆ캸µµ·Ï ÇÏÀÚ.

SCSI µð½ºÅ© ÆÄƼ¼Ç¿¡¼­ ÇÑ ºí·°ÀÇ µ¥ÀÌÅ͸¦ Àаųª ¾²´Â ¿äûÀº, blk_dev º¤ÅÍ¿¡ ÀÖ´Â SCSI µð½ºÅ©ÀÇ current_request ¸®½ºÆ®¿¡ »õ·Î¿î request ±¸Á¶Ã¼¸¦ Ãß°¡ÇÏ°Ô µÈ´Ù. request ¸®½ºÆ®°¡ ó¸®ÁßÀ̶ó¸é, ¹öÆÛ Ä³½Ã´Â ´Ù¸¥ ÀÏÀ» ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±×·¸Áö ¾Ê´Ù¸é SCSI µð½ºÅ© ¼­ºê½Ã½ºÅÛ¿¡°Ô °è¼ÓÇؼ­ request Å¥¸¦ ó¸®Ç϶ó°í ÇÑ´Ù. ½Ã½ºÅÛ¿¡ ÀÖ´Â SCSI µð½ºÅ©´Â Scsi_Disk ÀڷᱸÁ¶·Î ³ªÅ¸³½´Ù. À̵éÀº rscsi_disks º¤ÅÍ¿¡ µé¾î ÀÖÀ¸ ¸ç, ÀÌ º¤ÅÍ´Â SCSI µð½ºÅ© ÆÄƼ¼ÇÀÇ ¸¶ÀÌ³Ê ÀåÄ¡ ¹øÈ£ Áß ÀϺθ¦ »ç¿ëÇÏ¿© À妽º°¡ µÇ¾î ÀÖ´Ù. ¿¹¸¦ µé¾î /dev/sdb1Àº 8¹øÀÇ ¸ÞÀÌÀú ¹øÈ£¿Í 17¹øÀÇ ¸¶ÀÌ³Ê ¹øÈ£¸¦ °¡Áö¸ç, ÀÌ´Â À妽º 1À» »ý¼ºÇÑ´Ù. °¢ Scsi_Disk ÀڷᱸÁ¶´Â ÀÌ ÀåÄ¡¸¦ ³ªÅ¸³»´Â Scsi_Device ÀÚ·á ±¸Á¶¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °®°í ÀÖ´Ù. Scsi_Device ÀڷᱸÁ¶´Â Â÷·Ê·Î ÀÚ½ÅÀ» "¼ÒÀ¯"ÇÏ°í ÀÖ´Â Scsi_Host ÀڷᱸÁ¶¸¦ °¡¸®Å°°í ÀÖ´Ù. ¹öÆÛ Ä³½Ã·ÎºÎÅÍ ¿Â request ÀڷᱸÁ¶´Â SCSI Àå Ä¡·Î º¸³»¾ß ÇÏ´Â SCSI ¸í·ÉÀ» ±â¼úÇÏ´Â Scsi_Cmnd18 ±¸Á¶Ã¼·Î ¹Ù²î°í, ÀÌ´Â ÀÌ ÀåÄ¡¸¦ ³ª Ÿ³»´Â Scsi_Host ±¸Á¶Ã¼ÀÇ Å¥¿¡ ½×ÀδÙ. Çѹø ÀûÀýÇÑ µ¥ÀÌÅÍ ºí·°À» Àаųª ¾²°í ³ª¸é, À̵éÀº °³º° SCSI µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÀÇÇØ Ã³¸®µÈ´Ù.


8.6 ³×Æ®¿÷ ÀåÄ¡(Network Device)

¸®´ª½ºÀÇ ³×Æ®¿÷ ¼­ºê½Ã½ºÅÛÀº ³×Æ®¿÷ ÀåÄ¡¸¦ µ¥ÀÌÅÍ ÆÐŶÀ» º¸³»°í ¹Þ´Â ÇÑ °³Ã¼·Î »ý°¢ÇÑ ´Ù. ÀÌ´Â ´ë°³ÀÇ °æ¿ì ÀÌ´õ³Ý Ä«µå°°Àº ¹°¸®ÀûÀÎ ÀåÄ¡ÀÌ´Ù. ¾î¶² ³×Æ®¿÷ ÀåÄ¡´Â ¼ÒÇÁÆ®¿þ¾î ·Î¸¸ µÇ¾î ÀÖ´Â °ÍÀÌ Àִµ¥, µ¥ÀÌÅ͸¦ ÀÚ±â Àڽſ¡°Ô º¸³»´Âµ¥ »ç¿ëµÇ´Â ·çÇÁ¹é(loopback) ÀåÄ¡°°Àº °ÍÀÌ ±×°ÍÀÌ´Ù. °¢ ³×Æ®¿÷ ÀåÄ¡´Â device ÀڷᱸÁ¶·Î Ç¥ÇöµÈ´Ù. ³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö´Â Ä¿³ÎÀÌ ºÎÆÃÇϸ鼭 ³×Æ®¿÷À» ÃʱâÈ­ÇÏ´Â µ¿¾È ÀÚ½ÅÀÌ Á¦¾îÇÏ´Â ÀåÄ¡¸¦ ¸®´ª½º¿¡ µî·ÏÇÑ´Ù19. ÀÌ device ÀڷᱸÁ¶´Â ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¿Í, ¸®´ª½º¿¡¼­ Áö¿øÇÏ´Â ´Ù¾çÇÑ Á¾·ù ÀÇ ³×Æ®¿÷ ÇÁ·ÎÅäÄÝÀÌ ÀåÄ¡ÀÇ ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ÇÔ¼öµéÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ ´Ù. ÀÌ ÇÔ¼öµéÀº ´ëºÎºÐ ³×Æ®¿÷ ÀåÄ¡¸¦ ÅëÇÑ µ¥ÀÌÅÍ Àü¼Û°ú °ü°è°¡ ÀÖ´Ù. ÀåÄ¡´Â Ç¥ÁØ ³×Æ® ¿÷ Áö¿ø ¸ÅÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© Àü¼Û¹ÞÀº µ¥ÀÌÅ͸¦ ¿Ã¹Ù¸¥ ÇÁ·Î·ÎÄÝ °èÃþÀ¸·Î Àü´ÞÇÑ´Ù. º¸³» °í ¹Þ´Â ¸ðµç ³×Æ®¿÷ µ¥ÀÌÅÍ(ÆÐŶ)Àº sk_buff ÀڷᱸÁ¶·Î Ç¥ÇöµÇ´Âµ¥, ÀÌ´Â ³×Æ®¿÷ ÇÁ·ÎÅä ÄÝ Çì´õ¸¦ ½±°Ô ÷°¡Çϰųª Á¦°ÅÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁø À¯¿¬ÇÑ ÀڷᱸÁ¶ÀÌ´Ù. ³×Æ®¿÷ ÇÁ·Î ÅäÄÝ °èÃþÀÌ ¾î¶»°Ô ³×Æ®¿÷ ÀåÄ¡¸¦ »ç¿ëÇÏ´ÂÁö, ¾î¶»°Ô sk_buff ÀڷᱸÁ¶¸¦ °¡Áö°í µ¥ÀÌÅÍ ¸¦ ¾ÕµÚ·Î Àü´ÞÇÏ´Â Áö´Â ³×Æ®¿÷ Àå(10Àå)¿¡¼­ »ó¼¼ÇÏ°Ô ´Ù·é´Ù. ¿©±â¼­´Â device ÀÚ·á ±¸ Á¶¿Í ³×Æ®¿÷ ÀåÄ¡¸¦ ¾î¶»°Ô ¹ß°ßÇÏ°í ÃʱâÈ­ÇÏ´ÂÁö¿¡ Áß½ÉÀ» µÐ´Ù.

device ÀڷᱸÁ¶´Â ´ÙÀ½°ú °°Àº ³×Æ®¿÷ ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áø´Ù.


8.6.1 ³×Æ®¿÷ ÀåÄ¡ ÃʱâÈ­

³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö´Â ´Ù¸¥ ¸®´ª½º µð¹ÙÀ̽º µå¶óÀ̹ö¿Í ¸¶Âù°¡Áö·Î Ä¿³Î¿¡ Á÷Á¢ Æ÷ ÇԵǾî ÀÖÀ» ¼ö ÀÖ´Ù. °¢ ÀáÀçÀûÀÎ21 ³×Æ®¿÷ ÀåÄ¡´Â dev_base ¸®½ºÆ® Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ³×Æ®¿÷ ÀåÄ¡ ¸®½ºÆ®¿¡ ÀÖ´Â device ÀڷᱸÁ¶·Î Ç¥ÇöµÈ´Ù. ³×Æ®¿÷ °èÃþÀº ÀåÄ¡¿¡ °íÀ¯ÇÑ ÀÛ ¾÷À» ¼öÇàÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¶§, device ÀڷᱸÁ¶¿¡ ÀÖ´Â ¼­ºñ½º ·çƾÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ¿©·¯ ³×Æ®¿÷ ÀåÄ¡ÀÇ ¼­ºñ½º ·çƾÀ» È£ÃâÇÑ´Ù. ±×·¸Áö¸¸ device ÀڷᱸÁ¶´Â óÀ½¿¡´Â ÃʱâÈ­³ª ÀåÄ¡¸¦ Ž»ç(probe)ÇÏ´Â ·çƾÀÇ ÁÖ¼Ò¸¸ °®°í ÀÖ´Ù.

³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ Ç®¾î¾ß ÇÏ´Â ¹®Á¦·Î µÎ°¡Áö°¡ ÀÖ´Ù. ¿ì¼± ù¹ø°´Â ¸®´ª½º Ä¿ ³Î¿¡ Æ÷ÇÔµÈ ¸ðµç ³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀÚ½ÅÀÌ Á¦¾îÇÒ ÀåÄ¡¸¦ °®´Â °ÍÀº ¾Æ´Ï¶ó´Â °ÍÀÌ´Ù. ±×¸®°í µÎ¹ø°·Î ½Ã½ºÅÛ¿¡ ÀÖ´Â ÀÌ´õ³Ý ÀåÄ¡´Â ¹Ø¿¡ ÀÖ´Â µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¾î ¶² °ÅµçÁö°£¿¡ Ç×»ó /dev/eth0, /dev/eth1°ú °°ÀÌ ³ªÅ¸³­´Ù´Â °ÍÀÌ´Ù. ¸ÕÀú "¾ø´Â" ³×Æ® ¿÷ ÀåÄ¡ ¹®Á¦´Â ½±°Ô Ç® ¼ö ÀÖ´Ù. °¢ ³×Æ®¿÷ ÀåÄ¡ÀÇ ÃʱâÈ­ ·çƾÀ» ºÎ¸£¸é, ÀÌ ·çƾÀº ÀڽŠÀÌ ±¸µ¿ÇÒ ÄÁÆ®·Ñ·¯¸¦ ã¾Ò´ÂÁö ¸øã¾Ò´ÂÁö ÀǹÌÇÏ´Â »óÅ°ªÀ» µ¹·ÁÁØ´Ù. ¸¸¾à µå¶óÀ̹ö°¡ ¾Æ¹«·± ÀåÄ¡µµ ãÁö ¸øÇß´Ù¸é, dev_base°¡ °¡¸®Å°°í ÀÖ´Â device ¸®½ºÆ®¿¡ ÀÖ´Â ¿£Æ®¸® °¡ Á¦°ÅµÈ´Ù. ¸¸¾à µå¶óÀ̹ö°¡ ÀåÄ¡¸¦ ã°Ô µÈ´Ù¸é, µå¶óÀ̹ö´Â device ÀڷᱸÁ¶ÀÇ ³ª¸ÓÁö ºÎºÐÀ» ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¿Í ³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÀÖ´Â µå¶óÀ̹ö°¡ Áö¿øÇÏ´Â ÇÔ¼öµé ÀÇ ÁּҷΠä¿î´Ù.

µÎ¹ø° ¹®Á¦´Â ÀÌ´õ³Ý ÀåÄ¡¸¦ Ç¥ÁØ /dev/ethN ÀåÄ¡ Ư¼öÆÄÀÏ¿¡ µ¿ÀûÀ¸·Î ºÎ¿©ÇÏ´Â ¹®Á¦·Î ÀÌ´Â Á»´õ ¿ì¾ÆÇÑ ¹æ¹ýÀ¸·Î ÇØ°áµÈ´Ù. ÀåÄ¡ ¸ñ·Ï¿¡´Â eth0ºÎÅÍ eth7±îÁö ¸ðµÎ ¿©´ü°³ÀÇ Ç¥ÁØ ¿£Æ®¸®°¡ ÀÖ´Ù. ÃʱâÈ­ ·çƾÀº ÀÌµé ¸ðµÎ¿¡ ¶È°°Àºµ¥, ÀåÄ¡¸¦ ãÀ» ¶§±îÁö Ä¿³Î¿¡ ÀÖ´Â °¢ ÀÌ´õ³Ý µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ½ÃµµÇغ¸´Â °ÍÀÌ´Ù. µå¶óÀ̹ö°¡ ÀåÄ¡¸¦ ãÀ¸¸é ÀÌÁ¦ °¡Áö°Ô µÈ ethN device ÀÚ·á ±¸Á¶ÀÇ ³»¿ëÀ» ä¿î´Ù. ±×¸®°í ÀÌ ¶§ ³×Æ®¿÷ µð¹ÙÀ̽º µå¶óÀ̹ö´Â ÀÚ ½ÅÀÌ Á¦¾îÇÒ ¹°¸®ÀûÀÎ Çϵå¿þ¾î¸¦ ÃʱâÈ­ÇÏ°í, ¾î¶² IRQ¸¦ »ç¿ëÇÏ°í ÀÖ°í ¾î¶² DMA ä³Î À» »ç¿ëÇÏ°í ÀÖ´ÂÁö (¸¸¾à ÀÖ´Ù¸é) µîµîÀ» ¾Ë¾Æ³½´Ù. µå¶óÀ̹ö´Â ÀÚ½ÅÀÌ Á¦¾îÇÒ ³×Æ®¿÷ ÀåÄ¡ ¸¦ ¿©·¯ °³¸¦ ãÀ» ¼ö Àִµ¥, ÀÌ °æ¿ì µå¶óÀ̹ö´Â ¿©·¯ °³ÀÇ /dev/ethN device ÀڷᱸÁ¶ À» ³Ñ°ÜÁØ´Ù. ¿©´ü°³ÀÇ Ç¥ÁØ /dev/ethNÀÌ ¸ðµÎ ÇÒ´çµÇ¸é, ´õ ÀÌ»ó ÀÌ´õ³Ý ÀåÄ¡¸¦ ãÁö ¾Ê ´Â´Ù.


¹ø¿ª : ÀÌÈ£, ½Å¹®¼®
Á¤¸® : ÀÌÈ£


¿ªÁÖ 1) ÀÌ·¸°Ô ÀåÄ¡¸¦ ÆÄÀϷΠǥ½ÃÇÏ´Â °ÍÀº Windows ¿î¿µÃ¼Á¦¿¡µµ ¿µÇâÀ» ¹ÌÃÄ, Windows 95¿¡¼­´Â µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ÆÄÀÏ·Î Á¢±ÙÇÒ ¼ö ÀÖÀ¸¸ç, Windows NT °è¿­¿¡¼­´Â À¯´Ð½º ¿Í º¸´Ù °¡±õ°Ô µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀåÄ¡ ÆÄÀÏÀ» ¸¸µå´Â ÇüÅ·ΠµÇ¾î ÀÖ´Ù. (flyduck)

¿ªÁÖ 2) Áï º¸Åë ¹®ÀÚ ÀåÄ¡³ª ºí·° ÀåÄ¡´Â ½ÇÁ¦·Î ÀåÄ¡°¡ Á¸ÀçÇÏÁö ¾Ê´õ¶óµµ ÀåÄ¡ Ư¼ö ÆÄ ÀÏÀÌ Á¸ÀçÇÑ´Ù. ÀÌ´Â ½ÇÁ¦ ½Ã½ºÅÛ¿¡ ÀåÄ¡°¡ ¸¹Áö ¾Ê´õ¶óµµ, /dev µð·ºÅ丮¿¡ ¼ö¸¹Àº Àå Ä¡ ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â ÀÌÀ¯ÀÌ´Ù. ÇÏÁö¸¸ ³×Æ®¿÷ ÀåÄ¡ ÆÄÀÏÀº ½ÇÁ¦·Î ÀåÄ¡°¡ Á¸ÀçÇÏ´Â °æ¿ì ¿¡¸¸ ¸¸µé¾îÁø´Ù. ¿¹¸¦ µé¾î ½Ã½ºÅÛ¿¡ ÀÌ´õ³Ý ÀåÄ¡°¡ ÀÖ¾î¾ß /dev/eth0À̶ó´Â ÀåÄ¡ Ư ¼ö ÆÄÀÏÀÌ »ý±ä´Ù. (flyduck)

¿ªÁÖ 3) Áï ¸ÞÀÌÀú ÀåÄ¡ ¹øÈ£´Â µð¹ÙÀ̽º µå¶óÀ̹ö¿¡°Ô ºÎ¿©µÇ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ¼­·Î ´Ù ¸¥ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ÇÊ¿ä·Î ÇÏ´Â CD-ROM µð¹ÙÀ̽º µå¶óÀ̹ö´Â ¼­·Î ´Ù¸¥ ¸ÞÀÌÀú ¹øÈ£¸¦ °¡Áö¸ç, ½ÇÁ¦·Î ¸®´ª½º ½Ã½ºÅÛ¿¡ º¸¸é CD-ROM µð¹ÙÀ̽º µå¶óÀ̹ö·Î ¿©·¯°³ÀÇ ¸ÞÀÌÀú ¹øÈ£°¡ ÇÒ´çµÇ¾î ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. µû¶ó¼­ ½Ã½ºÅÛ¿¡ »õ·Î¿î µð¹ÙÀ̽º µå¶ó À̹ö¸¦ Ãß°¡ÇÒ·Á¸é »ç¿ëµÇ°í ÀÖÁö ¾ÊÀº ¸ÞÀÌÀú ¹øÈ£¸¦ ÇÒ´ç¹Þ¾Æ¾ß ÇÑ´Ù. ¸¶ÀÌ³Ê ¹øÈ£´Â µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀÚ½ÅÀÌ °ü¸®ÇÏ´Â ÀåÄ¡µéÀ» ±¸º°Çϱâ À§Çؼ­ ºÙÀÌ´Â °ÍÀ̹ǷÎ, ¾î¶² ¹øÈ£¸¦ ºÎ¿©ÇÏ´ÂÁö´Â µð¹ÙÀ̽º µå¶óÀ̹ö Á¦ÀÛÀÚÀÇ ¸òÀÌ´Ù. ÇöÀç ½Ã½ºÅÛ¿¡ ÀÖ´Â ÀåÄ¡µéÀÇ ¸ÞÀÌÀú ¹øÈ£¿Í ¸¶ÀÌ³Ê ¹øÈ£ÀÇ Àǹ̴ DOCUMENTATION/Device.txt ÆÄÀÏ¿¡ Á¤¸®µÇ¾î ÀÖ´Ù. ¿©±â¼­ ƯÀÌÇÑ Á¡Àº SCSI CD-ROMÀ̳ª SCSI µð½ºÅ©°°Àº °ÍÀº ÇϳªÀÇ ¸ÞÀÌÀú ¹øÈ£¸¸À» °®´Â´Ù´Â °ÍÀÌ´Ù. ±×·¸´Ù°í ÇϳªÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¸ðµç Á¾·ùÀÇ SCSI ¾î´ðÅ͸¦ Áö ¿øÇÑ´Ù´Â °ÍÀº ¾Æ´Ï´Ù. ÀÌ´Â SCSI Ŭ·¡½º µð¹ÙÀ̽º µå¶óÀ̹ö°¡ À־ ÀÌ°ÍÀÌ ½ÇÁ¦·Î µð ¹ÙÀ̽º µå¶óÀ̹ö¸¦ µî·ÏÇÏ°í, °¢°¢ÀÇ SCSI ¾î´ðÅÍ¿¡ ÇØ´çÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö´Â ´ÜÁö ÀÌ SCSI Ŭ·¡½º µå¶óÀ̹ö¿¡ º°µµÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â ÇüÅ·ΠµÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ÀÌ´Â ³ªÁß¿¡ ºí·° ÀåÄ¡¿¡¼­ ´Ù½Ã À̾߱âÇÑ´Ù. (flyduck)

¿ªÁÖ 4) ÀÌ Æ¯¼ºÀº ÇöÀç Ä¿³ÎÀÌ Áö¿øÇÏÁö ¾Ê´Â ÀåÄ¡°¡ Ãß°¡µÇ¾ú´õ¶óµµ, Ä¿³ÎÀ» »õ·Î ÄÄÆÄÀÏ ÇÏÁö ¾Ê°í ÇØ´çÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ Ãß°¡ÇÏ¿© ·ÎµåÇÔÀ¸·Î½á ÀåÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. (flyduck)

¿ªÁÖ 5) Ä¿³ÎÀ» ÄÄÆÄÀÏÇϱâ Àü¿¡ make menuconfig, ¶Ç´Â X À©µµ¿ì »ó¿¡¼­ make xconfig ¸í·ÉÀ» ÅëÇؼ­, Ä¿³Î¿¡ ¹«¾ùÀ» Æ÷ÇÔÇÏ°í ¹«¾ùÀ» ¸ðµâ·Î ³ÖÀ» °ÍÀÎÁö ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. (flyduck)

¿ªÁÖ 6) ÀÌ´Â 11.3 Àå¿¡¼­ ¼³¸íÇÏ°í Àִ ŸÀÌ¸Ó ¸ÞÄ¿´ÏÁòÀÌ´Ù. (flyduck)

¿ªÁÖ 7) ÀÎÅÍ·´Æ® ÀÚ¿øÀ» ¿äûÇÏ´Â °ÍÀº ²À µå¶óÀ̹ö ÃʱâÈ­ ¶§°¡ ¾Æ´Ï¶óµµ ÇÒ ¼ö ÀÖ´Ù. »ç ¶÷¿¡ µû¶ó¼­ µå¶óÀ̹ö ÃʱâÈ­ ¶§¿¡´Â ¾î¶² ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ°í ÀÖ´ÂÁö È®Àθ¸ ÇÏ°í, ½Ç Á¦ ÀÎÅÍ·´Æ®¸¦ ¿äûÇÏ´Â °ÍÀº ÀåÄ¡¸¦ »ç¿ëÇÒ ¶§¿¡¸¸ Çϸç, »ç¿ëÇÏÁö ¾ÊÀ» ¶§´Â ÀÎÅÍ·´Æ® ÀÚ¿øÀ» ¹Ý³³ÇÏ´Â °ÍÀÌ ÁÁ´Ù°í ÇÏ´Â »ç¶÷µµ ÀÖ´Ù. (flyduck)

¿ªÁÖ 8) ÇÁ·Î¼¼½º´Â °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇϹǷΠÇÒ´ç¹ÞÀº ¸Þ¸ð¸®´Â °¡»ó ¸Þ¸ð¸® »ó¿¡¼­´Â ¿¬ ¼ÓµÇ¾î ÀÖ´õ¶óµµ ¹°¸®ÀûÀ¸·Î ¿¬¼ÓµÈ °ÍÀº ¾Æ´Ï´Ù. ±×·¡¼­ ¸®´ª½º Ä¿³ÎÀº DMA¸¦ À§ÇØ Æ¯ º°ÇÑ ¸Þ¸ð¸® ÇÒ´ç ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. (flyduck)

¿ªÁÖ 9) ÀÌ "lock"ÀÇ Àǹ̴ °¡»ó ¸Þ¸ð¸®°¡ ½ÇÁ¦ ¹°¸®ÀûÀ¸·Îµµ Á¸ÀçÇÏ°Ô ¸¸µé°í, ¿òÁ÷¿©ÁöÁö ¾Êµµ·Ï ¸¸µç´Ù´Â °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ¸Þ¸ð¸®´Â ÇÒ´ç¹Þ´õ¶óµµ ¹°¸®ÀûÀ¸·Î ÇÒ´ç¹Þ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡(¿ä±¸ ÆäÀÌ¡), DMA¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ½ÇÁ¦·Î ¹°¸®ÀûÀ¸·Î ¸Þ¸ð¸®°¡ Á¸ ÀçÇÏ°Ô ÇÏ°í ½º¿Ò ¾Æ¿ôµÇÁö ¾Ê°Ô ÇÑ´Ù´Â ÀǹÌÀÌ´Ù. (flyduck)

¿ªÁÖ 10) À̸¦ ÀÎÅÍ·´Æ® ŸÀÓ(interrupt time)¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Ù°í ÇÑ´Ù. µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÀÏ¹Ý ¼­ºñ½ºµéÀº ÀÌ ¼­ºñ½º¸¦ ¿äûÇÑ ÇÁ·Î¼¼½º°¡ ÇöÀç ÇÁ·Î¼¼½ºÀÏ ¶§ (Áï current °¡ ÇöÀç ÇÁ·Î¼¼½ºÀÇ task_struct¸¦ °¡¸®Å°°í ÀÖÀ» ¶§) ½ÇÇàµÇÁö¸¸, ÀÎÅÍ·´Æ® Çڵ鷯³ª ÇÏ ¹ÝºÎ Çڵ鷯, ÀÛ¾÷Å¥·Î ó¸®µÉ ¶§´Â ÇöÀç ÇÁ·Î¼¼½º´Â ÀüÇô »ó°ü¾ø´Â ÇÁ·Î¼¼½º ÀÏ ¼ö ÀÖ ´Ù (ÀÛ¾÷Å¥¿¡¼­ tq_scheduler´Â ÀÎÅÍ·´Æ® ŸÀÓ¿¡¼­ 󸮵ÇÁö ¾Ê´Â´Ù). ±×·¡¼­ À̵é ó ¸® ·çƾ¿¡¼­´Â ÇöÀç ÇÁ·Î¼¼½º¿¡ ÀÇÁ¸ÇÒ ¼ö ¾ø´Ù. ¸®´ª½º Ä¿³Î¿¡¼­ current´Â ÇöÀç ÇÁ·Î ¼¼½ºÀÇ task_struct¸¦ °¡¸®Å²´Ù. (flyduck)

¿ªÁÖ 11) ¸®´ª½º Ä¿³ÎÀº ÀÌ¿Í °°Àº ÆäÀÌÁö ±â¹Ý ¸Þ¸ð¸® ÇÒ´ç(page-oriented memory allocation) ¸¸À» Áö¿øÇÑ´Ù. C¾ð¾îÀÇ malloc°°Àº ¸Þ¸ð¸® ÇÒ´çÀº ¼±Çü ¸Þ¸ð¸® ÇÒ´ç(linear memory allocation)À̶ó°í Çϴµ¥, ¸®´ª½º Ä¿³ÎÀº À̸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. (flyduck)

¿ªÁÖ 12) ÀÌ·¯ÇÑ ÀÏÀ» ÇÏ´Â ½Ã½ºÅÛ ÄÝÀº register_chrdev()·Î, ¿©±â¿¡´Â ÀåÄ¡ÀÇ ¸ÞÀÌÀú ¹øÈ£¿Í µð¹ÙÀ̽º µå¶óÀ̹öÀÇ À̸§, ±×¸®°í ÆÄÀÏ ¿¬»ê ºí·°ÀÌ Àü´ÞµÈ´Ù. include/linux/fs.h¿¡ ¼­ ÇÔ¼öÀÇ ÇÁ·ÎÅäŸÀÔ(prototype)À» º¼ ¼ö ÀÖ´Ù.(flyduck)

¿ªÁÖ 13) ÀÌ ÆÄÀÏ ¿¬»ê ºí·°À» ³ªÅ¸³»´Â ÀڷᱸÁ¶´Â file_operations·Î, ¿©±â¿¡´Â open, close, read, release °°Àº ±âº»ÀûÀÎ ¿¬»ê ¿Ü¿¡µµ lseek, ioctl, fsync µîÀÇ ¿©·¯ ¿¬»êµéÀÌ ´õ ÀÖ ´Ù. ÀÌ ÀڷᱸÁ¶´Â ºí·° ÀåÄ¡ÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö¿¡µµ »ç¿ëµÈ´Ù. (flyduck)

¿ªÁÖ 14) ÀÌ´Â ÆÄÀÏ ½Ã½ºÅÛ °´Ã¼¿¡ µû¶ó¼­ ´Ù¸¥ ¿¬»êÀ» Àû¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ¿©, ÆÄÀÌÇÁ³ª ¼Ò ÄÏ°°ÀÌ ¶È°°ÀÌ ÆÄÀÏ °´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ °¡ÁöÁö¸¸ ½ÇÁ¦·Î ´Ù¸¥ µ¿ÀÛÀ» ÇÏ´Â °ÍÀ» °¡´ÉÇÏ °Ô ÇÑ´Ù. (flyduck)

¿ªÁÖ 15) µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ µî·ÏÇÒ ¶§ Àü´ÞµÇ´Â file_operations ±¸Á¶Ã¼¿¡´Â ¹öÆÛ Ä³ ½Ã¿¡ °ü·ÃµÈ ÇÔ¼ö´Â ¾ø´Ù. ±×·¡¼­ ºí·° ÀåÄ¡¿ëÀ¸·Î º°µµÀÇ ÀڷᱸÁ¶°¡ ÇÊ¿äÇÏ°Ô µÇ¾î, ¹ö ÆÛ Ä³½Ã¿¡ °ü·ÃµÈ blk_dev_struct ±¸Á¶Ã¼¿Í ÀÌÀÇ ¹è¿­ÀÎ blk_dev°¡ Á¸ÀçÇÏ°Ô µÈ´Ù. ¹®ÀÚ ÀåÄ¡¿¡¼­¿Í ¸¶Âù°¡Áö·Î ºí·° ÀåÄ¡¸¦ µî·ÏÇÏ´Â ÇÔ¼öÀÎ register_blkdev()¿¡´Â ¸ÞÀÌÀú ¹øÈ£, À̸§, ±×¸®°í ÆÄÀÏ ¿¬»êÀÌ Àü´ÞµÇ¸ç, ¹öÆÛ Ä³½Ã¿¡ °ü·ÃµÈ ¼³Á¤Àº Á÷Á¢ blk_dev_struct ÀڷᱸÁ¶¿¡ ÀÖ´Â request_fn ÇÔ¼ö Æ÷ÀÎÅ͸¦ ÀÚ½ÅÀÇ °ÍÀ¸·Î ¼³Á¤ÇÔ À¸·Î½á ÀÌ·ç¾îÁø´Ù. (flyduck)

¿ªÁÖ 16) ÇÑ ½Ç¸°´õÀÇ Å©±â´Â ÇìµåÀÇ ¼ö * ¼½ÅÍÀÇ ¼ö * ¼½ÅÍ Å©±âÀ̹ǷΠ¿©±â¼­´Â 64 * 32 * 512 = 1048576, Áï 1MBÀÌ´Ù. (flyduck)

¿ªÁÖ 17) SCSI´Â ¿©±â¿¡ µð½ºÅ© ¿Ü¿¡µµ ½ºÄ³³Ê°°Àº ´Ù¸¥ ¿ÜºÎÀåÄ¡¸¦ ºÙÀÏ ¼ö ÀÖ´Â I/O ¹ö½º ±Ô°ÝÀÌÁö¸¸, IDE´Â ´ÜÁö µð½ºÅ©¸¦ À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÌ´Ù. (flyduck)

¿ªÁÖ 18) ¿ø¹®¿¡´Â Scsi_Cmd·Î µÇ¾î ÀÖÁö¸¸ Scsi_Cmnd°¡ ¸Â´Ù. (flyduck)

¿ªÁÖ 19) ¾Õ¿¡¼­ ¼³¸íÇÑ¹Ù¿Í °°ÀÌ ½ÇÁ¦·Î Á¦¾îÇÒ ÀåÄ¡°¡ ÀÖÀ» ¶§ À̸¦ µî·ÏÇÑ´Ù´Â °ÍÀÌ´Ù. (flyduck)

¿ªÁÖ 20) IP´Â ±âº»ÀûÀ¸·Î ½ÃÀÛÁÖ¼Ò Çϳª¿Í ¸ñÀûÁö ÁÖ¼Ò Çϳª¸¦ °¡Áö°í ÀÖ´Ù. Áï ¾î¶² °÷¿¡ ¼­ ´Ü ÇϳªÀÇ ¸ñÀûÁö·Î¸¸ IP ÆÐŶÀ» º¸³¾ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÌ´Â È­»óȸÀÇ°°ÀÌ °°Àº ÆРŶÀ» ¿©·¯ ¸ñÀûÁö·Î º¸³»´Â °æ¿ì Áߺ¹µÈ ³»¿ëÀ» ¼ö½ÅÇÏ´Â ¼ýÀÚ¸¸Å­ ¸ñÀûÁö¸¦ µû·Î ÁöÁ¤ ÇØ º¸³»¾ß ÇϹǷΠ¸¹Àº ´ë¿ªÆø(bandwidth)¸¦ Àâ¾Æ¸Ô°Ô µÈ´Ù. ÀÌ¿¡ µîÀåÇÑ IP ¸ÖƼij½ºÆ®´Â ¸ñÀûÁö¸¦ ¿©·¯ °÷À» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÏ¿© ÆÐŶÀ» Çϳª º¸³»¸é ÀÌ ÆÐŶ¿¡ ±â·ÏµÈ ¸ðµç ¸ñ ÀûÁö·Î ÆÐŶÀ» Àü¼ÛÇÏ°Ô ÇØ ÁÖ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. (flyduck)

¿ªÁÖ 21) ÀåÄ¡°¡ ÀÖÀ» °¡´É¼ºÀº ÀÖÁö¸¸ ¾ÆÁ÷ È®ÀÎÇÑ °ÍÀº ¾Æ´Ï±â¿¡ ÀáÀçÀûÀ¸·Î Á¸ÀçÇÑ´Ù. (flyduck)