From Power Up To Bash Prompt
Greg O'Keefe, gcokeefe@postoffice.utas.edu.au
v0.9a, November 2000
ȲÁØÇü, envia@kaist.ac.kr
¹ø¿ªÀ» ÇÏ´Â Áß°£¿¡ ô¶Ó©ë®ÞÉ´ÔÀÇ ÀϺ»¾î ¹ø¿ªÆÇÀ» Âü°íÇÏ¿´½À´Ï´Ù. ¿À·ù°¡ ÀÖ´Ù¸é Àú¿¡°Ô ¿¬¶ôÇϽðųª À§Å°ÀÇ Æ¯Â¡À» ÀÌ¿ëÇÏ¿© ¸»¾øÀÌ°íÄ¡±â¸¦ ÀÌ¿ëÇØ Áֽñ⠹ٶø´Ï´Ù. ¶ÇÇÑ ÀÌ ¹®¼ÀÇ ³»¿ëÀº ²Ï ¿À·¡ µÇ¾úÀ¸¸ç Á¦°¡ ½ÃÇèÇØ º¸Áö ¾Ê¾Ò±â ¶§¹®¿¡ µ¿ÀÛÇÏÁö ¾Ê´Â °Íµµ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¹®¼´Â Àü¿øÀ» ÄÓ ¶§ºÎÅÍ ·Î±×ÀÎÇÏ°í ¹è½Ã ÇÁ·ÒÇÁÆ®°¡ ¶ã ¶§±îÁö ¸®´ª½º ½Ã½ºÅÛ¿¡¼ ¹«½¼ ÀÏÀÌ ÀϾ´ÂÁö¸¦ °£·«È÷ ¼³¸íÇÕ´Ï´Ù. ÀÌ°ÍÀ» ÀÌÇØÇÏ´Â °ÍÀº ¿©·¯ºÐÀÌ ¹®Á¦¸¦ ÇØ°áÇϰųª ½Ã½ºÅÛÀ» ¼³Á¤ÇÒ ¶§ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.
1. ¼Ò°³ ¶Àú´Â Á¦ ¸®´ª½º ¸Ó½Å¿¡¼ Á¦°¡ ÀÌÇØÇÏÁö ¸øÇÑ ¸¹Àº ÀϵéÀÌ ÀϾٴ °ÍÀ» ºÒ¸¸½º·¯¿ö ÇÕ´Ï´Ù. ¿©·¯ºÐµµ Àú¿Í °°ÀÌ ±×Àú ½Ã½ºÅÛÀÇ »ç¿ë¹ýÀ» ¾Ë°í ½ÍÀ¸½Ç »Ó¸¸ÀÌ ¾Æ´Ï¶ó ÁøÂ¥·Î ½Ã½ºÅÛÀ» ÀÌÇØÇÏ°í ½Í¾îÇϽŴٸé, ÀÌ ¹®¼´Â ÁÁÀº Ãâ¹ßÁ¡ÀÌ µÉ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ÃÖ°í ¼öÁØÀÇ ¸®´ª½º ¹®Á¦ ÇØ°á»ç°¡ µÇ°í ½ÍÀ» ¶§¿¡µµ ÀÌ·¯ÇÑ Á¾·ùÀÇ ¹è°æ Áö½ÄÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.
Àú´Â ¿©·¯ºÐÀÌ µ¿ÀÛÇÏ´Â ¸®´ª½º ¹Ú½º¸¦ °¡Áö°í ÀÖ°í, À¯´Ð½º¿Í PC Çϵå¿þ¾î¿¡ ´ëÇÑ ±âº»ÀûÀÎ °ÍµéÀ» ÀÌÇØÇÏ°í ÀÖ´Ù°í °¡Á¤ÇÏ°Ú½À´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, Eric S. RaymondÀÇ The Unix and Internet Fundamentals HOWTOºÎÅÍ ¹è¿ì½Ã´Â °ÍÀÌ °ÍÀÌ ¸Å¿ì ¹Ù¶÷Á÷ÇÕ´Ï´Ù. ÀÌ ±ÛÀº ª°í, ¸Å¿ì Àб⠽¬¿ì¸ç, ¸ðµç ±âÃʸ¦ ´Ù·ç°í ÀÖ½À´Ï´Ù.
¸®´ª½º ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ °úÁ¤ÀÌ ÀÌ ¹®¼ÀÇ ÁÖÁ¦ÀÔ´Ï´Ù. ±×·¸Áö¸¸ Á» ´õ Æ÷°ýÀûÀÎ ÇнÀ ÀÚ·á·Îµµ ¾²ÀÏ ¼ö ÀÖµµ·Ï ³ë·ÂÇÏ¿´½À´Ï´Ù. °¢ Àý(section)¸¶´Ù ¿¬½À ¹®Á¦µéÀ» Æ÷ÇÔÇÏ¿´½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÌ ±×°ÍµéÀ» ½ÇÁ¦·Î ÇØ º»´Ù¸é, ´Ü¼øÈ÷ ÀÐÀ¸¼ÌÀ» ¶§ ¹è¿ï ¼ö ÀÖ´Â °Íº¸´Ù ¸¹Àº °ÍÀ» ¹è¿ì½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
Á¦°¡ ¾Æ´Â ÇÑ ¸®´ª½º¸¦ ¹è¿ï ¶§ ÇÒ ¼ö ÀÖ´Â °¡Àå ÁÁÀº ¿¬½ÀÀº ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °ÍÀ̸ç, Àú´Â µ¶ÀںеéÀÌ ±×°ÍÀ» ÇØ º¸¼ÌÀ¸¸é ÇÕ´Ï´Ù. ÀÌÅ»¸®¾ÆÀÇ Ã¶ÇÐÀÚÀÎ Giambattista Vico (1668-1744)´Â "ÀÌÇØ´Â ¸¸µê¿¡¼ ±â¿øÇÑ´Ù(understanding arises through making)"´Â ¶æÀÎ "verum ipsum factum"À̶ó´Â ¸»À» ³²°å½À´Ï´Ù. ÀÌ ±¸ÀýÀ» °¡¸£ÃÄÁØ Alex(°¨»ç¸¦ º¸½Ê½Ã¿À.)¿¡°Ô °¨»çÇÕ´Ï´Ù.
¸¸¾à ¿©·¯ºÐÀÌ ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ¿© "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®°íÀÚ(roll your own)" ÇÑ´Ù¸é, Gerard BeekmansÀÇ Linux From Scratch HOWTO (LFS)¸¦ º¸¾Æ¾ß ÇÒ °ÍÀÔ´Ï´Ù. LFS¿¡´Â ¼Ò½º ÄÚµå·ÎºÎÅÍ ¿ÏÀüÈ÷ »ç¿ë°¡´ÉÇÑ ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °Í¿¡ °üÇÑ ÀÚ¼¼ÇÑ Áö½Ã»çÇ×µéÀÌ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº LFS À¥»çÀÌÆ®¿¡¼ ½Ã½ºÅÛÀ» ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ±¸ÃàÇÏ°íÀÚ ÇÏ´Â »ç¶÷µéÀ» À§ÇÑ ¸ÞÀϸµ ¸®½ºÆ®µµ ãÀ» ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. LFSÀÇ ÀϺΠÁö½Ã »çÇ×µéÀº Áö±Ý µ¶¸³µÈ ¹®¼ÀÎ "How To Build a Minimal Linux System from Source Code"°¡ µÇ¾úÀ¸¸ç, ¿©·¯ºÐÀº ÀÌ°ÍÀ» From PowerUp to Bash Prompt home page¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ±×°ÍµéÀº ¼ø¼öÇÏ°Ô ¹è¿ì±â À§ÇÑ ¿¬½ÀÀ¸·Î¼ "Àå³°¨(toy)" ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í ÀÖ´Ù.
²Ù·¯¹Ì(package)µéÀº ½Ã½ºÅÛÀÌ ½ÃÀÛÇÏ´Â °úÁ¤¿¡¼ ³ªÅ¸³ª´Â ¼ø¼´ë·Î ¼Ò°³µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ²Ù·¯¹ÌµéÀ» ¹®¼¿¡ ³ª¿Â ¼ø¼´ë·Î ¼³Ä¡Çϸé, °¢°¢ÀÇ ¼³Ä¡°¡ ³¡³¯ ¶§¸¶´Ù ÀçºÎÆÃÀ» ÇÒ ¼ö ÀÖ°í, ±× ¶§¸¶´Ù ½Ã½ºÅÛÀº ¹è½Ã ÇÁ·ÒÇÁÆ®¸¦ º¸¿©ÁÖ´Â »óÅ¿¡ Á» ´õ °¡±î¿öÁø´Ù´Â °ÍÀ» ¶æÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸éÀ» ÅëÇؼ »óȲÀÌ ÁøÀüµÇ°í ÀÖ´Ù´Â È®½ÅÀ» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Àú´Â ¿©·¯ºÐÀÌ Ã³À½ ÀÐÀ» ¶§¿¡´Â ¿¬½À ¹®Á¦³ª Âü°í ÀÚ·áµéÀ» °Ç³Ê¶Ù¸é¼ °¢ Àý(section)ÀÇ º»¹®À» Àб⸦ ±ÇÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡ ¾ó¸¶³ª ±í°Ô ÀÌÇØÇÏ°í ½ÍÀºÁö, ¾ó¸¶³ª ¸¹ÀÌ ³ë·ÂÇÒ Áغñ°¡ µÇ¾ú´ÂÁö °áÁ¤ÇϽʽÿÀ. ±× ´ÙÀ½¿¡ ´Ù½Ã óÀ½À¸·Î µ¹¾Æ¿Í¼, ¿¬½À ¹®Á¦¸¦ Ǫ½Ã°í, Âü°í ÀÚ·áµéµµ ÀÐÀ¸½Ã¸é¼ ´Ù½Ã ½ÃÀÛÇϽʽÿÀ.
2. Çϵå¿þ¾î ¶¿©·¯ºÐÀÌ Ã³À½À¸·Î ÄÄÇ»Å͸¦ ÄÑ°Ô µÇ¸é ÄÄÇ»ÅÍ´Â ÀÚ±â ÀÚ½ÅÀ» Å×½ºÆ®Çؼ ¸ðµç °ÍµéÀÌ Àß ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇÕ´Ï´Ù. ÀÌ °úÁ¤Àº "Power on self test"¶ó°í ºÒ¸³´Ï´Ù. ±× ´ÙÀ½¿¡ ROM BIOS¿¡ ÀÖ´Â "ºÎÆ®½ºÆ®·¦ ·Î´õ(bootstrap loader)"¶ó´Â ÇÁ·Î±×·¥ÀÌ È£ÃâµÇ¾î ºÎÆ® ¼½Å͸¦ ã½À´Ï´Ù. ºÎÆ® ¼½ÅÍ´Â µð½ºÅ©ÀÇ Ã¹¹ø° ¼½Åͷμ ¿î¿µÃ¼Á¦¸¦ ÀÐÀ» ¼ö ÀÖ´Â ÀÛÀº ÇÁ·Î±×·¥ÀÌ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù. ºÎÆ® ¼½ÅÍ´Â 0x1FE = 510 ¹ÙÀÌÆ® À§Ä¡¿¡ ¸ÅÁ÷ ³Ñ¹ö(magic number) 0xAA55 = 43603 ÀÌ ÀÖ´Â °ÍÀ¸·Î ±¸ºÐµË´Ï´Ù. ÀÌ°ÍÀº ¼½ÅÍÀÇ ¸¶Áö¸· µÎ ¹ÙÀÌÆ® ÀÔ´Ï´Ù. À̸¦ ÅëÇؼ Çϵå¿þ¾î´Â ¾î¶² ¼½ÅÍ°¡ ºÎÆ® ¼½ÅÍÀÎÁö ¾Æ´ÑÁö¸¦ ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ºÎÆ®½ºÆ®·¦ ·Î´õ´Â ºÎÆ® ¼½Å͸¦ ãÀ» Àå¼ÒµéÀÇ ¸ñ·ÏÀ» °¡Áö°í ÀÖ½À´Ï´Ù. Á¦ ¿À·¡µÈ ±â°è´Â ù¹ø°(primary) Ç÷ÎÇÇ µå¶óÀ̺ê¿Í ù¹ø°(primary) ÇÏµå µð½ºÅ©¸¦ ã¾Ò½À´Ï´Ù. ÃÖ±ÙÀÇ ±â°èµéÀº CD ROM¿¡¼µµ ºÎÆ® ¼½Å͸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ºÎÆ®½ºÆ®·¦ ·Î´õ°¡ ºÎÆ® ¼½Å͸¦ ãÀ¸¸é, ºÎÆ® ¼½Å͸¦ ¸Þ¸ð¸®·Î ÀÐÀº µÚ ¿î¿µÃ¼Á¦¸¦ Àд ÇÁ·Î±×·¥¿¡°Ô Á¦¾î±ÇÀ» ³Ñ±é´Ï´Ù. ÀϹÝÀûÀÎ ¸®´ª½º ½Ã½ºÅÛ¿¡¼ ÀÌ ÇÁ·Î±×·¥Àº LILOÀÇ ÀÏ´Ü°è (first stage) ºÎÆ® ·Î´õ(boot loader)ÀÏ °ÍÀÔ´Ï´Ù. »ç½Ç ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ºÎÆÃÇÏ´Â °úÁ¤Àº ´Ù¾çÇÏ°Ô ¼³Á¤µÉ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº "LILO User's Guide"¸¦ º¸½Ê½Ã¿À. URLÀº LILO ¼½¼Ç¿¡¼ ãÀ¸½Ê½Ã¿À.
PC Çϵå¿þ¾î°¡ ¹«½¼ ÀÏÀ» ÇÏ´Â Áö¿¡ ´ëÇØ ¾ð±ÞÇÒ °ÍÀº ´ç¿¬È÷ ¸¹ÀÌ ³²¾Æ ÀÖÁö¸¸, ÀÌ ¹®¼´Â ±×°ÍÀ» ´Ù·çÁö ¾Ê½À´Ï´Ù. PC Çϵå¿þ¾î¸¦ ´Ù·é ¸¹Àº ÁÁÀº Ã¥µéÀÌ ÀÖÀ¸´Ï Âü°íÇϽʽÿÀ.
2.1. ¼³Á¤ ¶ÄÄÇ»ÅÍ´Â ÀÚ±â Àڽſ¡ ´ëÇÑ Á¤º¸¸¦ CMOS¿¡ ÀúÀåÇÕ´Ï´Ù. ½Ã½ºÅÛ¿¡ ¾î¶² µð½ºÅ©¿Í ·¥ÀÌ Àִ°¡¿Í °°Àº Á¤º¸µµ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍÀÇ BIOS´Â ¿©·¯ºÐÀÌ ÀÌ·¯ÇÑ ¼³Á¤µéÀ» °íÄ¥ ¼ö ÀÖµµ·Ï ÇÏ´Â ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍ°¡ ÄÑÁú ¶§ ȸ鿡 ³ª¿À´Â ¸Þ½ÃÁöµéÀ» È®ÀÎÇÏ¿© ¾î¶»°Ô ±× ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. Á¦ ÄÄÇ»ÅÍ¿¡¼´Â ¿î¿µÃ¼Á¦°¡ ÀÐÈ÷±â Àü¿¡ µô¸®Æ®(delete)Å°¸¦ ´©¸£¸é µÇ¾ú½À´Ï´Ù.
2.2. ¿¬½À ¹®Á¦ ¶PC Çϵå¿þ¾î¿¡ ´ëÇØ ¹è¿ï ¼ö ÀÖ´Â ÁÁÀº ¹æ¹ýÀº Áß°í ºÎÇ°µéÀ» ¸ð¾Æ¼ »õ·Î¿î ÄÄÇ»Å͸¦ Á¶¸³ÇØ º¸´Â °ÍÀÔ´Ï´Ù. ¸®´ª½º¸¦ ½±°Ô ½ÇÇà½Ãų ¼ö ÀÖµµ·Ï Àû¾îµµ 386À» ¸¸µéµµ·Ï ÇϽʽÿÀ. ÁÖº¯¿¡ ¹°¾îº¸¸é, ´ç½ÅÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» ´©±º°¡°¡ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
Unios¿¡ ´ëÇØ È®ÀÎÇÏ°í, ´Ù¿î·ÎµåÇÑ µÚ ÄÄÆÄÀÏ ÇÏ¿© ºÎÆ® µð½ºÅ©¸¦ ¸¸µé¾îº¸½Ê½Ã¿À. (±×µéÀÇ È¨ÆäÀÌÁö°¡ http://www.unios.org¿¡ ÀÖ¾úÁö¸¸, »ç¶óÁ³½À´Ï´Ù.) ÀÌ°ÍÀº 100ÁÙ Á¤µµÀÇ ¾î¼Àºí·¯ ÄÚµå·Î ±¸¼ºµÈ ´Ü¼øÇÑ ºÎÆÃÇÒ ¼ö ÀÖ´Â "Hello World!" ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¾î¼Àºí·¯ Äڵ带 GNU ¾î¼Àºí·¯
as °¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â ÇüÅ·Πº¯È¯ÇÏ¿© ÀÐ¾î º¸½Ã´Â °Íµµ ÁÁÀ» °ÍÀÔ´Ï´Ù.
¿©·¯ºÐÀÇ ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®´Â(roll your own)" °Í¿¡ ´ëÇÑ Áö½Ã »çÇ×ÀÌ Roll Your Own¿¡ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀÌ ÁøÁ¤ÇÑ µµÀüÀ» ã°í ÀÖÀ¸½Ã´Ù¸é ÀÐ¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù.
Çí½º ¿¡µðÅÍ(hex editor)·Î ºÎÆ® µð½ºÅ© À̹ÌÁö¸¦ ¿¾î º¸½Ê½Ã¿À. ÀÌ À̹ÌÁöÀÇ ±æÀÌ´Â Á¤È®È÷ ÇÑ ¼½ÅÍ°¡ µÇ´Â 512¹ÙÀÌÆ®ÀÔ´Ï´Ù. ¸ÅÁ÷ ³Ñ¹ö(magic number) 0xAA55¸¦ ã¾Æ º¸½Ê½Ã¿À. ´Ù¸¥ ºÎÆà °¡´ÉÇÑ Ç÷ÎÇÇ µð½ºÅ©³ª ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍÀÇ ºÎÆ® ¼½ÅÍ¿¡ ´ëÇؼµµ °°Àº ÀÏÀ» ÇØ º¸½Ê½Ã¿À. ¿©·¯ºÐÀº
dd if=/dev/fd0 of=boot.sector ¿Í °°ÀÌ dd ¸í·ÉÀ» »ç¿ëÇؼ ±×°ÍÀ» ÆÄÀÏ·Î º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù.
if
(input file, ÀÔ·Â ÆÄÀÏ)¿Í
of
(out file, Ãâ·Â ÆÄÀÏ)¸¦ Á¤È®È÷ ÀÔ·ÂÇÏ¿´´ÂÁö ¸Å¿ì Á¶½É½º·´°Ô È®ÀÎÇϽʽÿÀ.
¸®·ÎÀÇ ºÎÆ® ·Î´õÀÇ ¼Ò½º Äڵ带 ÀÐ¾î º¸½Ê½Ã¿À.
2.3. Ãß°¡ Á¤º¸ ¶
3. ¸®·Î(Lilo) ¶ÄÄÇ»ÅÍ°¡ º¸Åë ¸®´ª½º ½Ã½ºÅÛÀÇ ºÎÆ® ¼½Å͸¦ ÀÐÀ» ¶§, ½ÇÁ¦·Î Àд °ÍÀº liloÀÇ ÀϺκÐÀÎ "ÀÏ´Ü°è ºÎÆ® ·Î´õ(first stage boot loader)"ÀÔ´Ï´Ù. ÀÌ°ÍÀº "ÀÌ´Ü°è ºÎÆ® ·Î´õ(first stage boot loader)"¸¦ ºÒ·¯µéÀÌ´Â Àϸ¸À» ÇÏ´Â ÀÛÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
ÀÌ´Ü°è ºÎÆ® ·Î´õ´Â (±×·¸°Ô Çϵµ·Ï ¼³Ä¡ÇÏ¿´´Ù¸é) ÇÁ·ÒÇÁÆ®¸¦ Ç¥½ÃÇÏ°í ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ¿î¿µ üÁ¦¸¦ ÀоîµéÀÔ´Ï´Ù.
¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ½ÃÀÛµÇ°í µ¿ÀÛÇÏ´Â »óÅ¿¡¼ ¿©·¯ºÐÀÌ
lilo ¸¦ ½ÇÇàÇÑ´Ù¸é, ¿©·¯ºÐÀÌ ½ÇÁ¦·Î ½ÇÇàÇÏ´Â °ÍÀº "map installer"ÀÔ´Ï´Ù. ÀÌ°ÍÀº ¼³Á¤ ÆÄÀÏÀÎ /etc/lilo.conf ¸¦ ÀÐ°í ºÎÆ® ·Î´õ¿Í ºÎÆ®·Î´õ°¡ ÀÐÀ» ¼ö ÀÖ´Â ¿î¿µ üÁ¦¿¡ ´ëÇÑ Á¤º¸¸¦ ÇÏµå µð½ºÅ©¿¡ ¾¹´Ï´Ù.
¿©·¯ºÐÀÇ ½Ã½ºÅÛÀ» ºÎÆ®ÇÏ´Â µ¥¿¡´Â ¸Å¿ì ´Ù¾çÇÑ ¹æ¹ýµéÀÌ ÀÖ½À´Ï´Ù. Á¦°¡ ¼³¸íÇÒ °ÍÀº Àû¾îµµ ÁÖ ¿î¿µ üÁ¦°¡ ¸®´ª½ºÀÎ ½Ã½ºÅÛ¿¡¼´Â °¡Àå ´Ü¼øÇÏ°í "ÀϹÝÀûÀÎ" ¹æ¹ýÀÔ´Ï´Ù. Lilo »ç¿ëÀÚ °¡À̵å(Lilo Users' Guide)´Â "ºÎÆ® °³³ä(boot concept)"ÀÇ ¸î¸î ¿¹µéÀ» ¼³¸íÇÕ´Ï´Ù. ÀÌ°ÍÀº Àо¸¸ÇÑ ±ÛÀ̸ç, ±× ÁßÀÇ ÀϺθ¦ ¼Ò°³ÇÏ°Ú½À´Ï´Ù.
3.1. ¼³Á¤ ¶LiloÀÇ ¼³Á¤ÆÄÀÏÀº
/etc/lilo.conf ÀÔ´Ï´Ù. ±×°ÍÀ» À§ÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù. ¼Ð¿¡¼ man lilo.conf ¶ó°í Ä¡½Ã¸é º¸½Ç ¼ö ÀÖ½À´Ï´Ù. lilo.conf ÀÇ ÇÙ½ÉÀº ¸®·Î°¡ ºÎÆ®Çϵµ·Ï µÇ¾î ÀÖ´Â °Íµé¸¶´Ù Çϳª¾¿ ÀÖ´Â ¼³Á¤ Ç׸ñÀÔ´Ï´Ù. ¸®´ª½º Ç׸ñ¿¡´Â Ä¿³ÎÀÌ ¾îµð¿¡ ÀÖ´ÂÁö¿Í ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î ¾î´À µð½ºÅ© ÆÄƼ¼ÇÀ» ¸¶¿îÆ®ÇÒÁö¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ´Ù¸¥ ¿î¿µ üÁ¦¿¡ ´ëÇÑ Ç׸ñ¿¡´Â ÁÖ·Î ¾î´À ÆÄƼ¼ÇÀ¸·ÎºÎÅÍ ºÎÆ®ÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ Á¤º¸°¡ ÀÖ½À´Ï´Ù.
3.2. ¿¬½À ¹®Á¦ ¶À§Çè: ÀÌ ¿¬½À ¹®Á¦¸¦ ÇØ°á ÇÏ½Ç ¶§ ÁÖÀÇÇϽʽÿÀ. ¹«¾ð°¡ À߸øÇÏ¿© ¿©·¯ºÐÀÇ ¸¶½ºÅÍ ºÎÆ® ·¹ÄÚµå(your master boot record)¸¦ ³¯¸®°Ô µÇ¾î ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¼ö ¾ø°Ô ¸¸µé±â ½±½À´Ï´Ù. ¿©·¯ºÐÀº ÀÀ±Þ µð½ºÅ©(rescue disk)¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÏ°í, ¾î¶»°Ô ´Ù½Ã º¹±¸ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. Á¦°¡ »ç¿ëÇß°í ±ÇÀåÇÏ´Â ÀÀ±Þ µð½ºÅ©ÀÎ tomsrtbtÀÇ ¸µÅ©´Â ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. °¡Àå ÁÁÀº ¹æ¹ýÀº »ç¿ëÇÒ ¼ö ¾ø°Ô µÇ¾îµµ ±¦ÂúÀº ÄÄÇ»Å͸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
¸®·Î¸¦ Ç÷ÎÇÇ µð½ºÅ©¿¡ ¼³Ä¡ÇϽʽÿÀ. Ç÷ÎÇÇ¿¡ Ä¿³Î¹Û¿¡ ¾ø¾îµµ µË´Ï´Ù. ¿©·¯ºÐÀº Ä¿³ÎÀÌ init¸¦ ºÎ¸£·Á°í ÇÒ ¶§ "Ä¿³Î ÆдÒ(kernel panic)"À» °æÇèÇϽðÚÁö¸¸, ÃÖ¼ÒÇÑ lilo°¡ µ¿ÀÛÇÑ´Ù´Â °ÍÀº ¾Æ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
¿©·¯ºÐÀÌ ¹Ù¶ó½Å´Ù¸é Ç÷ÎÇÇ À§¿¡¼ ½Ã½ºÅÛÀÌ ¾îµð±îÁö ÁøÇàµÉ ¼ö ÀÖ´ÂÁö ½ÇÇèÇØ º¸½Ç ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¾Æ¸¶µµ µÎ¹ø°·Î ÁÁÀº ¸®´ª½º¸¦ ¹è¿ì´Â È°µ¿ÀÏ °ÍÀÔ´Ï´Ù. ´Ü¼¸¦ À§Çؼ Bootdisk HOWTO(URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.)¿Í tomsrtbt (URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.)À» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
¸®·Î·Î unios (Çϵå¿þ¾î ¿¬½À¿¡¼ URLÀ» ãÀ¸½Ê½Ã¿À)¸¦ ºÎÆÃÇØ º¸½Ê½Ã¿À. Ãß°¡·Î, ÀÌ°ÍÀ» Ç÷ÎÇÇ µð½ºÅ©¿¡¼ ÇÏ½Ç ¼ö ÀÖ´ÂÁö È®ÀÎÇØ º¸½Ê½Ã¿À.
ºÎÆ® ·çÇÁ(boot-loop)¸¦ ¸¸µé¾î º¸½Ê½Ã¿À. ¸®·Î¸¦ ¸¶½ºÅÍ ºÎÆ® ·¹Äڵ忡 ¼³Ä¡ÇÏ¿© ÇÁ¶óÀ̸Ӹ® ÆÄƼ¼Ç ºÎÆ® ¼½ÅÍÁßÀÇ Çϳª¿¡ ÀÖ´Â ¸®·Î¸¦ ºÎÆÃÇÏ°í, ±× ¸®·Î°¡ ¸¶½ºÅÍ ºÎÆ® ·¹ÄÚµåÀÇ ¸®·Î¸¦ ºÎÆ®ÇÏ°í, ÀÌ°ÍÀÌ ¹Ýº¹µÇ°Ô ÇϽʽÿÀ. ¿©·¯ºÐÀº ¸¶½ÃÅÍ ºÎÆ® ·¹ÄÚµå¿Í ³×°³ÀÇ ÇÁ¶óÀ̸Ӹ® ÆÄƼ¼Ç ¸ðµÎ¸¦ »ç¿ëÇÏ¿© 5´Ü°è ·çÇÁ¸¦ ¸¸µé ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. Áñ±â¼¼¿ä!
3.3. Ãß°¡ Á¤º¸ ¶
4. ¸®´ª½º Ä¿³Î ¶¸®´ª½º Ä¿³ÎÀº Á¤¸»·Î ¸¹Àº ÀÏÀ» ÇÕ´Ï´Ù. Àß Á¤¸®Çϸé, ¸®´ª½º Ä¿³ÎÀº Çϵå¿þ¾îµéÀÌ °øÁ¤ÇÏ°í ´É·üÀûÀ¸·Î ÇÁ·Î±×·¥ÀÌ ¹Ù¶ó´Â ÀÏÀ» Çϵµ·Ï ÇÕ´Ï´Ù.
ÇÁ·Î¼¼¼´Â µ¿½Ã¿¡ ÇÑ°¡Áö ¸í·É¹Û¿¡ ¼öÇàÇÏÁö ¸øÇÏÁö¸¸, ¸®´ª½º ½Ã½ºÅÛÀº µ¿½Ã¿¡ ¸¹Àº ÀÏÀ» ¼öÇàÇÏ´Â °Í ó·³ º¸ÀÔ´Ï´Ù. (¿ªÁÖ - ÃֽŠÇÁ·Î¼¼¼µéÀº µ¿½Ã¿¡ ¿©·¯ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖÁö¸¸, ¿©ÀüÈ÷ ¸ðµç ÀÏÀ» µ¿½Ã¿¡ ó¸®ÇÏÁö´Â ¸øÇÕ´Ï´Ù.) Ä¿³ÎÀº ÀÛ¾÷°ú ÀÛ¾÷ »çÀ̸¦ ¸Å¿ì ºü¸£°Ô ÀüȯÇÔÀ¸·Î¼ ÀÌ°ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. Ä¿³ÎÀº ¾î¶² ÇÁ·Î·¹½º°¡ ½ÇÇàµÉ Áغñ°¡ µÇ¾ú°í, ¾î¶² ÇÁ·Î¼¼½º°¡ Çϵåµð½ºÅ© ÆÄÀÏÀÇ ·¹Äڵ峪 Å°º¸µå ÀԷ°ú °°Àº °ÍÀ» ±â´Ù¸®°í ÀÖ´ÂÁö¸¦ ÃßÀûÇÏ¿© ÇÁ·Î¼¼¼¸¦ °¡Àå È¿À²ÀûÀ¸·Î »ç¿ëµÇ°Ô ÇÕ´Ï´Ù. ÀÌ°ÍÀÌ ½ºÄÉÁ층(scheduling)À̶ó°í ºÒ¸®´Â ÀÛ¾÷ÀÔ´Ï´Ù.
¾î¶² ÇÁ·Î±×·¥ÀÌ ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù¸é, ±×°ÍÀº RAM¿¡ ÀÖÀ» ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ¹«¾ð°¡¸¦ ÇÏ°í ÀÖ´Â ÇÁ·Î±×·¥À̶ó°í ÇÒÁö¶óµµ, ±× ÇÁ·Î±×·¥ÀÇ ÀϺκÐÀº ¾Æ¹«°Íµµ ÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. °¢ ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£Àº ÆäÀÌÁö·Î ³ª´µ¾îÁý´Ï´Ù. Ä¿³ÎÀº ¾î´À ÇÁ·Î¼¼½ºÀÇ ¾î´À ÆäÀÌÁö°¡ °¡Àå ¸¹ÀÌ ¾²ÀÌ´ÂÁö¸¦ ÃßÀûÇÕ´Ï´Ù. ±×´ÙÁö ¸¹ÀÌ ¾²ÀÌÁö ¾Ê´Â ÆäÀÌÁöµéÀº ½º¿Ò ÆÄƼ¼ÇÀ¸·Î ¿Å°ÜÁý´Ï´Ù. ±×µéÀÌ ´Ù½Ã ÇÊ¿äÇØÁö¸é, ´Ù¸¥ ¾²ÀÌÁö ¾Ê´Â ÆäÀÌÁöµéÀÌ ÆäÀÌÁö ¾Æ¿ô(paged out)µÇ¾î °ø°£À» ¸¸µì´Ï´Ù. ÀÌ°ÍÀÌ °¡»ó ¸Þ¸ð¸® °ü¸®ÀÔ´Ï´Ù.
¿©·¯ºÐÀÌ Ä¿³ÎÀ» ÄÄÆÄÀÏÇØ º¸½Å ÀûÀÌ ÀÖÀ¸½Ã´Ù¸é, ƯÁ¤ÇÑ ÀåÄ¡µé¿¡ ´ëÇؼ ¸¹°í ¸¹Àº ¿É¼ÇµéÀÌ ÀÖ´Ù´Â °ÍÀ» ´À³¢¼ÌÀ» °ÍÀÔ´Ï´Ù. Ä¿³ÎÀº ´Ù¾çÇÑ Á¾·ùÀÇ Çϵå¿þ¾îµé°ú ´ëÈÇϱâ À§ÇÑ ¸¹Àº Ưº° ÄÚµåµéÀ» °¡Áö°í ÀÖ¾î¼, ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥µéÀÌ ¸ðµç Çϵå¿þ¾îµéÀ» ´ÜÀÏÇÏ°í ÁÁÀº ¹æ¹ýÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
Ä¿³ÎÀº ÆÄÀϽýºÅÛ, ÇÁ·Î¼¼½º°£ Åë½Å, ³×Æ®¿öÅ·°ú °ü·ÃµÈ ¸¹Àº °Íµéµµ °ü¸®ÇÕ´Ï´Ù.
ÀÏ´Ü Ä¿³ÎÀÌ ºÒ·ÁÁö¸é, °¡Àå ¸ÕÀú ÇÏ´Â ÀÏÀº ½ÇÇàÇÒ
init ÇÁ·Î±×·¥À» ã´Â °ÍÀÔ´Ï´Ù.
4.1. ¼³Á¤ ¶¿©·¯ºÐÀÌ
/usr/src/linux/ (³ª ¿©·¯ºÐÀÇ Ä¿³Î ¼Ò½º°¡ ÀÖ´Â °÷)¿¡¼ make menuconfig ³ª make xconfig ¸¦ »ç¿ëÇÏ¿© ¼³Á¤ÇÏ°í Ä¿³ÎÀ» ¸¸µé ¶§, ´ëºÎºÐÀÇ Ä¿³Î ¼³Á¤ÀÌ ÀÌ·ç¾îÁý´Ï´Ù. ¿©·¯ºÐÀº ±âº» ºñµð¿À ¸ðµå, ·çÆ® ÆÄÀϽýºÅÛ, ½º¿Ò µð¹ÙÀ̽º, ·¥ µð½ºÅ© »çÀÌÁî µîÀ» rdev ¸¦ ÅëÇØ ´Ù½Ã ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÆĶó¸ÞÅ͵é°ú ´Ù¸¥ °ÍµéÀº ¸®·Î·ÎºÎÅÍ Ä¿³Î·Î Àü´ÞµÉ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº lilo.conf ¾È¿¡¼³ª ¸®·Î ÇÁ·ÒÇÁÆ®¿¡¼ Ä¿³Î¿¡°Ô ³Ñ°ÜÁú ¸®·Î ÆĶó¸ÞÅ͵éÀ» Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¿©·¯ºÐÀÌ hda3À» hda2´ë½Å¿¡ ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î ÀÌ¿ëÇÏ·Á°í ÇÏ½Å´Ù¸é ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÏ½Ç °ÍÀÔ´Ï´Ù.
LILO: linux root=/dev/hda3 ¿©·¯ºÐÀÌ ¼Ò½º·ÎºÎÅÍ ½Ã½ºÅÛÀ» ¸¸µé°í °è½Å´Ù¸é, ¿©·¯ºÐÀº "¸ð³î¸®Æ½(monolithic)" Ä¿³ÎÀ» ¸¸µé¾î¼ ÀÏÀ» ´Ü¼øÇÏ°Ô ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¸ð³î¸®Æ½ Ä¿³ÎÀº ¸ðµâÀÌ ¾ø´Â Ä¿³ÎÀÔ´Ï´Ù. ¿©·¯ºÐÀº Ä¿³Î ¸ðµâÀ» ´ë»ó ½Ã½ºÅÛÀ¸·Î º¹»çÇÒ ÇÊ¿ä°¡ ¾øÀ» °ÍÀÔ´Ï´Ù.
(ADD--¸ð³ë¸®µñ Ä¿³ÎÀº ¸ðµâÀÌ ÀÖ´Â Ä¿³ÎÀÔ´Ï´Ù. ¸ðµâÀÌ ¾ø´Â Ä¿³ÎÀº ¸¶ÀÌÅ©·ÎÄ¿³Î¾Æ´Ñ°¡¿ä?)
ÁÖÀÇ:
System.map ÆÄÀÏÀº ¸Þ½ÃÁö¸¦ ¸¸µé¾î³»´Â ¸ðµâµéÀÇ À̸§À» Á¤Çϱâ À§Çؼ Ä¿³Î ·Î°Å(kernel logger)¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù. top ÇÁ·Î±×·¥µµ ÀÌ Á¤º¸¸¦ »ç¿ëÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ Ä¿³ÎÀ» ´ë»ó ½Ã½ºÅÛ¿¡ º¹»çÇÒ ¶§, System.map µµ º¹»çÇϼ¼¿ä.
4.2. ¿¬½À ¹®Á¦ ¶/dev/hda3 ´Â ÇÏµå µð½ºÅ© ÆÄƼ¼ÇÀ» ¼³¸íÇϴ Ưº°ÇÑ Á¾·ùÀÇ ÆÄÀÏÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ°ÍÀº ´Ù¸¥ ÆÄÀϵé°ú °°ÀÌ ÆÄÀÏ ½Ã½ºÅÛ ¾È¿¡ ÀÖ½À´Ï´Ù. Ä¿³ÎÀº ¾î´À ÆÄƼ¼ÇÀ» ·çÆ® ÆÄƼ¼ÇÀ¸·Î ¸¶¿îÆ®ÇÒÁö¸¦ ¾Ë°íÀÚ ÇÕ´Ï´Ù. ÇÏÁö¸¸, ÆÄÀÏ ½Ã½ºÅÛÀº ¾ÆÁ÷ ¾ø´Â »óÅÂÀÔ´Ï´Ù. Ä¿³ÎÀÌ ¾î¶»°Ô /dev/hda3 À» ÀÐ¾î¼ ¾î´À ÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇÒÁö¸¦ ¾Ë±î¿ä? »ý°¢ÇØ º¸½Ê½Ã¿À.
¿©·¯ºÐÀÌ ¾ÆÁ÷ Çغ¸Áö ¾ÊÀ¸¼Ì´Ù¸é, ¿©·¯ºÐ¸¸ÀÇ Ä¿³ÎÀ» ¸¸µé¾î º¸½Ê½Ã¿À. °¢ ¿É¼Ç¸¶´Ù ÀÖ´Â µµ¿ò¸»À» ¸ðµÎ ÀÐ¾î º¸½Ê½Ã¿À.
ÀÛµ¿ÇÏ´Â Ä¿³ÎÀ» ¾ó¸¶³ª ÀÛ°Ô ¸¸µé ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. ²À ÇÊ¿äÇÑ °ÍÀ» »°À» ¶§ ¿©·¯ºÐÀº ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.
"The Linux Kernel" (URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.) À» Àо°í ÂüÁ¶ÇÏ´Â ¼Ò½º ÄÚµåµéÀ» ã¾Æ º¸½Ê½Ã¿À. (Á¦°¡ ÀÌ ±ÛÀ» ¾µ ¶§) ÀÌ Ã¥Àº Ä¿³Î 2.0.33À» ÂüÁ¶ÇÏ°í ÀÖ¾úÀ¸¸ç, ÀÌ°ÍÀº ²Ï Áö³ ¹èÆ÷ÆÇÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ±¸½ÄÀÎ Ä¿³ÎÀ» ´Ù¿î·Îµå ¹Þ¾Æ Âü°íÇÏ´Â °ÍÀÌ ´õ ÆíÇÒÁöµµ ¸ð¸£°Ú½À´Ï´Ù. "ÇÁ·Î¼¼½º"¿Í "ÆäÀÌÁö"¶ó°í ºÒ¸®´Â C Äڵ带 ã´Â °ÍÀº ³î¶ó¿î ÀÏÀÔ´Ï´Ù.
ÇØÅ·ÇϽʽÿÀ! ¿©·¯ºÐÀÌ Ãß°¡ÀûÀÎ ¸Þ½ÃÁö³ª ´Ù¸¥ °ÍµéÀ» Ãâ·ÂÇÏ°Ô ¸¸µé¼ö ÀÖ´ÂÁö ½ÃÇèÇØ º¸½Ê½Ã¿À.
4.3. Ãß°¡ Á¤º¸ ¶
5. ±×´© C ¶óÀ̺귯¸® (The GNU C Library) ¶¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ°¡ ½ÃÀÛµÉ ¶§ ´ÙÀ½À¸·Î ÀϾ ÀÏÀº init°¡ ºÒ·ÁÁ®¼ ½ÇÇàµÇ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, ´Ù¸¥ °ÅÀÇ ¸ðµç ÇÁ·Î±×·¥µé°ú °°ÀÌ initµµ ¶óÀ̺귯¸® ÇÔ¼öµéÀ» »ç¿ëÇÕ´Ï´Ù.
¿©·¯ºÐÀº ¾Æ¸¶µµ ¾Æ·¡¿Í °°Àº ¿¹Á¦ C Äڵ带 º¸½Å ÀûÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù.
main() { printf("Hello World!\n"); } ÀÌ ÇÁ·Î±×·¥¿¡´Â
printf ÀÇ Á¤ÀÇ°¡ ¾ø´Âµ¥, ±×·¸´Ù¸é printf ´Â ¾îµð¿¡¼ ³ªÅ¸³ °ÍÀϱî¿ä? ±×´©/¸®´ª½º ½Ã½ºÅÛÀÇ Ç¥ÁØ C ¶óÀ̺귯¸®ÀÎ glibc¿¡¼ ¿Â °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ÀÌ°ÍÀ» Visual C++¿¡¼ ÄÄÆÄÀÏÀ» ÇϽŴٸé, printf ´Â °°Àº Ç¥ÁØ ÇÔ¼ö¸¦ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼ ±¸ÇöÇÑ °Í¿¡¼ ¿À°Ô µÉ °ÍÀÔ´Ï´Ù. ¼öÇÐÀ̳ª ¹®ÀÚ¿, ³¯Â¥/½Ã°£, ¸Þ¸ð¸® ÇÒ´ç°ú °°Àº ÀϵéÀ» À§ÇÑ ¼ö¸¹Àº Ç¥ÁØ ÇÔ¼öµéÀÌ ÀÖ½À´Ï´Ù. (¸®´ª½º¸¦ Æ÷ÇÔÇÑ) À¯´Ð½ºÀÇ ¸ðµç °ÍµéÀº C·Î ½è°Å³ª C·Î ½áÁø °Íó·³ º¸ÀÌ·Á°í ³ë·ÂÇϱ⠶§¹®¿¡, ¸ðµç°ÍµéÀÌ ÀÌ·¯ÇÑ ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
¿©·¯ºÐÀÌ ½Ã½ºÅÛÀÇ
/lib ¾Æ·¡¸¦ º»´Ù¸é libsomething.so ³ª libsomething.a ¿Í °°Àº ¸¹Àº ÆÄÀϵéÀ» º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. À̵éÀº À§¿Í°°Àº ÇÔ¼öµéÀÇ ¶óÀ̺귯¸® ÆÄÀÏÀÔ´Ï´Ù. Glibc´Â ´Ü¼øÈ÷ GNU¿¡¼ ±×·¯ÇÑ ÇÔ¼ö¸¦ ±¸ÇöÇØ ³õÀº °ÍÀÔ´Ù.
ÇÁ·Î±×·¥ÀÌ ÀÌ·¯ÇÑ ¶óÀ̺귯¸® ÇÔ¼öµéÀ» »ç¿ëÇÏ´Â µ¥¿¡´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À»
Á¤Àû(statically) À¸·Î ¸µÅ©ÇÑ´Ù¸é, ÀÌ ¶óÀ̺귯¸® ÇÔ¼öµéÀº ¸¸µé¾îÁö´Â ½ÇÇà °¡´ÉÇÑ ÆÄÀÏ¿¡ º¹»çµÉ °ÍÀÔ´Ï´Ù. libsomething.a ¿Í °°Àº ÆÄÀÏÀº ÀÌ·¯ÇÑ ÀÏÀ» À§ÇÑ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ µ¿Àû(dynamically) À¸·Î ÇÁ·Î±×·¥À» ¸µÅ©ÇÑ´Ù¸é(ÀÌ°ÍÀº ±âº»°ªÀÔ´Ï´Ù.), ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¾î ¶óÀ̺귯¸® Äڵ尡 ÇÊ¿äÇÒ ¶§ libsomething.so ¿¡¼ ºÎ¸£°Ô µÉ °ÍÀÔ´Ï´Ù.
¿©·¯ºÐÀÌ Æ¯Á¤ÇÑ ÇÁ·Î±×·¥¿¡¼ ¾î¶°ÇÑ ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÑÁö ¾Ë·Á°í ÇϽŴٸé
ldd ¸í·ÉÀ» ¾²½Ç ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î bash °¡ ¾î¶°ÇÑ ¶óÀ̺귯¸®µéÀ» ¾²´ÂÁö ¾Æ½Ã·Á¸é ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇϽʽÿÀ.
[greg@Curry power2bash]$ ldd /bin/bash libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000) libc.so.6 => /lib/libc.so.6 (0x4001d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) 5.1. ¼³Á¤ ¶¶óÀ̺귯¸®ÀÇ ¸î¸î ÇÔ¼öµéÀº ¿©·¯ºÐÀÌ ¾îµð¿¡ »ç½Ã´ÂÁö¿¡ µû¶ó ´Ù¸¥ ÀÏÀ» ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, È£ÁÖ¿¡¼´Â ³¯ÀÚ¸¦ ÀÏ/¿ù/³â°ú °°ÀÌ ¾²Áö¸¸, ¹Ì±¹¿¡¼´Â ¿ù/ÀÏ/³â°ú °°ÀÌ ¾¹´Ï´Ù.
glibc ¹èÆ÷ÆÇ¿¡ ÇÔ²² ÀÖ´Â localedef ¶ó´Â ÇÁ·Î±×·¥Àº ¿©·¯ºÐÀÌ ÀÌ°ÍÀ» ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
5.2. ¿¬½À ¹®Á¦ ¶¿©·¯ºÐÀÌ °¡Àå ÁÁ¾ÆÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ¾î¶°ÇÑ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´ÂÁö
ldd ·Î ¾Ë¾Æº¸½Ê½Ã¿À.
ldd ·Î init °¡ ¾î¶² ¶ó¸®ºê·¯¸®¸¦ »ç¿ëÇÏ´ÂÁö ¾Ë¾Æº¸½Ê½Ã¿À.
ÇÑ°³³ª µÎ°³ÀÇ ÇÔ¼ö¸¸À» Æ÷ÇÔÇÏ´Â Àå³°¨ ¶óÀ̺귯¸®¸¦ ¸¸µé¾î º¸½Ê½Ã¿À. ±×·¯ÇÑ ¶óÀ̺귯¸®´Â
ar ÇÁ·Î±×·¥À¸·Î ¸¸µé ¼ö ÀÖÀ¸¸ç, ar ÀÇ ¸Ç ÆäÀÌÁö´Â ¾î¶»°Ô ÀÌ°ÍÀÌ ÀÌ·ç¾îÁö´ÂÁö Á¶»çÇϱâ À§ÇØ ¸ÕÀú º¸¾Æ¾ß ÇÒ ÀÚ·áÀÔ´Ï´Ù. ÀÌ ¶óÀ̺귯¸®¸¦ ¾²´Â ÇÁ·Î±×·¥À» ¾²°í ÄÄÆÄÀÏ ÇÑ µÚ ¸µÅ©ÇØ º¸½Ê½Ã¿À.
6. Init ¶Àú´Â ¸®´ª½º ½Ã½ºÅÛµéÀÌ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â "System V" ½ºÅ¸ÀÏÀÇ init¸¸À» ¾ð±ÞÇÏ°Ú½À´Ï´Ù. ´Ù¸¥ ´ë¾Èµéµµ ÀÖ½À´Ï´Ù. »ç½Ç, ¿©·¯ºÐÀº ¾î¶² ÇÁ·Î±×·¥À̶óµµ
/sbin/init ¿¡ ³ÖÀ» ¼ö ÀÖ°í, Ä¿³ÎÀº ÀÚ½ÅÀÌ ¿ÏÀüÈ÷ ºÒ¸° ´ÙÀ½¿¡ ±×°ÍÀ» ½ÇÇàÇÒ °ÍÀÔ´Ï´Ù.
init ÀÌ ÇÏ´Â ÀÏÀº ¸ðµç °ÍµéÀÌ ¹Ù¶ó´Â ´ë·Î ½ÇÇàµÇ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛÀÌ ±¦ÂúÀºÁö È®ÀÎÇÏ°í ¸¶¿îÆ®ÇÕ´Ï´Ù. "µ¥¸ó"µéÀÌ ½ÃÀÛÇؼ ½Ã½ºÅÛ ¸Þ½ÃÁöµéÀ» ·Î±×ÇÏ°Ô ÇÏ°í, ³×Æ®¿öÅ·À» ÇÏ°í, À¥ ÆäÀÌÁö¸¦ º¸³»°í, ¸¶¿ì½º°¡ ¹«½¼ ÀÏÀ» ÇÏ´ÂÁö º¸´Â °Í°ú °°Àº ÀÏÀ» ÇÕ´Ï´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÇ °¡»ó Å͹̳ο¡ ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ Ãâ·ÂÇÏ´Â getty ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÕ´Ï´Ù.
"·±·¹º§(run-levels)"À» ÀüȯÇÏ´Â °Í¿¡ ´ëÇØ ´Ù À̾߱â ÇÏ·Á¸é º¹ÀâÇÏ°ÚÁö¸¸, ¿©±â¼´Â ´ëºÎºÐÀ» °Ç³Ê¶Ù°í ½Ã½ºÅÛ ½ÃÀÛ¿¡ °ü·ÃµÈ ºÎºÐ¸¸ À̾߱âÇÒ °ÍÀÔ´Ï´Ù.
Init´Â ¹«¾ùÀ» ÇÒÁö ±â·ÏµÇ¾î ÀÖ´Â
/etc/inittab À̶ó´Â ÆÄÀÏÀ» ÀнÀ´Ï´Ù. ÀüÇüÀûÀ¸·Î, Á¦ÀÏ ¸ÕÀú ÇÏ´Â ÀÏÀº ÃʱâÈ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇà(¶Ç´Â Çؼ®)Çϴ°ÍÀº ¿©·¯ºÐ¿¡°Ô ¸í·É ÇÁ·ÒÇÁÆ®¸¦ ÁÖ´Â ÇÁ·Î±×·¥À̱⵵ ÇÑ bash ÀÔ´Ï´Ù. µ¥ºñ¾È ½Ã½ºÅÛ¿¡¼´Â, ½ÃÀÛ ½ºÅ©¸³Æ®´Â /etc/init.d/rcS ÀÌ°í, ·¹µåÇÞ¿¡¼´Â /etc/rc.d/rc.sysinit ÀÔ´Ï´Ù. ¿©±â¼ ÆÄÀϽýºÅÛÀÌ Ã¼Å©µÇ¸ç ¸¶¿îÆ®µÇ°í, ½Ã°è°¡ ¼³Á¤µÇ°í, ½º¿Ò °ø°£ÀÌ ÄÑÁö°í, È£½ºÆ® À̸§ÀÌ ¼³Á¤µÇ´Â °Í°ú °°Àº ÀÏÀÌ ÀϾ´Ï´Ù.
´ÙÀ½À¸·Î, ¶Ç ´Ù¸¥ ½ºÅ©¸³Æ®°¡ ºÒ·ÁÁ®¼ ¿ì¸®¸¦ ±âº» ·±·¹º§·Î µ¥·Á°©´Ï´Ù. ±âº» ·±·¹º§Àº ½ÇÇàÇÒ ¼ö ÀÖ´Â ¼ºê½Ã½ºÅÛµéÀÇ ¸ðÀÓÀÔ´Ï´Ù. °¢°¢ÀÇ ·±·¹º§µé¿¡ ´ëÇÏ¿© ·¹µåÇÞ¿¡¼´Â
/etc/rc.d/rc0.d , /etc/rc.d/rc1.d , ..., /etc/rc.d/rc6.d ¿Í °°Àº µð·ºÅ丮°¡ ÀÖ°í, µ¥ºñ¾È¿¡´Â /etc/rc0.d , /etc/rc1.d , ..., /etc/rc6.d ¿Í °°Àº µð·ºÅ丮µéÀÌ ÀÖ½À´Ï´Ù. µ¥ºñ¾È¿¡¼ ¿ì¸®´Â ·±·¹º§ 3À¸·Î °¡¼ /etc/rc3.d ¾È¿¡ ÀÖ´Â `S' (½ÃÀÛ, start¸¦ ÀǹÌ)·Î ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®µéÀ» ½ÇÇàÇÕ´Ï´Ù. »ç½Ç ÀÌ ½ºÅ©¸³Æ®µéÀº init.d ¶ó´Â ´Ù¸¥ µð·ºÅ丮¿¡ ÀÖ´Â ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¸µÅ©ÀÔ´Ï´Ù.
±×·¡¼ ¿ì¸®ÀÇ ·±·¹º§ ½ºÅ©¸³Æ®´Â
init ¿¡ ÀÇÇØ ºÒ·ÁÁö°í, µð·ºÅ丮 ¾È¿¡¼ S ·Î ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®µéÀ» ã½À´Ï´Ù. S10syslog ¸¦ ¸ÕÀú ãÀ» ¼öµµ ÀÖ½À´Ï´Ù. ¼ýÀÚ´Â ½ºÅ©¸³Æ®µéÀ» ½ÇÇà½ÃÅ°´Â ¼ø¼¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ±×·¡¼ ÀÌ °æ¿ì S00 ... S09·Î ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®µéÀÌ ¾ø¾ú±â ¶§¹®¿¡ S10syslog °¡ ¸ÕÀú ½ÇÇàµË´Ï´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î S10syslog ´Â ½Ã½ºÅÛ ·Î°Å¸¦ ½ÃÀÛÇÏ°í ³¡³»´Â ½ºÅ©¸³Æ®ÀÎ /etc/init.d/syslog ·ÎÀÇ ¸µÅ©ÀÔ´Ï´Ù. ¸µÅ©°¡ S ·Î ½ÃÀÛÇϱ⠶§¹®¿¡, ·±·¹º§ ½ºÅ©¸³Æ®´Â syslog ½ºÅ©¸³Æ®¸¦ "start" ÆĶó¸ÞÅÍ·Î ½ÇÇàÇÕ´Ï´Ù. ¿©±â¿¡ ´ëÀÀµÇ´Â ·±·¹º§À» ¶°³¯ ¶§ ¹«¾ùÀ» ¹«½¼ ¼ø¼·Î ²¨¾ß ÇÏ´ÂÁö¸¦ Áö½ÃÇÏ´Â ¸µÅ©´Â `K' (Á×À̱â, killÀ» ÀǹÌ)·Î ½ÃÀÛÇÕ´Ï´Ù.
±âº»À¸·Î ½ÃÀ۵Ǵ ¼ºê½Ã½ºÅÛµéÀ» ¹Ù²Ù·Á¸é, ¿©·¯ºÐÀº
rcN.d µð·ºÅ丮 ¾È¿¡ ÀÖ´Â ÀÌ·¯ÇÑ ¸µÅ©µéÀ» ¼³Á¤ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù. ¿©±â¼ NÀº inittab ¿¡ ¼³Á¤µÈ ±âº» ·±·¹º§ÀÔ´Ï´Ù.
Init°¡ ¸¶Áö¸·À¸·Î ÇÏ´Â Áß¿äÇÑ ÀÏÀº
getty µéÀ» ½ÃÀÛÇÏ´Â °ÍÀÔ´Ï´Ù. ±×µéÀº "¸î ¹øÀÌ¶óµµ ¼Ò»ýÇÏ´Â(respawned)" Ư¡À» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ´Â ±×µéÀÌ Á¤ÁöµÇ¾úÀ» ¶§, init °¡ ±×µéÀ» ´Ù½Ã ½ÃÀÛÇÏ°Ô ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ¹èÆ÷ÆǵéÀº ¿©¼¸°³ÀÇ °¡»ó Å͹̳ÎÀÌ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº ¸Þ¸ð¸®¸¦ Àý¾àÇϱâ À§Çؼ ¼ö¸¦ ÁÙÀÏ ¼öµµ ÀÖ°í, ¸¹Àº °ÍµéÀ» µ¿½Ã¿¡ ½ÇÇàÇÏ¸é¼ ÇÊ¿äÇÒ ¶§¸¶´Ù ÀüȯÇÒ ¼ö ÀÖµµ·Ï ´Ã¸± ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀº getty ¸¦ ÅؽºÆ® Å͹̳ÎÀ̳ª ¸ðµ© ¿¬°áÀ» À§ÇØ ½ÇÇàÇÏ°í ½ÍÀ¸½Ç ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡´Â ¿©·¯ºÐÀÌ inittab ÆÄÀÏÀ» ÆíÁýÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù.
6.1. ¼³Á¤ ¶/etc/inittab Àº init¸¦ À§ÇÑ ÃÖ°í ¼öÁØÀÇ ¼³Á¤ ÆÄÀÏÀÔ´Ï´Ù.
N = 0, 1, ..., 6ÀÎ
rcN.d µð·ºÅ丮µéÀº ¾î¶² ¼ºê½Ã½ºÅÛÀÌ ½ÃÀ۵ǴÂÁö¸¦ °áÁ¤ÇÕ´Ï´Ù.
init¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ½ºÅ©¸³Æ® ÁßÀÇ ÇϳªÀÇ ¾îµð¿¡¼±°¡
mount -a ¸í·ÉÀÌ ½ÇÇàµÉ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¸¶¿îÆ®Çϱâ·Î ¿¹Á¤µÈ ¸ðµç ÆÄÀϽýºÅÛµéÀÌ ¸¶¿îÆ®ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÆÄÀÏ /etc/fstab ÀÌ ¹«¾ùÀÌ ¸¶¿îÆ®µÉ ¿¹Á¤ÀÎÁö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ½Ã½ºÅÛÀÌ ½ÃÀÛµÉ ¶§ ¹«¾ùÀÌ ¾îµð¿¡ ¸¶¿îÆ® µÇ´ÂÁö¸¦ ¹Ù²Ù°í ½ÍÀ¸½Ã´Ù¸é ÀÌ ÆÄÀÏÀ» ÆíÁýÇϽʽÿÀ. fstab ¿¡ ´ëÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù.
6.2. ¿¬½À ¹®Á¦ ¶¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÇ ±âº» ·±·¹º§À» À§ÇÑ
rcN.d µð·ºÅ丮¸¦ ã¾Æ ÆÄÀϵéÀÌ ¾îµð·Î ¸µÅ©µÇ¾î ÀÖ´ÂÁö ls -l ·Î º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡¼ ½ÇÇàµÇ´Â gettyµéÀÇ ¼ö¸¦ ¹Ù²Ù¾î º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ ±âº» ·±·¹º§¿¡¼ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ¼ºê½Ã½ºÅÛÀ» ¾ø¾Ö½Ê½Ã¿À.
¾ó¸¶³ª ÀûÀº ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¸ç ½Ã½ºÅÛÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ Ç÷ÎÇÇ µð½ºÅ©¿¡ ¸®·Î¿Í Ä¿³Î, ±×¸®°í Á¤ÀûÀ¸·Î ¸µÅ©µÈ "hello world" ÇÁ·Î±×·¥ÀÎ
/sbin/init ¸¦ ³Ö°í ºÎÆ®ÇÑ µÚ ÀλçÇÏ´Â °ÍÀ» º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ °ÍÀ» ÁÖÀDZí°Ô º¸½Ã¸é¼ ¹«¾ùÀÌ ÀϾ°í ÀÖ´Ù°í ¸»ÇÏ´ÂÁö ±â·ÏÇϽʽÿÀ. ¶Ç´Â
/var/log/messages ÀÇ ½ÃÀÛÇÒ ¶§ºÎÅÍ ÀϺκÐÀ» Ãâ·ÂÇØ º¸½Ê½Ã¿À. ±× ´ÙÀ½¿¡ inittab ¿¡¼ºÎÅÍ ¸ðµç ½ºÅ©¸³Æ®¸¦ º¸½Ã¸é¼ ¹«½¼ Äڵ尡 ¹«¾ùÀ» ÇÏ´ÂÁö º¸½Ê½Ã¿À. ¿©·¯ºÐÀº ¾Æ·¡¿Í °°Àº ½ÃÀÛ ¸Þ½ÃÁö¸¦ Ãß°¡ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
echo "Hello, I am rc.sysinit" ¹è½Ã ¼Ð ½ºÅ©¸³Æ®¿¡ ¹è¿ì´Â °Íµµ ¾ÆÁÖ ÁÁÀº ¿¬½ÀÀÔ´Ï´Ù. ¸î¸îÀº ¾ÆÁÖ º¹ÀâÇÕ´Ï´Ù. ÁÁÀº ¹è½Ã Âü°í¼¿Í ÇÔ²² ÇϽʽÿÀ.
6.3. Ãß°¡ Á¤º¸ ¶
7. ÆÄÀÏ ½Ã½ºÅÛ ¶ÀÌ Àý¿¡¼ Àú´Â "ÆÄÀϽýºÅÛ"À̶ó´Â ´Ü¾î¸¦ µÎ °¡ÁöÀÇ ´Ù¸¥ Àǹ̷Π»ç¿ëÇÒ °ÍÀÔ´Ï´Ù. µð½ºÅ© ÆÄƼ¼ÇÀ̳ª ´Ù¸¥ µð¹ÙÀ̽º¿¡ ÀÖ´Â ÆÄÀϽýºÅÛÀÌ ÀÖ°í, µ¿ÀÛÇÏ´Â ¸®´ª½º ½Ã½ºÅÛ¿¡ ÀÇÇØ ¿©·¯ºÐ¿¡°Ô´Â ÀÖ´Â °Íó·³ º¸ÀÌ´Â ÆÄÀϽýºÅÛÀÌ ÀÖ½À´Ï´Ù.
Àü Àý¿¡¼ Àú´Â init ½ºÅ©¸³Æ®°¡ ÆÄÀϽýºÅÛÀ» üũÇÏ°í ¸¶¿îÆ® ÇÑ´Ù´Â »ç½ÇÀ» ¾ð±ÞÇÏ¿´½À´Ï´Ù. ±×°ÍÀ» ÇÏ´Â ¸í·É¾î´Â °¢°¢
fsck ¿Í mount ÀÔ´Ï´Ù.
Çϵåµð½ºÅ©´Â ´ÜÁö ¿©·¯ºÐÀÌ 0°ú 1À» ¾µ ¼ö ÀÖ´Â Å« °ø°£¿¡ ºÒ°úÇÕ´Ï´Ù. ÆÄÀϽýºÅÛÀº ±×°Í¿¡ ±¸Á¶¸¦ ÁÖ¾î µð·ºÅ丮 ¾ÈÀÇ µð·ºÅ丮 ¾ÈÀÇ ... ÆÄÀÏó·³ º¸ÀÌ°Ô ÇÕ´Ï´Ù. °¢°¢ÀÇ ÆÄÀÏÀº ±× ÆÄÀÏÀÌ ´©±¸ÀÇ °ÍÀÌ¸ç ¾ðÁ¦ ¸¸µé¾îÁ³°í ³»¿ëÀº ¾îµð¼ º¼ ¼ö ÀÖ´ÂÁö¸¦ ÀúÀåÇÑ inode¿¡ ÀÇÇØ ³ªÅ¸³»Áý´Ï´Ù. µð·ºÅ丮µéµµ inodeµé¿¡ ÀÇÇØ ³ªÅ¸³»¾îÁö°Ô µÇ´Âµ¥, ÀÌ inode´Â µð·ºÅ丮ÀÇ ÆÄÀÏÀÇ inodeµéÀ» ¾îµð¿¡¼ ãÀ» ¼ö ÀÖ´ÂÁö ¾Ë·ÁÁÝ´Ï´Ù. ¸¸¾à ½Ã½ºÅÛÀÌ
/home/greg/bigboobs.jpeg ¸¦ ÀÐÀ¸·Á°í ÇÑ´Ù¸é, ¸ÕÀú "superblock (½´ÆÛºí·Ï)"ÀÇ ·çÆ® µð·ºÅ丮 / ÀÇ inode¸¦ ã°í, / ÀÇ ³»¿ë Áß¿¡¼ µð·ºÅ丮 home ÀÇ inode¸¦ ãÀº µÚ, /home ÀÇ ³»¿ë Áß¿¡¼ µð·ºÅ丮 greg ÀÇ inode¸¦ ã½À´Ï´Ù. °°Àº ¹æ¹ýÀ¸·Î bigboobs.jpeg ÀÇ inode¸¦ ã¾Æ¼ ¾î´À µð½ºÅ© ºí·ÏÀ» Àоî¾ß ÇÒÁö¸¦ ¾Ë°Ô µË´Ï´Ù.
¿ì¸®°¡ ÆÄÀÏÀÇ ³¡¿¡ µ¥ÀÌÅ͸¦ Ãß°¡ÇÏ°íÀÚ ÇÒ ¶§, inode°¡ ¾÷µ¥ÀÌÆ®µÇ¾î »õ·Î¿î ºí·ÏÀÌ ÆÄÀÏ¿¡ ¼ÓÇÏ°Ô µÇ¾ú´Ù´Â °ÍÀ» ¹Ý¿µÇϱâ Àü¿¡ µ¥ÀÌÅÍ°¡ ¾º¿©Áú ¼ö ÀÖ°í, ±× ¹Ý´ëÀÇ °æ¿ìµµ °¡´ÉÇÕ´Ï´Ù. ¸¸¾à Àü¿ø °ø±ÞÀÌ ÁߴܵǾî ÀÌ·¯ÇÑ °ÍÀÌ ²÷±ä´Ù¸é, ÆÄÀϽýºÅÛÀÌ °íÀ峯 ¼öµµ ÀÖ½À´Ï´Ù.
fsck ´Â ÀÌ·¯ÇÑ°ÍÀ» ã¾Æ¼ °íÄ¡·Á°í ÇÕ´Ï´Ù.
¸¶¿îÆ® ¸í·É¾î´Â ÀåÄ¡¿¡ ÀÖ´Â ÆÄÀϽýºÅÛÀ» °¡Á®¿Í¼ ¿©·¯ºÐÀÌ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¶§ º¼ ¼ö ÀÖ´Â °èÃþ¿¡ Ãß°¡ÇÕ´Ï´Ù. º¸Åë Ä¿³ÎÀº ·çÆ® ÆÄÀϽýºÅÛÀ» Àбâ Àü¿ëÀ¸·Î ¸¶¿îÆ®ÇÕ´Ï´Ù.
fsck °¡ ·çÆ® ÆÄÀϽýºÅÛÀÌ Á¤»óÀÎÁö È®ÀÎÇÑ µÚ ¸¶¿îÆ® ¸í·É¾î·Î ´Ù½Ã ¸¶¿îÆ®ÇÕ´Ï´Ù.
¸®´ª½º´Â msdos, vfat, minix¿Í °°Àº ´Ù¸¥ Á¾·ùÀÇ ÆÄÀϽýºÅÛµµ Áö¿øÇÕ´Ï´Ù. ƯÁ¤ÇÑ Á¾·ùÀÇ ÆÄÀϽýºÅÛ¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸´Â °¡»ó ÆÄÀÏ ½Ã½ºÅÛ (virtual file system, VFS)¿¡ ÀÇÇØ Ãß»óÈµÇ¾î °¡·ÁÁý´Ï´Ù. Áö±ÝÀº ´õ ÀÌ»ó ±íÀÌ µé¾î°¡Áö´Â ¾Ê°Ú½À´Ï´Ù. ÀÌ°Í¿¡ ´ëÇÑ ³íÀÇ´Â "¸®´ª½º Ä¿³Î(The Linux KernelÀ» º¸½Ê½Ã¿À.)"¿¡ ÀÖ½À´Ï´Ù.
¿ÏÀüÈ÷ ´Ù¸¥ Á¾·ùÀÇ ÆÄÀϽýºÅÛÀÌ
/proc ¿¡ ¸¶¿îÆ®µË´Ï´Ù. »ç½Ç ÀÌ°ÍÀº Ä¿³Î ¾È¿¡ ÀÖ´Â °ÍµéÀ» Ç¥ÇöÇÑ °Í¿¡ ºÒ°úÇÕ´Ï´Ù. ¿©±â¿¡´Â ½Ã½ºÅÛ¿¡¼ µ¹¾Æ°¡°í ÀÖ´Â °¢ ÇÁ·Î¼¼½º¸¶´Ù µð·ºÅ丮°¡ ÀÖÀ¸¸ç, µð·ºÅ丮ÀÇ À̸§Àº ÇÁ·Î¼¼½º ¹øÈ£ÀÔ´Ï´Ù. ¶ÇÇÑ ÀÎÅÍ·´Æ®(interrupts) , meminfo ¿Í °°ÀÌ ¾î¶»°Ô Çϵå¿þ¾î°¡ »ç¿ëµÇ°í ÀÖ´ÂÁö¸¦ ¾Ë·ÁÁÖ´Â °Íµéµµ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº /proc À» µÑ·¯º½À¸·Î½á ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
7.1. ¼³Á¤ ¶Ext2 ÆÄÀϽýºÅÛÀ» ¸¸µå´Â
mke2fs ¸í·É¾î¿¡´Â ÆĶó¸ÞÅ͵éÀÌ ÀÖ½À´Ï´Ù. ÆĶó¸ÞÅ͵éÀº ºí·ÏµéÀÇ Å©±â, inodeµéÀÇ ¼ö¿Í °°Àº °ÍÀ» Á¶ÀýÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº mke2fs ÀÇ ¸Ç ÆäÀÌÁö¸¦ º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ ÆÄÀϽýºÅÛ¿¡ ¹«¾ùÀÌ ¾îµð¿¡ ¸¶¿îÆ®µÇ´ÂÁö´Â
/etc/fstab ÆÄÀÏ¿¡ ÀÇÇØ Á¶ÀýµË´Ï´Ù. ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù.
7.2. ¿¬½À ¹®Á¦ ¶¸Å¿ì ÀÛÀº ÆÄÀϽýºÅÛÀ» ¸¸µé°í Çí½º ºä¾î(hex viewer)·Î º¸½Ê½Ã¿À. inodeµé, ½´ÆÛºí·Ïµé(superblocks)°ú ÆÄÀÏ ³»¿ëµéÀ» ±¸ºÐÇØ º¸½Ê½Ã¿À.
Àú´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ±×·¡ÇÈÀ¸·Î º¸¿©ÁÖ´Â µµ±¸µéÀÌ ÀÖÀ» °ÍÀ̶ó°í ¹Ï½À´Ï´Ù. ã¾Æ¼ ½á º¸½Å µÚ URL°ú ¸®ºä¸¦ Àú¿¡°Ô ¸ÞÀϺ¸³» ÁֽʽÿÀ!
Ä¿³ÎÀÇ ext2 ÆÄÀϽýºÅÛ Äڵ带 º¸½Ê½Ã¿À.
7.3. Ãß°¡ Á¤º¸ ¶
8. Ä¿³Î µ¥¸óµé ¶¿©·¯ºÐÀÌ
ps aux ¸í·ÉÀ» ÀÔ·ÂÇÏ¸é ¾Æ·¡¿Í °°Àº °ÍÀ» º¼ °ÍÀÔ´Ï´Ù.
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND root 1 0.1 8.0 1284 536 ? S 07:37 0:04 init [2] root 2 0.0 0.0 0 0 ? SW 07:37 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW 07:37 0:00 (kupdate) root 4 0.0 0.0 0 0 ? SW 07:37 0:00 (kpiod) root 5 0.0 0.0 0 0 ? SW 07:37 0:00 (kswapd) root 52 0.0 10.7 1552 716 ? S 07:38 0:01 syslogd -m 0 root 54 0.0 7.1 1276 480 ? S 07:38 0:00 klogd root 56 0.3 17.3 2232 1156 1 S 07:38 0:13 -bash root 57 0.0 7.1 1272 480 2 S 07:38 0:01 /sbin/agetty 38400 tt root 64 0.1 7.2 1272 484 S1 S 08:16 0:01 /sbin/agetty -L ttyS1 root 70 0.0 10.6 1472 708 1 R Sep 11 0:01 ps aux ÀÌ°ÍÀº ½Ã½ºÅÛ¿¡¼ ½ÇÇàµÇ°í ÀÖ´Â ÇÁ·Î¼¼½ºµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ÀÌ Á¤º¸´Â Á¦°¡ Àü Àý¿¡¼ ¾ð±ÞÇß´ø
/proc ÆÄÀϽýºÅÛ¿¡¼ ¿Â °ÍÀÔ´Ï´Ù. init ÀÌ ÇÁ·Î¼¼½º ¹øÈ£ 1¹øÀ̶ó´Â Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. ÇÁ·Î¼¼½º 2, 3, 4, 5´Â kflushd, kupdate, kpiod, kswapdÀÔ´Ï´Ù. ¿©±â¼ ¹«¾ùÀΰ¡ ÀÌ»óÇÑ °ÍÀÌ ÀÖ½À´Ï´Ù. °¡»ó ÀúÀå Å©±â (virtual storage size ,SIZE)¿Í ½ÇÁ¦ ÀúÀå Å©±â (Real Storage Size, RSS) ¸¦ »ìÆ캸¸é, ÀÌ ÇÁ·Î¼¼½ºµéÀº ¸ðµÎ 0À» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ¾î¶»°Ô ÇÁ·Î¼¼½º°¡ ¸Þ¸ð¸®¸¦ ¾²Áö ¾ÊÀ» ¼ö ÀÖÀ»±î¿ä?
ÀÌ ÇÁ·Î¼¼½ºµéÀº Ä¿³Î µ¥¸óµéÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Ä¿³ÎÀº ÇÁ·Î¼¼½º ¸ñ·ÏÀ» ÀüÇô º¸¿©ÁÖÁö ¾Ê±â ¶§¹®¿¡, ¾ó¸¶³ª ¸¹Àº ¸Þ¸ð¸®°¡ »ç¿ëµÇ´ÂÁö¸¦ °è»êÇÏ´Â ¹æ¹ýÀº ½Ã½ºÅÛÀÇ »ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸®ÀÇ ¾çÀ» »©´Â ¹æ¹ý¹Û¿¡ ¾ø½À´Ï´Ù. Ä¿³Î µ¥¸óµéÀº init µÚ¿¡ ½ÃÀÛÇϱ⠶§¹®¿¡, ÀϹÝÀûÀÎ ÇÁ·Î¼¼½ºµé°ú °°Àº ÇÁ·Î¼¼½º ¹øÈ£¸¦ ¹Þ½À´Ï´Ù. ÇÏÁö¸¸ ±×µéÀÇ ÄÚµå¿Í µ¥ÀÌÅÍ´Â ¸Þ¸ð¸®ÀÇ Ä¿³Î ºÎºÐ¿¡ ÀÖ½À´Ï´Ù.
ÀÌ ¸í·É¾îµéÀº COMMAND¸¦ »ìÆ캸¸é °ýÈ£°¡ ÃÄÁ® Àִµ¥, ÀÌ´Â
/proc ÆÄÀϽýºÅÛ¿¡ ÀÌ ÇÁ·Î¼¼½ºµéÀÇ Á¤º¸°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
±×·¯¸é ÀÌ·¯ÇÑ Ä¿³Î µ¥¸óµéÀº ¹«¾ùÀ» À§ÇØ ÀÖ´Â °ÍÀϱî¿ä? ÀÌ ¹®¼ÀÇ ÀÌÀü ¹öÀü¿¡¼ Àú´Â Ä¿³Î µ¥¸ó¿¡ ´ëÇØ Àß ¸ô¶ú±â ¶§¹®¿¡ µµ¿òÀ» ¿äûÇß½À´Ï´Ù. ¾Æ·¡ÀÇ À̾߱âÀÇ ÀϺδ ÀÌ ¿äû¿¡ ´ëÇÑ °í¸¶¿î ´äÀåµéÀ» ¸ð¾Æ¼ ¸¸µç °ÍÀÔ´Ï´Ù. ´õ ¸¹Àº ´Ü¼³ª Âü°í Àڷᳪ ¼öÁ¤¿¡´ëÇÑ Á¶¾ðÀº ¾ðÁ¦³ª ȯ¿µÇÕ´Ï´Ù!
ÀÔÃâ·ÂÀº ¸Þ¸ð¸®ÀÇ ¹öÆÛ¸¦ ÅëÇؼ ÀÌ·ç¾îÁý´Ï´Ù. À̸¦ ÅëÇØ ¼Óµµ¸¦ ³ôÀÏ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ ¹«¾ùÀΰ¡¸¦ ¾²´Â °ÍÀ» ¸Þ¸ð¸® ¾ÈÀÇ ¹öÆÛ¿¡ ¸ð¾Ò´Ù°¡ ´õ Å©°í È¿À²ÀûÀÎ ¹À½À¸·Î ¾¹´Ï´Ù.
kflushd ¿Í kupdate µ¥¸óµéÀº ÀÌ·¯ÇÑ ÀϵéÀ» °ü¸®ÇÕ´Ï´Ù. kupdate ´Â (5 ÃÊ Á¤µµÀÇ?) °£°ÝÀ» µÎ°í Á¤±âÀûÀ¸·Î ¹öÆÛ¿¡ ¹«¾ùÀΰ¡°¡ ¸¹ÀÌ ÀÖ´ÂÁö¸¦ È®ÀÎÇÕ´Ï´Ù. ¹«¾ùÀΰ¡°¡ ÀÖ´Ù¸é, kflushd ¸¦ ºÒ·¯¼ ±×µéÀ» µð½ºÅ©¿¡ ¾²°Ô(flush) ÇÕ´Ï´Ù.
ÇÁ·Î¼¼½ºµéÀº ¾Æ¹« Àϵµ ÇÏÁö ¾ÊÀ» ¶§°¡ Á¾Á¾ ÀÖÀ¸¸ç, ½ÇÇàÁßÀÎ °Íµµ ±×µéÀÇ ÄÚµå¿Í µ¥ÀÌÅÍ ¸ðµÎ°¡ ¸Þ¸ð¸®¿¡ ÀÖÀ» ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ°ÍÀº ½ÇÇàÁßÀÎ ÇÁ·Î±×·¥ÀÇ »ç¿ëÇÏÁö ¾Ê´Â ºÎºÐµéÀ» Çϵåµð½ºÅ©ÀÇ ½º¿Ò ÆÄƼ¼ÇÀ¸·Î º¹»çÇÔÀ¸·Î½á ¸Þ¸ð¸®¸¦ ´õ Àß ¾µ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÀÌ µ¥ÀÌÅ͸¦ ÀǵµÇÑ ´ë·Î ¸Þ¸ð¸® ¾ÈÆÆÀ¸·Î ¿òÁ÷ÀÌ´Â °ÍÀº
kpiod ¿Í kswapd ¿¡ ÀÇÇØ ÀÌ·ç¾îÁý´Ï´Ù. ¸î ÃÊ Á¤µµÀÇ °£°ÝÀ» µÎ°í, kswapd °¡ ÀϾ¼ ¸Þ¸ð¸® »óȲÀ» È®ÀÎÇÑ µÚ, µð½ºÅ©¿¡ ÀÖ´Â °ÍÀÌ ¸Þ¸ð¸®¿¡ ÇÊ¿äÇϰųª, ÃæºÐÇÑ ¸Þ¸ð¸®°¡ ¾ø¾î¼ µð½ºÅ©·Î ¿Å°Ü¾ß ÇÒ ¶§ kpiod ¸¦ ºÎ¸¨´Ï´Ù.
¿©·¯ºÐÀÌ ÀÚµ¿ Àü¿ø °ü¸®(automatic power management)¸¦ Ä¿³Î¿¡ Æ÷ÇÔÇϵµ·Ï ¼³Á¤Çß´Ù¸é
kapmd µ¥¸óÀÌ ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ ÀÖÀ» °ÍÀÔ´Ï´Ù.
8.1. ¼³Á¤ ¶update ÇÁ·Î±×·¥Àº ¿©·¯ºÐÀÌ kflushd ¿Í kswapd ¸¦ ¼³Á¤Çϵµ·Ï ÇÕ´Ï´Ù. Á¤º¸¸¦ º¸½Ã·Á¸é update -h ¸¦ ÇØ º¸½Ê½Ã¿À.
½º¿Ò °ø°£Àº
swapon ¿¡ ÀÇÇØ ÄÑÁö°í swapoff ¿¡ ÀÇÇØ ²¨Áý´Ï´Ù. init ½ºÅ©¸³Æ®(/etc/rc.sysinit ³ª /etc/rc.d/rc.sysinit )´Â ½Ã½ºÅÛÀÌ ½ÃÀÛµÉ ¶§ ´ë°³ swapon À» ºÎ¸¨´Ï´Ù. Àú´Â swapoff °¡ ³ëÆ®ºÏ¿¡¼ Àü·ÂÀ» Àý¾àÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀ̶ó°í µé¾ú½À´Ï´Ù.
8.2. ¿¬½À ¹®Á¦ ¶update -d ÇØ º¸½Ã°í, "¹öÆÛ ³»ºÐ¿¡ ´ëÇÑ ¹®Åΰª(threshold for buffer fratricide)"¿¡ °üÇÑ ¸¶Áö¸· ÁÙÀ» º¸½Ê½Ã¿À. Àç¹ÌÀÖ´Â °³³äÀÌ´Ï Á¶»çÇØ º¸½Ê½Ã¿À!
/proc/sys/vm ·Î µð·ºÅ丮¸¦ ¿Å°Ü¼ ±×°÷ÀÇ ÆÄÀϵéÀ» cat ÇØ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÌ ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À.
8.3. Ãß°¡ Á¤º¸ ¶¸®´ª½º ¹®¼È ÇÁ·ÎÁ§Æ®(The Linux Documentation Project)ÀÇ "¸®´ª½º Ä¿³Î(The Linux Kernel)" (The Linux Kernel¿¡¼ URLÀ» º¸½Ê½Ã¿À.)
¿©·¯ºÐÀÌ ÃæºÐÈ÷ ¿ë°¨ÇÏ´Ù¸é, ¸®´ª½º Ä¿³Î ¼Ò½º Äڵ带 º¸½Ê½Ã¿À!
kswapd ÄÚµå´Â linux/mm/vmscan.c ¿¡, kflushd ¿Í kupdate ´Â linux/fs/buffer.c ¿¡ ÀÖ½À´Ï´Ù.
9. ½Ã½ºÅÛ ·Î°Å(System Logger) ¶InitÀº
syslogd ¿Í klogd µ¥¸óµéÀ» ½ÃÀÛÇÕ´Ï´Ù. À̵éÀº ¸Þ½ÃÁöµéÀ» ·Î±×¿¡ ±â·ÏÇÕ´Ï´Ù. Ä¿³ÎÀÇ ¸Þ½ÃÁöµéÀº klogd ÀÌ °ü¸®Çϸç, syslogd ´Â ´Ù¸¥ ÇÁ·Î¼¼½ºµéÀÇ ·Î±× ¸Þ½ÃÁöµéÀ» °ü¸®ÇÕ´Ï´Ù. Á᫐ ·Î±×´Â /var/log/messages ÀÔ´Ï´Ù. ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ÀÌ»óÇØÁ³´Ù¸é ¿©±â¼ºÎÅÍ ½ÃÀÛÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.
9.1. ¼³Á¤ ¶/etc/syslog.conf ´Â ·Î°Å¿¡°Ô ¹«½¼ ¸Þ½ÃÁö¸¦ ¾îµð¿¡ ¾µÁö¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ¸Þ½ÃÁöµéÀº ±×µéÀÌ ¾î´À ¼ºñ½º¿¡¼ ¿Ô´ÂÁö, ±×µéÀÇ Áß¿äµµ(priority)°¡ ¾î´À Á¤µµÀÎÁö¿¡ µû¶ó ±¸º°µË´Ï´Ù. ¼³Á¤ ÆÄÀÏÀº ¼ºñ½º xÀÇ Áß¿äµµ yÀÎ ¸Þ½ÃÁö´Â z·Î °¡¾ß ÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³»´Â ÁÙµé·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. ¿©±â¼ z´Â ÆÄÀÏÀ̰ųª ttyÀ̰ųª, ÇÁ¸°ÅÍÀ̰ųª, ¸®¸ðÆ® È£½ºÆ®°Å³ª, ¹«¾ùÀÌµç µÉ ¼ö ÀÖ½À´Ï´Ù.
ÁÖÀÇ: Syslog´Â
/etc/services ÆÄÀÏÀÌ Àֱ⸦ ¿ä±¸ÇÕ´Ï´Ù. ÀÌ services ÆÄÀÏÀº Æ÷Æ®µéÀ» ÇÒ´çÇÕ´Ï´Ù. Àú´Â ¾ÆÁ÷ syslog°¡ ¸®¸ðÆ® ·Î±ë(remote logging)À» ÇÒ ¶§¸¸ Æ÷Æ®¸¦ ÇÒ´çÇϱ⸦ ¹Ù¶ó´ÂÁö, ¾Æ´Ï¸é ´ÜÁö ¿©·¯ºÐÀÌ /etc/syslog.conf ¿¡ ÀÔ·ÂÇÑ ¼ºñ½º À̸§µéÀ» Æ÷Æ® ¹øÈ£·Î ¹Ù²Ù±â À§Çؼ /etc/services À» ÀÌ¿ëÇÏ´ÂÁö Àß ¸ð¸¨´Ï´Ù.
9.2. ¿¬½À ¹®Á¦ ¶¿©·¯ºÐÀÇ ½Ã½ºÅÛ ·Î±×¸¦ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÌ ÀÌÇØÇÏÁö ¸øÇÑ ¸Þ½ÃÁö¸¦ ã°í, ¹«½¼ Àǹ̸¦ °¡Á³´ÂÁö ¾Ë¾Æ³» º¸½Ê½Ã¿À.
¿©·¯ºÐÀÇ ¸ðµç ·Î±× ¸Þ½ÃÁöµéÀ» tty·Î º¸³» º¸½Ê½Ã¿À. (ÇØ º¸½Å µÚ¿¡´Â ½Ã½ºÅÛÀ» Á¤»óÀ¸·Î µ¹·Á ³õÀ¸½Ê½Ã¿À.)
10. Getty¿Í Login ¶Getty´Â ¿©·¯ºÐÀÌ °¡»ó Å͹̳ÎÀ̳ª ÅؽºÆ® Å͹̳Π¶Ç´Â ¸ðµ©°ú °°Àº Á÷·Ä ÀåÄ¡(serial device)¸¦ ÅëÇؼ ·Î±×ÀÎ ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÝ´Ï´Ù. ÀÌ°ÍÀº ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ »ç¿ëÀÚ À̸§À» ÀÔ·ÂÇϸé, getty´Â
login ¿¡°Ô ³Ñ±é´Ï´Ù. login Àº ¿©·¯ºÐ¿¡°Ô ºñ¹Ð¹øÈ£¸¦ ¹°¾îº¸°í È®ÀÎÇÑ µÚ ¼ÐÀ» ÁÝ´Ï´Ù.
¸¹Àº gettyµéÀÌ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ·¡µåÇÞÀ» ºñ·ÔÇÑ ¸î¸î ¹èÆ÷ÆǵéÀº °¡»ó Å͹̳ηθ¸ µ¿ÀÛÇÏ´Â ¾ÆÁÖ ÀÛÀº gettyÀÎ
mingetty ¸¦ »ç¿ëÇÕ´Ï´Ù.
login ÇÁ·Î±×·¥Àº util-linux ²Ù·¯¹ÌÀÇ ÀϺκÐÀÔ´Ï´Ù. ÀÌ ²Ù·¯¹Ì´Â ¶Ç ´Ù¸¥ Àß µ¿ÀÛÇÏ´Â gettyÀÎ agetty ¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ ²Ù·¯¹Ì´Â mkswap , fdisk , passwd , kill , setterm , mount , swapon , rdev , renice , more (ÇÁ·Î±×·¥)¿Í ´õ ¸¹Àº ÇÁ·Î±×·¥ (more)À» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù.
10.1. ¼³Á¤ ¶·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¿Í ÇÔ²² ȸé À§¿¡ ³ªÅ¸³ª´Â ¸Þ½ÃÁöµéÀº
/etc/issue ¿¡ ÀÖ½À´Ï´Ù. GettysµéÀº /etc/inittab ¿¡¼ ½ÃÀ۵˴ϴÙ. LoginÀº »ç¿ëÀÚÀÇ »ó¼¼ÇÑ Á¤º¸¸¦ /etc/passwd ¿¡¼ ã°í, ¿©·¯ºÐÀÌ Æнº¿öµå ¼ÎµµÀ×(password shadowing)À» ÇÑ´Ù¸é, /etc/shadow ¿¡¼ ã½À´Ï´Ù.
10.2. ¿¬½À ¹®Á¦ ¶/etc/passwd ¸¦ Á÷Á¢ ¸¸µå½Ê½Ã¿À. Æнº¿öµå´Â ¾øÀ» ¼öµµ ÀÖ°í, ÀÏ´Ü ¿©·¯ºÐÀÌ ·Î±×ÀÎ Çϸé passwd ÇÁ·Î±×·¥À¸·Î ¹Ù²Ü ¼öµµ ÀÖ½À´Ï´Ù. man 5 passwd ¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥¿¡ ´ëÇÑ µµ¿ò¸» ´ë½Å ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ µµ¿ò¸»À» º¸½Ê½Ã¿À.
11. ¹è½Ã (Bash) ¶¿©·¯ºÐÀÌ
login ¿¡ ¸Â´Â »ç¿ëÀÚ À̸§°ú Æнº¿öµåÀÇ Á¶ÇÕÀ» ÀÔ·ÂÇß´Ù¸é, loginÀº ¾î¶°ÇÑ ¼ÐÀ» ¿©·¯ºÐ¿¡°Ô ÁÙÁö /etc/passwd ¿¡¼ ãÀ» °ÍÀÔ´Ï´Ù. ´ëºÎºÐÀÇ ¸®´ª½º ½Ã½ºÅÛ¿¡¼´Â bash ¸¦ ÁÙ °ÍÀÔ´Ï´Ù. bash ´Â ¿©·¯ºÐÀÇ ¸í·ÉµéÀ» ÀÐ°í ¹«½¼ÀÏÀ» ÇÏ·Á°í ÇÏ´ÂÁö ¾Ë¾Æ³À´Ï´Ù. µ¿½Ã¿¡ ÀÌ°ÍÀº »ç¿ëÀÚ ÀÎÅÍÆäÀ̽ºÀ̸ç, ÇÁ·Î±×·¡¹Ö ¾ð¾î ÀÎÅÍÇÁ¸°ÅÍÀÔ´Ï´Ù.
»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º·Î¼ ¹è½Ã´Â ¿©·¯ºÐÀÇ ¸í·ÉµéÀ» Àоî¼
cd ¿Í °°Àº "³»ºÎ" ¸í·É¾îµéÀº ½º½º·Î ½ÇÇàÇÏ°í, cp ³ª startx ¿Í °°Àº "¿ÜºÎ" ¸í·É¾îµéÀº ÇÁ·Î±×·¥À» ã¾Æ¼ ½ÇÇàÇÕ´Ï´Ù. »ç¿ëµÈ ¸í·É¾îµéÀÇ ¸ñ·ÏÀ» À¯ÁöÇϸç, ÆÄÀÏ ³×ÀÓÀ» ÀÚµ¿À¸·Î ¿Ï¼ºÇÏ´Â °Í°ú °°Àº ¸ÅȤÀûÀÎ Àϵ鵵 ÇÕ´Ï´Ù.
¿ì¸®´Â
bash ÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ÀÇ ±â´ÉÀ» ÀÌ¹Ì º¸¾Ò½À´Ï´Ù. init °¡ ½Ã½ºÅÛÀ» ½ÃÀÛÇϱâ À§ÇØ ½ÇÇàÇÏ´Â ½ºÅ©¸³Æ®µéÀº ´ë°³ ¼Ð ½ºÅ©¸³Æ® µéÀ̸ç bash ¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù. ¿©·¯ºÐÀÌ ¹«¾ùÀ» ÇÏ°íÀÚ ÇÏ´ÂÁö ¾È´Ù¸é, ÀûÀýÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í Ä¿¸Çµå ¶óÀÎ(command line)¿¡¼ ¾µ ¼ö ÀÖ´Â ÀÏ»óÀûÀÎ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼µéÀº °·ÂÇÑ Á¶ÇÕÀ» ¸¸µì´Ï´Ù. Àú´Â ¾î´À ³¯ ¹«´õ±âÀÇ "ÆÐÄ¡µé(patches)"À» ¼Ò½º ÄÚµåÀÇ µð·ºÅ丮¿¡ Àû¿ëÇÒ ÇÊ¿ä°¡ ÀÖ¾ú½À´Ï´Ù. Àú´Â ¾Æ·¡¿Í °°Àº ÇÑ ÁÙÀÇ ¸í·ÉÀ¸·Î ÀÌ°ÍÀ» ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù.
for f in /home/greg/sh-utils-1.16*.patch; do patch -p0 < $f; done; ÀÌ°ÍÀº ÀúÀÇ È¨ µð·ºÅ丮ÀÇ
sh-utils-1.16 ·Î ½ÃÀÛÇÏ°í .patch ·Î ³¡³ª´Â ¸ðµç ÆÄÀϵéÀ» ã¾Æº¾´Ï´Ù. ±×µéÀ» Çϳª¾¿ Â÷·Ê´ë·Î °¡Á®¿Í¼, º¯¼ö f ¸¦ ¼³Á¤ÇÏ°í do ¿Í done »çÀÌÀÇ ¸í·ÉÀ» ¼öÇàÇÕ´Ï´Ù. ÀÌ °æ¿ì¿¡ Àú´Â 11°³ÀÇ ÆÐÄ¡ ÆÄÀϵéÀÌ ÀÖ¾úÁö¸¸, 3000°³¿´´õ¶óµµ ¶È°°ÀÌ ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
11.1. ¼³Á¤ ¶/etc/profile Àº ½Ã½ºÅÛ Àüü¿¡¼ ¹è½Ã°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö Á¶Á¤ÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ¿©±â¿¡ Áý¾î³Ö´Â °ÍÀº ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡¼ ¹è½Ã¸¦ ¾²´Â »ç¶÷ ¸ðµÎ¿¡°Ô ¿µÇâÀ» ¹ÌÄ¥ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº PATH ¿¡ µð·ºÅ丮¸¦ Ãß°¡ÇÏ°í MAIL µð·ºÅ丮 º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °Í°ú °°Àº ÀÏÀ» ÇÒ °ÍÀÔ´Ï´Ù.
Å°º¸µåÀÇ ±âº»ÀûÀÎ µ¿ÀÛÀº »ç¶÷µéÀÌ ÀϹÝÀûÀ¸·Î ¹Ù¶ó´Â °Í°ú °Å¸®°¡ ¸Ù´Ï´Ù. ÀÌ°ÍÀ» ¿ì¸®°¡ ¹Ù¶ó´Â ´ë·Î ½ÇÁ¦·Î °ü¸®ÇÏ´Â °ÍÀº readlineÀÔ´Ï´Ù. ReadlineÀº Ä¿¸Çµå ¶óÀÎ ÀÎÅÍÆäÀ̽º(command line interfaces)¸¦ °ü¸®ÇÏ°í, »ç¿ëÇÑ ¸í·É¾îµéÀ» Á¦°øÇÏ°í ÆÄÀÏ À̸§À» ÀÚµ¿À¸·Î ¿Ï¼ºÇϸç, °í±Þ Çà ´ÜÀ§ ÆíÁý(advanced line editing)À» ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â µ¶¸³µÈ ²Ù·¯¹ÌÀÔ´Ï´Ù. ÀÌ°ÍÀº ¹è½Ã ¾ÈÀ¸·Î ÄÄÆÄÀϵ˴ϴÙ. ReadlineÀº ±âº»À¸·Î ¿©·¯ºÐÀÇ È¨ µð·ºÅ丮¿¡ ÀÖ´Â
.inputrc À» »ç¿ëÇϵµ·Ï ¼³Á¤µÇ¾ú½À´Ï´Ù. ¹è½Ã º¯¼ö INPUTRC¸¦ ½á¼ ÀÌ°ÍÀ» ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ·¡µåÇÞ 6¿¡¼´Â, INPUTRC ´Â /etc/profile ¿¡¼ /etc/inputrc ·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çؼ ¸ðµÎ°¡ ¹é½ºÆäÀ̽º, µô¸®Æ®, Ȩ, ¿£µå Å°¸¦ Àß ¾µ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
¹è½Ã°¡ ½Ã½ºÅÛ Àüü¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¼³Á¤ ÆÄÀϵéÀ» ÀÐÀº µÚ¿¡´Â °³ÀÎÀûÀÎ ¼³Á¤ ÆÄÀϵéÀ» ÀнÀ´Ï´Ù. ¿©·¯ºÐÀÇ È¨ µð·ºÅ丮¿¡
.bash_profile , .bash_login °ú .profile ÀÌ ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù. À̵é Áß¿¡ °¡Àå ¸ÕÀú ãÀº °ÍÀ» ½ÇÇàÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ´Ù¸¥ »ç¶÷µé¿¡°Ô´Â ¿µÇâÀÌ ¾øÀÌ ¿©·¯ºÐÀ» À§Çؼ ¹è½Ã°¡ µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» ¹Ù²Ù°íÀÚ ÇÑ´Ù¸é, ÀÌ ÆÄÀϵéÀ» °íÄ¡½Ê½Ã¿À. ¿¹¸¦ µé¾î¼, ¸¹Àº ¾îÇø®ÄÉÀ̼ǵéÀº ±×µéÀÌ ¾î¶»°Ô µ¿ÀÛÇÒÁö Á¶ÀýÇϴ ȯ°æ º¯¼öµéÀ» »ç¿ëÇÕ´Ï´Ù. Àú´Â EDITOR º¯¼ö¸¦ vi ·Î ¼³Á¤ÇÏ¿© Á¦°¡ ¹Ìµå³ªÀÕ Ä¿¸à´õ(Midnight Commander, ¾ÆÁÖ ÁÁÀº Äֿܼ¡ ±â¹ÝÇÑ ÆÄÀÏ °ü¸®ÀÚ) ¿¡¼ vi¸¦ ¾µ ¼ö ÀÖµµ·Ï ÇÏ¿´½À´Ï´Ù.
11.2. ¿¬½À ¹®Á¦ ¶¹è½ÃÀÇ ±âº»Àº ¹è¿ì±â ½±½À´Ï´Ù. ÇÏÁö¸¸ °Å±â¼ ¸ØÃßÁö ¸¶½Ê½Ã¿À. ¹è½Ã´Â ¹Ï±â ¾î·Á¿ï ¸¸Å ±í½À´Ï´Ù. ¹«¾ð°¡¸¦ ÇÒ ¶§ ´õ ³ªÀº ¹æ¹ýÀ» ã´Â ¹ö¸©À» µéÀ̽ʽÿÀ.
¼Ð ½ºÅ©¸³Æ®µéÀ» Àаí, ¿©·¯ºÐÀÌ ÀÌÇØÇÏÁö ¸øÇÑ ºÎºÐ¿¡ ´ëÇؼ ã¾Æ º¸½Ê½Ã¿À.
11.3. Ãß°¡ Á¤º¸ ¶
12. ¸í·É¾îµé ¶¿©·¯ºÐÀº ¹è½Ã¿¡¼
cp ¿Í °°Àº ¸í·É¾î¸¦ ÀÔ·ÂÇؼ ´ëºÎºÐÀÇ ÀÏÀ» ÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. cd ¿Í °°ÀÌ ¸î¸î ¸í·É¾î´Â ¼Ð¿¡ ºÙ¾î ÀÖÁö¸¸, ´ëºÎºÐÀÇ ¸í·ÉµéÀº ÀÛÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
¸í·ÉµéÀº ²Ù·¯¹Ì¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç, ±×µéÀÇ ´ëºÎºÐÀº ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î Àç´Ü (¶Ç´Â ±×´©)¿¡¼ °³¹ßµÈ °ÍÀÔ´Ï´Ù. À̵éÀ» ¿°ÅÇÏ´Â ´ë½Å, Àú´Â ¿©·¯ºÐ¿¡°Ô Linux From Scratch HOWTO¿¡ °¡ º¸±â¸¦ ±ÇÇÕ´Ï´Ù. ¸®´ª½º¿¡ µé¾î°¥ ¼ö ÀÖ´Â ÆÐÅ°ÁöµéÀÇ ¿ÏÀüÇÑ ÃֽŠ¸ñ·ÏÀÌ ÀÖÀ¸¸ç, ±×µéÀ» ¼³Ä¡ÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.
13. °á·Ð ¶Á¦ ºÎÁ·ÇÑ ÀÇ°ßÀ¸·Î´Â, ¸®´ª½ºÀÇ °¡Àå ÁÁÀº Á¡ ÁßÀÇ Çϳª´Â ¿©·¯ºÐÀÌ ¾ÈÀ¸·Î µé¾î¿Í ¸ðµç °ÍµéÀÌ ¾î¶»°Ô ¿òÁ÷ÀÌ´ÂÁö ÁøÁ¤À¸·Î ¾Ë ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Àú´Â ¿©·¯ºÐÀÌ ÀÌ ÀÏÀ» Àú¸¸Å Áñ±â¼ÌÀ¸¸é ÇÕ´Ï´Ù. ¶ÇÇÑ ÀÌ ÂªÀº ±â·ÏÀÌ ¿©·¯ºÐ²²¼ ±×°ÍÀ» ÇϽô µ¥ µµ¿òÀÌ µÇ¾ú±â¸¦ ¹Ù¶ø´Ï´Ù.
14.1. ÀúÀÛ±Ç ¶This document is copyright (c) 1999, 2000 Greg O'Keefe. You are welcome to use, copy, distribute or modify it, without charge, under the terms of the GNU General Public Licence. Please acknowledge me if you use all or part of this in another document.
14.2. ȨÆäÀÌÁö ¶ÀÌ ¹®¼ÀÇ ÃÖ½ÅÆÇÀº From Powerup To Bash Prompt¿¡ "Building a Minimal Linux System from Source Code"ÀÇ º¸Á¶ ¹®¼·Î¼ ÀÖ½À´Ï´Ù.
From Powerup To Bash Prompt¿¡ ºÒ¾î ¹ø¿ªÆÇÀÌ ÀÖ½À´Ï´Ù. Dominique van den Broeck ´Ô²² °¨»çµå¸³´Ï´Ù. Yuji Senda ´Ô²²¼ ÀÛ¾÷ÇϽŠÀϺ»¾îÆÇÀº Japanese Documentation and FAQ Project¿¡ ÀÖÀ» ¿¹Á¤À̸ç, ÀÌ¹Ì ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. (¿ªÁÖ - ÀϺ»¾î ¹ø¿ªµµ ¿Ï·áµÇ¾ú½À´Ï´Ù.)
14.3. Çǵå¹é ¶Àú´Â ¿©·¯ºÐÀÇ ¾î¶°ÇÑ Á¶¾ðÀ̳ª ºñÆò, °³¼±À» À§ÇÑ Á¦¾Èµµ µè°í ½Í½À´Ï´Ù. ±×°ÍµéÀ» Àú, Greg O'Keefe¿¡°Ô º¸³»½Ê½Ã¿À.
14.4. °¨»ç ¶Á¦Ç° À̸§µéÀº °¢°¢ÀÇ ¼ÒÀ¯ÀÚÀÇ »óÇ¥À̸ç, ¿©±â¿¡¼ °¨»ç¸¦ µå¸³´Ï´Ù.
ÀÌ ¹®¼¸¦ ¾µ ¼ö ÀÖµµ·Ï µµ¿ÍÁֽŠµ¥ ´ëÇØ ¾Æ·¡ÀÇ ºÐµé²² °¨»ç¸¦ µå¸®°í ½Í½À´Ï´Ù.
Michael Emery
Unios¸¦ ¾Ë·Á Áּ̽À´Ï´Ù.
Tim Little
/etc/passwd ¿¡ ´ëÇØ µµ¿òÀ» Áּ̽À´Ï´Ù.
syslogd´Â
Alex Aitkin
/etc/services ¸¦ ÇÊ¿ä·Î ÇÑ´Ù´Â °ÍÀ» ¾Ë·ÁÁּ̰í, ½Ã½ºÅÛÀ» ¼Ò½º ÄÚµå·Î ¼³Ä¡ÇÏ´Â °ÍÀ» ¹¦»çÇϱâ À§ÇÑ "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸°´Ù(rolling your own)"´Â Ç¥ÇöÀ» ¼Ò°³ÇØ Áּ̽À´Ï´Ù.
Àú¿¡°Ô Vico¿Í ±×ÀÇ "verum ipsum factum"(understanding arises through making, ÀÌÇØ´Â ¸¸µê¿¡¼ ±â¿øÇÑ´Ù)À» Àú¿¡°Ô ¼Ò°³ÇØ Áּ̽À´Ï´Ù.
Dennis Scott
ÀúÀÇ 16Áø¼ö °è»êÀ» °íÃÄ Áּ̽À´Ï´Ù.
jdd
¿ÀÀÚµéÀ» ÁöÀûÇØ Áּ̽À´Ï´Ù.
David Leadbeater
Ä¿³Î µ¥¸ó¿¡ °üÇÑ "º¹ÀâÇÑ(ramblings)"³»¿ëµéÀ» Á¦°øÇØ Áּ̽À´Ï´Ù.
Dominique van den Broeck
ÀÌ ¹®¼¸¦ ºÒ¾î·Î ¹ø¿ªÇØ Áּ̽À´Ï´Ù.
Matthieu Peeters
Ä¿³Î µ¥¸ó¿¡ °üÇÑ ÁÁÀº Á¤º¸¸¦ Áּ̽À´Ï´Ù.
John Fremlin
Ä¿³Î µ¥¸ó¿¡ °üÇÑ ÁÁÀº Á¤º¸¸¦ Áּ̽À´Ï´Ù.
Yuji Senda
ÀÌ ¹®¼¸¦ ÀϾî·Î ¹ø¿ªÇØ Áּ̽À´Ï´Ù.
Antonius de Rozari
UNIOSÀÇ GNU ¾î¼Àºí·¯ ÆÇÀ¸·Î ±â¿©ÇØ Áּ̽À´Ï´Ù. (Ȩ ÆäÀÌÁöÀÇ ¸®¼Ò½º(resources) Àý(section)À» º¸½Ê½Ã¿À.)
Botp Peña
"¿©·¯ºÐ¸¸ÀÇ OS µ¹¸®±â(roll your own os)" ¸µÅ©¸¦ ¿î¿µÇϽʴϴÙ.
Kees J. Bot
¹Ì´Ð½º ¸Ç ÆäÀÌÁöÀÇ ÀúÀڽʴϴÙ. ƯÈ÷, "boot - from power on to the login prompt"¶ó´Â ºÎÁ¦°¡ ºÙÀº
Scott Hankin
boot ¸Ç ÆäÀÌÁö¸¦ ¾²¼Ì½À´Ï´Ù. Àú´Â ÀÌ ¹®¼¸¦ LDP¿¡ Á¦ÃâÇÑ ´ÙÀ½¿¡¼¾ß ÀÌ ÀÛÀº º¸¼®À» ã¾Æ³Â½À´Ï´Ù.
¿ÀÀÚ¸¦ ¾Ë·Á Áּ̽À´Ï´Ù.
14.5.2. 0.8 -> 0.9 (2000³â 11¿ù) ¶
14.5.3. 0.7 -> 0.8 (2000³â 9¿ù) ¶
14.5.4. 0.6 -> 0.7 ¶
14.6. ÇÒ ÀÏ ¶
|
A truly wise man never plays leapfrog with a Unicorn. |