´ÙÀ½ ÀÌÀü Â÷·Ê

2. Overview of Boot Prompt Arguments

ÀÌ ÀåÀº Ä¿³Î ±× ÀÚü¿¡°Ô ºÎÆ® ÀÎÀÚµéÀ» Àü´ÞÇØ ÁÖ´Â ¼ÒÇÁÆ®¿þ¾îÀÇ ¿©·¯ ¿¹µéÀ» º¸¿©ÁÙ °ÍÀÌ´Ù. ¾î¶»°Ô ÀÎÀÚµéÀÌ Ã³¸®µÇ´Â°¡ ¶ÇÇÑ ºÎÆ® ÀÎÀÚµéÀÇ ÇÑ°è´Â ¹«¾ùÀΰ¡ ±×¸®°í ¾î¶»°Ô °¢°¢ÀÇ ¿øÇß´ø ÀåÄ¡·ÎÀÇ Á¢±ÙÀÌ °¡´ÉÇÑÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. ºÎÆ®ÀÎÀÚ¿¡ ½ºÆäÀ̽º°¡ »ç¿ë ¾ÈµÇµµ·Ï ¾ÆÁÖ ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ´ÜÀÏ ÀÎÀÚµé Àº ±× °ªµéÀ» ³ª¿­ÇÏ¸ç ¿©·¯ ÀÎÀÚµéÀº ½ºÆäÀ̽º ¾øÀÌ ÄÞ¸¶·Î ºÐ¸®µÈ´Ù. ¾Æ·¡ À̾îÁö´Â ¿¹µéÀ» º¸¶ó


 ether = 9,0x300,0xd0000,0xd4000,eth0  root=/dev/hda1          *RIGHT*
 ether = 9, 0x300, 0xd0000, 0xd4000, eth0  root = /dev/hda1    *WRONG*

2.1 LILO (LInux LOader)

Werner Almesberger°¡ ¸¸µç LILO(LInux LOader)´Â ¸Å¿ì ÀϹÝÀûÀ¸·Î »ç¿ëµÈ ´Ù. ÀÌ°ÍÀº ¿©·¯ Ä¿³ÎµéÁß¿¡ Çϳª·Î ºÎÆÃÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ·± Á¤º¸¸¦ º¸Åë ÅؽºÆ®·Î ÀúÀåÇÑ´Ù. ´ëºÎºÐÀÇ ¹èÆ÷ÆÇ¿¡¼­´Â ±âº»ÀûÀÎ ºÎÆ®·Î´õ·Î¼­ LILO°¡ »ç¿ëµÈ´Ù. LILO´Â DOS, OS/2, Linux, FreeBSD µîÀ» º° ¾î·Á¿ò ¾øÀÌ ºÎÆÃÇÒ ¼ö ÀÖÀ¸¸ç ¸Å¿ì À¶Å뼺ÀÌ ÀÖ´Ù.

ÀüÇüÀûÀΠȯ°æ¼³Á¤À̶ó¸é LILO´Â ¸ØÃ߾ "LILO" ¸¦ Ãâ·ÂÇÒ °ÍÀÌ´Ù. °£´Ü È÷ ¸»ÇÏ¸é ´ç½ÅÀÌ ÄÄÇ»Å͸¦ ÄÒÈÄ¿¡ ÄÄÇ»ÅÍ´Â »ç¿ëÀڷκÎÅÍ ¿É¼ÇÀ» ÀÔ·Â ¹Þ ±â À§ÇÏ¿© ¸îÃÊ µ¿¾È ±â´Ù¸°´Ù. ÀϹÝÀûÀÎ ½Ã½ºÅÛÀº LILO configurationÆÄÀÏ À» ÀÌ¿ëÇÏ¿© "linux", "backup", "msdos"¶ó´Â ¶óº§µéÀ» »ç¿ëÇÑ´Ù. ºÎÆ® ÀÎÀÚ µéÀ» ³ÖÀ¸·Á ÇÑ´Ù¸é ´ç½ÅÀÌ ºÎÆ®Çϱ⠿øÇÏ´Â ½Ã½ºÅÛ ¶óº§À» ÀÔ·ÂÇÑ ÈÄ¿¡ ¾Æ ·¡ÀÇ ¿¹Ã³·³ ÀÔ·ÂÇ϶ó.


        LILO: linux root=/dev/hda1

