ÀûÀç°¡´ÉÇÑ Ä¿³Î ¸ðµâµéÀº ±¸¼ºÇϱ⠽±°í ¸Þ¸ð¸®¸¦ Àý¾àÇÒ ¼ö ÀÖ´Ù. ¸ðµâÀÇ ¹üÀ§´Â ÆÄÀÏ ½Ã½ºÅÛµé, ÀÌ´õ³Ý Ä«µå µå¶óÀ̹öµé, Å×ÀÌÇÁ µå¶óÀ̹öµé, ÇÁ¸°ÅÍ µå¶óÀ̹öµé°ú ´õ¿í ¸¹Àº °ÍµéÀ» Æ÷ÇÔÇØ °¡°í ÀÖ´Ù.
¸ðµâ À¯Æ¿¸®Æ¼´Â ¿©·¯ºÐÀÌ Ä¿³Î ¼Ò½º¸¦ °¡Á®¿Â °÷ÀÌ¸é ¾îµðµçÁö
modules-x.y.z.tar.gz
À» °¡Á®¿À´Â °ÍÀÌ °¡´ÉÇÏ´Ù. °¡Àå ³ôÀº ÆÐÄ¡·Î ¿©·¯ºÐÀÇ
ÇöÀç Ä¿³Îº¸´Ù ³·°Å³ª °°Àº x.y.z
¸¦ ¼±ÅÃÇÑ´Ù. `tar zxvf modules-x.y.z.tar.gz
'
À¸·Î Ç®°í, ±×°ÍÀÌ ¸¸µç µð·ºÅ丮(modules-x.y.z
)·Î µé¾î°¡¼ README
ÆÄÀÏÀ»
Àаí, ±× ¼³Ä¡ ¼³¸í(º¸Åë make install
ó·³ ¸Å¿ì °£´ÜÇÑ)´ë·Î µû¸¥´Ù. ¿©·¯ºÐ
Àº ÀÌÁ¦ /sbin
¿¡ insmod
, rmmod
, ksyms
, lsmod
, genksyms
, modprobe
, ±×¸®°í
depmod
¶ó´Â ÇÁ·Î±×·¥µéÀ» °¡Áö°Ô µÇ¾úÀ» °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é, insmod
¿¡ ÀÖ´Â ``hw
''¶ó´Â ¿¹Á¦ µå¶óÀ̹ö·Î À¯Æ¿¸®Æ¼¸¦ Å×½ºÆ®ÇØ º¼ ¼ö ÀÖ´Ù. ÀÚ¼¼ÇÑ
°ÍÀº ±× ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â INSTALL
À̶ó´Â ÆÄÀÏÀ» º¸¾Æ¶ó.
insmod
´Â ¸ðµâÀ» ÇöÀç ½ÇÇàÁßÀÎ Ä¿³Î¾È¿¡ »ðÀÔÇÏ´Â °ÍÀÌ´Ù. ¸ðµâµéÀº º¸Åë .o
È®ÀåÀÚ¸¦ °®´Â´Ù. À§¿¡¼ ¾ð±ÞÇÑ ¿¹Á¦ µå¶óÀ̹ö´Â drv_hello.o
À̹ǷÎ, ±×°ÍÀ»
»ðÀÔÇϱâ À§Çؼ´Â, `insmod drv_hello.o
'¶ó°í ÇؾßÇÑ´Ù. Ä¿³ÎÀÌ ÇöÀç »ç¿ëÁßÀÎ
¸ðµâÀ» º¸±â À§Çؼ´Â lsmod
¸¦ »ç¿ëÇÑ´Ù. ±× °á°ú´Â ´ÙÀ½°ú °°´Ù.
blah# lsmod Module: #pages: Used by: drv_hello 1
`drv_hello
'´Â ¸ðµâÀÇ À̸§ÀÌ°í, ¸Þ¸ð¸®ÀÇ ÇÑ ÆäÀÌÁö(4k)¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. ±×
¸®°í ±× ¼ø°£¿¡´Â ´Ù¸¥ Ä¿³Î ¸ðµâÀº ¾ø´Ù. ÀÌ ¸ðµâÀ» Á¦°ÅÇϱâ À§Çؼ´Â
`rmmod drv_hello
'¸¦ »ç¿ëÇÑ´Ù. rmmod
´ÙÀ½¿¡´Â ÆÄÀÏ À̸§ÀÌ ¾Æ´Ï¶ó ¸ðµâÀ̸§
À» »ç¿ëÇÔÀ» ÁÖÀÇÇ϶ó. ¿©·¯ºÐÀÇ ÀÌ°ÍÀ» lsmod
ÀÇ ¸ñ·ÏÀ¸·ÎºÎÅÍ ¾òÀ» ¼ö ÀÖ´Ù.
´Ù¸¥ ¸ðµâ À¯Æ¿¸®Æ¼ÀÇ ¸ñÀûÀº ±×µéÀÇ ¸Å´º¾ó ÆäÀÌÁö¿¡ ÀûÇôÀÖ´Ù.
¹öÀü 2.0.30ÀÇ ¿¹¸¦ µéÀÚ¸é, ¸¹Àº ÆÄÀÏ ½Ã½ºÅÛµé°ú, ¾à°£ÀÇ SCSI µå¶óÀ̹öµé,
¸î°³ÀÇ ÀÌ´õ³Ý ¾Æ´äÅÍ µå¶óÀ̹öµé, ±×¸®°í ³ª¸ÓÁö ´Ù¸¥°ÍµéÀº ¸ðµâ·Î¼ ÀûÀçÇÒ
¼ö ÀÖ´Â °ÍÀÌ´Ù. ±×µéÀ» »ç¿ëÇϱâ À§Çؼ´Â, ¿ì¼± ¿ì¼± ±×µéÀ» ÇöÀç Ä¿³Î¿¡ ±¸
¼ºÇÏ¿© ³ÖÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇ϶ó. ÀÌ°ÍÀº `make config
'ÇÏ´Â µ¿¾È¿¡ y
¶ó°í ÇÏÁö
¾ÊÀº °ÍÀ» ¸»ÇÑ´Ù. »õ Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ°í ÀçºÎÆÃÇ϶ó. ±×¸®°í ³ª¼, ´Ù½Ã
/usr/src/linux
·Î µé¾î°¡¼, `make modules
'¸¦ Ä£´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ Ä¿³Î¾È
¿¡ ±¸¼ºÇÏ¿© Áý¾î³ÖÁö ¾ÊÀº ¸ðµâµéÀ» ¸ðµÎ ÄÄÆÄÀÏÇÏ°í,/usr/src/linux/modules
¾È¿¡ ¸µÅ©½ÃÅ°´Â °ÍÀÌ´Ù. ¿©·¯ºÐÀº ±× µð·ºÅ丮¿¡¼ Á÷Á¢ »ç¿ëÇÒ ¼ö µµ ÀÖ°í,
`make modules_install
'À» ½ÇÇàÇÏ¿© /lib/modules/x.y.z
¿¡ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.
¿©±â¼ x.y.z
´Â Ä¿³Î ¹öÀü ¹øÈ£ÀÌ´Ù.
ÀÌ°ÍÀº ƯÈ÷ ÆÄÀÏ ½Ã½ºÅ۵鿡 ¾Ë¸Â´Ù. ¿©·¯ºÐÀº ¾Æ¸¶ minix³ª msdos ÆÄÀÏ ½Ã½º
ÅÛÀº ÀÚÁÖ »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¸é, ¸¸¾à ³»°¡ msdos Ç÷ÎÇǸ¦ »ç¿ëÇÏ
°Ô µÈ´Ù¸é, ³ª´Â /usr/src/linux/modules/msdos.o
¸¦ Ä¿³Î·Î Áý¾î³Ö°í(insmod
),
³¡³ª¸é rmmod msdos
ÇÏ¸é µÈ´Ù. ÀÌ °úÁ¤Àº º¸Å붧 Ä¿³ÎÀÇ RAM »ç¿ë·®À» 50kÁ¤µµ
ÁÙ¿©ÁØ´Ù. minix ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¶§ ¾Ë¾ÆµÎ¾î¾ß ÇÒ °ÍÀº, ÀÌ°ÍÀ»
``±ä±Þ º¹±¸'' µð½ºÅ©¿¡ »ç¿ëÇϱâ À§Çؼ´Â Ç×»ó
Ä¿³Î¿¡ Á÷Á¢ ±¸¼ºÇÏ¿© ³Ö¾ß
ÇÑ´Ù.