¿©±â¼­ ³íÀÇµÈ ºÎÆ® ÀÎÀڵ鿡 °üÇؼ­´Â LILO¿Í ÇÔ²² ¿À´Â ¹®¼­°¡ ¾ÆÁÖ ÈÇ·æ ÇÏ´Ù. LILO ¿¡¼­ÀÇ append= ÀÇ ¸í·ÉÀº ºÎÆ®½Ã¿¡ ÀÎÀÚµéÀ» LILO ¼³Á¤ ÆÄÀÏ¿¡ ¿µ±¸ÀûÀ¸·Î Ãß°¡Çϴµ¥ ¾ÆÁÖ Áß¿äÇÏ´Ù. ´ç½ÅÀº °£´ÜÇÏ°Ô append= "foo_bar" ¿Í °°Àº Çü½ÄÀ¸·Î /etc/lilo.conf ÆÄÀÏ¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¼³Á¤ ÆÄ ÀÏ Ã³À½¿¡ Ãß°¡µÇ¾î ¸ðµç ¼½¼Ç¿¡ ¿µÇâÀ» ÁÖ°Ô ÇÒ ¼öµµ ÀÖ°í "image=" ¼½¼Ç ¾È¿¡ Ãß°¡µÇ¾î ´ÜÀÏ ¼½¼Ç¿¡ ¿µÇâÀ» ÁÙ ¼öµµ ÀÖ´Ù. ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº LILO¹® ¼­¸¦ º¸¶ó.

2.2 LoadLin

´Ù¸¥ ºÎÆ® ·Î´õ·Î´Â ÀÚ¿øµéÀÌ È®½ÇÇÏ´Ù´Â °¡Á¤À» ÇÏ°í µµ½º ÇÁ·ÒÇÁÆ®·ÎºÎÅÍ ¸®´ª½º Ä¿³ÎÀ» ÀÛµ¿½ÃÅ°´Â(ºÎÆ® ÀÎÀÚµé Æ÷ÇÔ) ´É·ÂÀ» °¡Áø LoadLin À̶ó´Â µµ½º ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. µµ½º¸¦ »ç¿ëÇÏ¸ç µµ½º·ÎºÎÅÍ ¸®´ª½º¸¦ ½ÃÀÛÇϱ⸦ ¿øÇÏ´Â »ç¶÷¿¡°Ô´Â ÁÁÀº ÇÁ·Î±×·¥ÀÌ´Ù.

¸¸¾à¿¡ ´ç½ÅÀÌ Çϵå¿þ¾î¸¦ ¾Ë·ÁÁø »óÅ·ΠµÎ´Â °ÍÀ» Áö¿øÇÏ´Â µµ½º µå¶óÀÌ ¹ö¿¡ ±â¹ÝÇÑ Çϵå¿þ¾î¸¦ °¡Áö°í ÀÖ´Ù¸é ÀÌ ÇÁ·Î±×·¥Àº ¸Å¿ì À¯¿ëÇÏ´Ù. ¿¹¸¦ µé¸é »çºí ȣȯ¸ðµå·Î µÎ±â À§ÇØ ¾à°£ÀÇ ·¹Áö½ºÅ͵éÀ» Á¶ÀÛÇÏ´Â µµ½º µå¶ó À̹ö¸¦ ¿ä±¸ÇÏ´Â `SoundBlaster Compatible' »ç¿îµåÄ«µå¸¦ °¡Áö°í ÀÖ´Ù¸é ÀÌ °æ¿ì¿¡ ÇØ´çÇÑ´Ù. ÁÖ¾îÁø µå¶óÀ̹ö¿Í ÇÔ²² µµ½º·Î ºÎÆÃÇÑÈÄ¿¡ ½Ã½ºÅÛÀ» rebootÇÔÀ¸·Î½á Ä«µå¿¡ ¼³Á¤µÈ »óȲÀ» Àоî¹ö¸®´Â °æ¿ì ¾øÀÌ µµ½º ÇÁ·ÒÇÁÆ® ¿¡¼­ ¸®´ª½º¸¦ ¹Ù·Î ¿Ã¸± ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ¿© »çºí ȣȯ Ä«µå´Â ¸®´ª½º ÇÏ¿¡¼­µµ ±× ¸ðµå¸¦ À¯ÁöÇÑ´Ù.

¸®´ª½º¸¦ ºÎÆ®Çϴµ¥ »ç¿ëÇÏ´Â ´Ù¸¥ ÇÁ·Î±×·¥µµ ÀÖÁö¸¸ ¿Ïº®ÇÑ ¸®½ºÆ®´Â ´ç ½ÅÀÇ Áö¿ª Linux ftp ¹Ì·¯ÀÇ system/Linux-boot/. ¹ØÀ» º¸¶ó.

2.3 The ``rdev'' utility

Ä¿³Î À̹ÌÁö ¾È¿¡ ¿©·¯ ¹ÙÀÌÆ®·Î¼­ ÀúÀåµÇ¾î µðÆúÆ® °ªµéÀ» °¡Áö°í ÀÖ´Â ºÎ Æ® ÀÎÀÚµéÀº ±×¸® ¸¹Áö ¾Ê´Ù. ÀÌ·¯ÇÑ °ªµéÀÌ ¾îµð¿¡ ÀÖ´ÂÁö ¶Ç ÀÌµé °ªµéÀ» ¾î¶»°Ô ¹Ù²Ù´ÂÁö ¾Ë°í ÀÖ´Â ´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡´Â rdev ¶ó´Â À¯Æ¿¸®Æ¼°¡ ÀνºÅç µÇ¾î ÀÖ´Ù. ÀÌ´Â ±âº»ÀûÀÎ ºñµð¿À ¸ðµå¿Í °°ÀÌ Ä¿³Î ºÎÆ® ÀÎÀڷδ ÀûÇÕÇÏÁö ¾ÊÀº °ÍµéÀ» ¹Ù²Ü ¼ö ÀÖ´Ù.

rdev À¯Æ¿¸®Æ¼´Â ´ë°Ô swapdev, ramsize, vidmode ±×¸®°í rootflagsµé·Î ´Ù ¸£°Ô ºÒ¸®±âµµ ÇÑ´Ù. °Å±â¿£ rdev°¡ º¯°æÇÒ ¼ö ÀÖ´Â root device, swap device, RAM µð½ºÅ© parameter µðÆúÆ® ºñµð¿À ¸ðµå ±×¸®°í root deviceÀÇ ÀбâÀü¿ë ¾Æ´Ï¸é Àаí/¾²±â¸ðµåÀÇ 5°¡Áö°¡ ÀÖ´Ù. rdev¿¡ °üÇÑ Á»´õ ¸¹Àº ÀÚ·á´Â rdev -h À» »ç¿ëÇϰųª °ü·ÃµÈ ¸Ç ÆäÀÌÁö ¸¦ º¸¶ó(man rdev¸¦ »ç¿ë)

2.4 How the Kernel Sorts the Arguments

´ëºÎºÐÀÇ ºÎÆ® ÀÎÀÚµéÀÌ °¡Áö´Â ÇüÅÂ:


        name[=value_1][,value_2]...[,value_11]

name ºÎºÐÀº Ä¿³Î¿¡ °ü·ÃµÇ¾î »ç¿ëµÇ´Â À¯ÀÏÇÑ Å°¿öµåÀÌ´Ù. ¸ÖƼ ºÎÆ® ÀÎÀÚ µéÀº À§ÀÇ ÇüŸ¦ °¡Áö¸ç ½ºÆäÀ̽º·Î ±¸ºÐµÈ´Ù. À̵éÀÌ 11°³·Î Á¦ÇѵǾî ÀÖ ´Ù´Â °ÍÀ» ÁÖÀÇ Ç϶ó. À̵éÀº Å°¿öµå´ç ÄÞ¸¶·Î ºÐ¸®µÈ 11°³ÀÇ parameterµé ¸¸À» Çã¿ëÇÑ´Ù. (¾î¶»µç ´ç½ÅÀº setup ÇÔ¼ö°¡ ±×°ÍÀ» Áö¿øÇÑ´Ù´Â °¡Á¤ÇÏ¿¡ ¸Å¿ì º¹ÀâÇÑ »óȲ¿¡¼­ °°Àº Å°¿öµå¸¦ °¡Áö°í 11°³ÀÇ parameterµéÀ» Àç »ç¿ë ÇÒ ¼ö ÀÖ´Ù.) ¶ÇÇÑ Ä¿³ÎÀº ¸®½ºÆ®¸¦ ÃÖ´ë ¿­°³ÀÇ Á¤¼ö ÀÎÀÚ¿Í À̾îÁö´Â ½ºÆ®¸µ À¸·Î ³ª´«´Ù. ±×·¡¼­ ´ç½ÅÀº ½ÇÁ¦·Î µå¶óÀ̹ö ±× ÀÚü¿¡¼­ 11°³ÀÇ ÀÎÀÚµéÀ» ¹®ÀÚ¿­¿¡¼­ Á¤¼ö·Î º¯È¯½ÃÅ°Áö ¾Ê°í´Â °ø±ÞÇÒ ¼ö ¾ø´Ù.

´ëºÎºÐ ÀÎÀÚµéÀº linux/init/main.c¿¡ ÀÖ´Ù. ù°·Î, Ä¿³ÎÀº ÀÎÀÚ°¡ `root=', `ro', `rw', or `debug'¿Í °°Àº Ưº°ÇÑ ÀÎÀÚÀΰ¡¸¦ °Ë»çÇÑ´Ù. ÀÌ·± Ưº°ÇÑ ÀÎÀÚµéÀº ÀÌ ¹®¼­ Àú µÚ¿¡¼­ ¼­¼úÇÑ´Ù.

Ưº°ÇÑ ÀÎÀÚ ¹®ÀÚ¿­(`foo' °°ÀÌ)ÀÌ setup function(foo_setup())¿¡ ¿¬°áµÇ ¾î ÀÖ´ÂÁö¸¦ º¸±â À§ÇÏ¿© ÀÌÈÄ ÀåÄ¡³ª Ä¿³ÎÀÇ ÀϺκÐÀ¸·Î ±¸ºÐµÈ setup finctions (bootsetups ¹è¿­À» Æ÷ÇÔÇÏ´Â)µéÀÇ ¸ñ·Ïµé·Î Á¦¾î¸¦ ¿Å±ä´Ù. Ä¿³Î¿¡°Ô foo=3,4,5,6,bar À̶ó´Â ¶óÀÎÀ» Àü¼ÛÇß´Ù¸é Ä¿³ÎÀº `foo' °¡ µî·ÏµÇ ¾î ÀÖ´ÂÁö¸¦ º¸±â À§ÇÏ¿© bootsetups ¹è¿­À» °Ë»öÇÑ´Ù. ÀÖ´Ù¸é `foo'(foo_setup())¿¡ ¿¬°áµÇ¾î ÀÖ´Â setup functionÀ» ½ÇÇà ½ÃÅ°°í ¿©±â¿¡ Ä¿³Î ¸í·ÉÇà¿¡ ÁÖ¾îÁø °Íó·³ Á¤¼öÀÎÀÚ 3, 4, 5±×¸®°í 6 À» Àü´ÞÇÏ°í ¶ÇÇÑ ¹®ÀÚ¿­ ÀÎÀÚÀÎ barµµ °Ç³× ÁÙ °ÍÀÌ´Ù.

2.5 Setting Environment Variables.

À§¿¡¼­ ¸»ÇÑ setup functionÀ¸·Î ÇÏ¿©±Ý Çã¿ëµÇÁö ¾Ê´Â `foo=bar'°ú °°Àº ÇüÅ´ ¾î´À °ÍÀÌµç °ªÀ» °¡Áø ȯ°æº¯¼ö·Î º¯È¯µÈ´Ù. `TERM=vt100'¿Í °°Àº ºÎÆ® ÀÎÀÚ°¡ ±× ÇÑ ¿¹ÀÌ´Ù.

2.6 Passing Arguments to the `init' program

Ä¿³Î¿¡¼­µµ ¼³Á¤µÇÁö ¾Ê°í ȯ°æº¯¼ö·Îµµ ÀÎÅÍÇÁ¸®ÅÍ µÇÁö ¾ÊÀº ³²Àº ÀÎÀÚµé Àº ÀϹÝÀûÀ¸·Î init¶ó°í ºÎ¸£´Â process¿¡ Àü´ÞµÈ´Ù. ´ëºÎºÐÀÇ ÀϹÝÀûÀÎ ÀÎÀÚµé Áï, init process¿¡ Àü´ÞµÈ ´ëºÎºÐÀÇ ÀϹÝÀûÀÎ ÀÎÀÚ´Â ´ÜÀÏ »ç¿ëÀÚ ¸ðµå·Î ÄÄÇ»Å͸¦ ºÎÆÃÇÏ´Â °ÍÀ» °¡¸®Å°´Â ÇϳªÀÇ ´Ü¾îÀ̸ç ÀÌ°ÍÀº Æò»ó½ÃÀÇ ¸ðµç µ¥¸óÀ» ÀÛµ¿½ÃÅ°Áö´Â ¾Ê´Â´Ù. ¾î¶² ÀÎÀÚµéÀÌ Çã¿ëµÇ´Â °¡¸¦ º¸±â À§Çؼ­ ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ init¹öÁ¯ÀÇ ¸Þ´º¾ó ÆäÀÌÁö¸¦ Á¡°ËÇ϶ó.


´ÙÀ½ ÀÌÀü Â÷·Ê