#title From Power Up To Bash Prompt Greg O'Keefe, gcokeefe@postoffice.utas.edu.au v0.9a, November 2000 ---- ȲÁØÇü, envia@kaist.ac.kr ¹ø¿ªÀ» ÇÏ´Â Áß°£¿¡ ô¶Ó©ë®ÞÉ´ÔÀÇ ÀϺ»¾î ¹ø¿ªÆÇÀ» Âü°íÇÏ¿´½À´Ï´Ù. ¿À·ù°¡ ÀÖ´Ù¸é Àú¿¡°Ô ¿¬¶ôÇϽðųª À§Å°ÀÇ Æ¯Â¡À» ÀÌ¿ëÇÏ¿© [¸»¾øÀÌ°íÄ¡±â]¸¦ ÀÌ¿ëÇØ Áֽñ⠹ٶø´Ï´Ù. ¶ÇÇÑ ÀÌ ¹®¼­ÀÇ ³»¿ëÀº ²Ï ¿À·¡ µÇ¾úÀ¸¸ç Á¦°¡ ½ÃÇèÇØ º¸Áö ¾Ê¾Ò±â ¶§¹®¿¡ µ¿ÀÛÇÏÁö ¾Ê´Â °Íµµ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ---- ÀÌ ¹®¼­´Â Àü¿øÀ» ÄÓ ¶§ºÎÅÍ ·Î±×ÀÎÇÏ°í ¹è½Ã ÇÁ·ÒÇÁÆ®°¡ ¶ã ¶§±îÁö ¸®´ª½º ½Ã½ºÅÛ¿¡¼­ ¹«½¼ ÀÏÀÌ ÀϾ´ÂÁö¸¦ °£·«È÷ ¼³¸íÇÕ´Ï´Ù. ÀÌ°ÍÀ» ÀÌÇØÇÏ´Â °ÍÀº ¿©·¯ºÐÀÌ ¹®Á¦¸¦ ÇØ°áÇϰųª ½Ã½ºÅÛÀ» ¼³Á¤ÇÒ ¶§ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. [[TableOfContents]] = ¼Ò°³ = Àú´Â Á¦ ¸®´ª½º ¸Ó½Å¿¡¼­ Á¦°¡ ÀÌÇØÇÏÁö ¸øÇÑ ¸¹Àº ÀϵéÀÌ ÀϾ´Ù´Â °ÍÀ» ºÒ¸¸½º·¯¿ö ÇÕ´Ï´Ù. ¿©·¯ºÐµµ Àú¿Í °°ÀÌ ±×Àú ½Ã½ºÅÛÀÇ »ç¿ë¹ýÀ» ¾Ë°í ½ÍÀ¸½Ç »Ó¸¸ÀÌ ¾Æ´Ï¶ó ÁøÂ¥·Î ½Ã½ºÅÛÀ» ÀÌÇØÇÏ°í ½Í¾îÇϽŴٸé, ÀÌ ¹®¼­´Â ÁÁÀº Ãâ¹ßÁ¡ÀÌ µÉ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ÃÖ°í ¼öÁØÀÇ ¸®´ª½º ¹®Á¦ ÇØ°á»ç°¡ µÇ°í ½ÍÀ» ¶§¿¡µµ ÀÌ·¯ÇÑ Á¾·ùÀÇ ¹è°æ Áö½ÄÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. Àú´Â ¿©·¯ºÐÀÌ µ¿ÀÛÇÏ´Â ¸®´ª½º ¹Ú½º¸¦ °¡Áö°í ÀÖ°í, À¯´Ð½º¿Í PC Çϵå¿þ¾î¿¡ ´ëÇÑ ±âº»ÀûÀÎ °ÍµéÀ» ÀÌÇØÇÏ°í ÀÖ´Ù°í °¡Á¤ÇÏ°Ú½À´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, Eric S. RaymondÀÇ [http://en.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/ The Unix and Internet Fundamentals HOWTO]ºÎÅÍ ¹è¿ì½Ã´Â °ÍÀÌ °ÍÀÌ ¸Å¿ì ¹Ù¶÷Á÷ÇÕ´Ï´Ù. ÀÌ ±ÛÀº ª°í, ¸Å¿ì Àб⠽¬¿ì¸ç, ¸ðµç ±âÃʸ¦ ´Ù·ç°í ÀÖ½À´Ï´Ù. ¸®´ª½º ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ °úÁ¤ÀÌ ÀÌ ¹®¼­ÀÇ ÁÖÁ¦ÀÔ´Ï´Ù. ±×·¸Áö¸¸ Á» ´õ Æ÷°ýÀûÀÎ ÇнÀ ÀÚ·á·Îµµ ¾²ÀÏ ¼ö ÀÖµµ·Ï ³ë·ÂÇÏ¿´½À´Ï´Ù. °¢ Àý(section)¸¶´Ù ¿¬½À ¹®Á¦µéÀ» Æ÷ÇÔÇÏ¿´½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÌ ±×°ÍµéÀ» ½ÇÁ¦·Î ÇØ º»´Ù¸é, ´Ü¼øÈ÷ ÀÐÀ¸¼ÌÀ» ¶§ ¹è¿ï ¼ö ÀÖ´Â °Íº¸´Ù ¸¹Àº °ÍÀ» ¹è¿ì½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Á¦°¡ ¾Æ´Â ÇÑ ¸®´ª½º¸¦ ¹è¿ï ¶§ ÇÒ ¼ö ÀÖ´Â °¡Àå ÁÁÀº ¿¬½ÀÀº ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °ÍÀ̸ç, Àú´Â µ¶ÀںеéÀÌ ±×°ÍÀ» ÇØ º¸¼ÌÀ¸¸é ÇÕ´Ï´Ù. ÀÌÅ»¸®¾ÆÀÇ Ã¶ÇÐÀÚÀÎ Giambattista Vico (1668-1744)´Â "ÀÌÇØ´Â ¸¸µê¿¡¼­ ±â¿øÇÑ´Ù(understanding arises through making)"´Â ¶æÀÎ "verum ipsum factum"À̶ó´Â ¸»À» ³²°å½À´Ï´Ù. ÀÌ ±¸ÀýÀ» °¡¸£ÃÄÁØ Alex([#acknowledge °¨»ç]¸¦ º¸½Ê½Ã¿À.)¿¡°Ô °¨»çÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ¿© "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®°íÀÚ(roll your own)" ÇÑ´Ù¸é, Gerard BeekmansÀÇ [http://www.linuxfromscratch.org Linux From Scratch HOWTO (LFS)]¸¦ º¸¾Æ¾ß ÇÒ °ÍÀÔ´Ï´Ù. LFS¿¡´Â ¼Ò½º ÄÚµå·ÎºÎÅÍ ¿ÏÀüÈ÷ »ç¿ë°¡´ÉÇÑ ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °Í¿¡ °üÇÑ ÀÚ¼¼ÇÑ Áö½Ã»çÇ×µéÀÌ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº LFS À¥»çÀÌÆ®¿¡¼­ ½Ã½ºÅÛÀ» ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ±¸ÃàÇÏ°íÀÚ ÇÏ´Â »ç¶÷µéÀ» À§ÇÑ ¸ÞÀϸµ ¸®½ºÆ®µµ ãÀ» ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. LFSÀÇ ÀϺΠÁö½Ã »çÇ×µéÀº Áö±Ý µ¶¸³µÈ ¹®¼­ÀÎ "How To Build a Minimal Linux System from Source Code"°¡ µÇ¾úÀ¸¸ç, ¿©·¯ºÐÀº ÀÌ°ÍÀ» [http://users.rsise.anu.edu.au/~okeefe/p2b/ From PowerUp to Bash Prompt home page]¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ±×°ÍµéÀº ¼ø¼öÇÏ°Ô ¹è¿ì±â À§ÇÑ ¿¬½ÀÀ¸·Î¼­ "Àå³­°¨(toy)" ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í ÀÖ´Ù. ²Ù·¯¹Ì(package)µéÀº ½Ã½ºÅÛÀÌ ½ÃÀÛÇÏ´Â °úÁ¤¿¡¼­ ³ªÅ¸³ª´Â ¼ø¼­´ë·Î ¼Ò°³µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ²Ù·¯¹ÌµéÀ» ¹®¼­¿¡ ³ª¿Â ¼ø¼­´ë·Î ¼³Ä¡Çϸé, °¢°¢ÀÇ ¼³Ä¡°¡ ³¡³¯ ¶§¸¶´Ù ÀçºÎÆÃÀ» ÇÒ ¼ö ÀÖ°í, ±× ¶§¸¶´Ù ½Ã½ºÅÛÀº ¹è½Ã ÇÁ·ÒÇÁÆ®¸¦ º¸¿©ÁÖ´Â »óÅ¿¡ Á» ´õ °¡±î¿öÁø´Ù´Â °ÍÀ» ¶æÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸éÀ» ÅëÇؼ­ »óȲÀÌ ÁøÀüµÇ°í ÀÖ´Ù´Â È®½ÅÀ» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. Àú´Â ¿©·¯ºÐÀÌ Ã³À½ ÀÐÀ» ¶§¿¡´Â ¿¬½À ¹®Á¦³ª Âü°í ÀÚ·áµéÀ» °Ç³Ê¶Ù¸é¼­ °¢ Àý(section)ÀÇ º»¹®À» Àб⸦ ±ÇÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡ ¾ó¸¶³ª ±í°Ô ÀÌÇØÇÏ°í ½ÍÀºÁö, ¾ó¸¶³ª ¸¹ÀÌ ³ë·ÂÇÒ Áغñ°¡ µÇ¾ú´ÂÁö °áÁ¤ÇϽʽÿÀ. ±× ´ÙÀ½¿¡ ´Ù½Ã óÀ½À¸·Î µ¹¾Æ¿Í¼­, ¿¬½À ¹®Á¦¸¦ Ǫ½Ã°í, Âü°í ÀÚ·áµéµµ ÀÐÀ¸½Ã¸é¼­ ´Ù½Ã ½ÃÀÛÇϽʽÿÀ. = Çϵå¿þ¾î = ¿©·¯ºÐÀÌ Ã³À½À¸·Î ÄÄÇ»Å͸¦ ÄÑ°Ô µÇ¸é ÄÄÇ»ÅÍ´Â ÀÚ±â ÀÚ½ÅÀ» Å×½ºÆ®Çؼ­ ¸ðµç °ÍµéÀÌ Àß ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇÕ´Ï´Ù. ÀÌ °úÁ¤Àº "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-links LILO] ¼½¼Ç¿¡¼­ ãÀ¸½Ê½Ã¿À. PC Çϵå¿þ¾î°¡ ¹«½¼ ÀÏÀ» ÇÏ´Â Áö¿¡ ´ëÇØ ¾ð±ÞÇÒ °ÍÀº ´ç¿¬È÷ ¸¹ÀÌ ³²¾Æ ÀÖÁö¸¸, ÀÌ ¹®¼­´Â ±×°ÍÀ» ´Ù·çÁö ¾Ê½À´Ï´Ù. PC Çϵå¿þ¾î¸¦ ´Ù·é ¸¹Àº ÁÁÀº Ã¥µéÀÌ ÀÖÀ¸´Ï Âü°íÇϽʽÿÀ. == ¼³Á¤ == ÄÄÇ»ÅÍ´Â ÀÚ±â Àڽſ¡ ´ëÇÑ Á¤º¸¸¦ CMOS¿¡ ÀúÀåÇÕ´Ï´Ù. ½Ã½ºÅÛ¿¡ ¾î¶² µð½ºÅ©¿Í ·¥ÀÌ Àִ°¡¿Í °°Àº Á¤º¸µµ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍÀÇ BIOS´Â ¿©·¯ºÐÀÌ ÀÌ·¯ÇÑ ¼³Á¤µéÀ» °íÄ¥ ¼ö ÀÖµµ·Ï ÇÏ´Â ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍ°¡ ÄÑÁú ¶§ È­¸é¿¡ ³ª¿À´Â ¸Þ½ÃÁöµéÀ» È®ÀÎÇÏ¿© ¾î¶»°Ô ±× ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. Á¦ ÄÄÇ»ÅÍ¿¡¼­´Â ¿î¿µÃ¼Á¦°¡ ÀÐÈ÷±â Àü¿¡ µô¸®Æ®(delete)Å°¸¦ ´©¸£¸é µÇ¾ú½À´Ï´Ù. == ¿¬½À ¹®Á¦ == [[Anchor(hardware-ex)]] PC Çϵå¿þ¾î¿¡ ´ëÇØ ¹è¿ï ¼ö ÀÖ´Â ÁÁÀº ¹æ¹ýÀº Áß°í ºÎÇ°µéÀ» ¸ð¾Æ¼­ »õ·Î¿î ÄÄÇ»Å͸¦ Á¶¸³ÇØ º¸´Â °ÍÀÔ´Ï´Ù. ¸®´ª½º¸¦ ½±°Ô ½ÇÇà½Ãų ¼ö ÀÖµµ·Ï Àû¾îµµ 386À» ¸¸µéµµ·Ï ÇϽʽÿÀ. ÁÖº¯¿¡ ¹°¾îº¸¸é, ´ç½ÅÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» ´©±º°¡°¡ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. [http://www.netspace.net.au/~gok/resources Unios]¿¡ ´ëÇØ È®ÀÎÇÏ°í, ´Ù¿î·ÎµåÇÑ µÚ ÄÄÆÄÀÏ ÇÏ¿© ºÎÆ® µð½ºÅ©¸¦ ¸¸µé¾îº¸½Ê½Ã¿À. (±×µéÀÇ È¨ÆäÀÌÁö°¡ http://www.unios.org¿¡ ÀÖ¾úÁö¸¸, »ç¶óÁ³½À´Ï´Ù.) ÀÌ°ÍÀº 100ÁÙ Á¤µµÀÇ ¾î¼Àºí·¯ ÄÚµå·Î ±¸¼ºµÈ ´Ü¼øÇÑ ºÎÆÃÇÒ ¼ö ÀÖ´Â "Hello World!" ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¾î¼Àºí·¯ Äڵ带 GNU ¾î¼Àºí·¯ `as`°¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â ÇüÅ·Πº¯È¯ÇÏ¿© ÀÐ¾î º¸½Ã´Â °Íµµ ÁÁÀ» °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÇ ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®´Â(roll your own)" °Í¿¡ ´ëÇÑ Áö½Ã »çÇ×ÀÌ [http://www.acm.uiuc.edu/sigops/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, Ãâ·Â ÆÄÀÏ)¸¦ Á¤È®È÷ ÀÔ·ÂÇÏ¿´´ÂÁö ''¸Å¿ì'' Á¶½É½º·´°Ô È®ÀÎÇϽʽÿÀ. ¸®·ÎÀÇ ºÎÆ® ·Î´õÀÇ ¼Ò½º Äڵ带 ÀÐ¾î º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == * Eric S. RaymondÀÇ [http://en.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/ The Unix and Internet Fundamentals HOWTO], ƯÈ÷ 3Àý, ''What happens when you switch on a computer?'' * ''The LILO User's Guide''ÀÇ Ã¹¹ø° ÀåÀº PC µð½ºÅ© ÆÄƼ¼Ç°ú ºÎÆÿ¡ °üÇÑ ÃÖ»óÀÇ ¼³¸íÀ» Á¦°øÇÕ´Ï´Ù. URLÀ» À§Çؼ­´Â [#lilo-links LILO] ¼½¼ÇÀ» º¸½Ê½Ã¿À. * Peter Norton °ú Richard WiltonÀÌ ¾²°í, Microsoft Press¿¡¼­ 1988³â¿¡ Ãâ°£µÈ ''The NEW Peter Norton Programmer's Guide to the IBM PC & PS/2''. ÁÁ¾Æ º¸ÀÌ´Â »õ·Î¿î Æǵ鵵 ÀÖÁö¸¸, Áö±Ý ´çÀå »ç±â¿¡´Â µ·ÀÌ ¾ø½À´Ï´Ù! * PC ¾÷±×·¹À̵忡 °üÇÑ Ã¥ = ¸®·Î(Lilo) = ÄÄÇ»ÅÍ°¡ º¸Åë ¸®´ª½º ½Ã½ºÅÛÀÇ ºÎÆ® ¼½Å͸¦ ÀÐÀ» ¶§, ½ÇÁ¦·Î Àд °ÍÀº liloÀÇ ÀϺκÐÀÎ "ÀÏ´Ü°è ºÎÆ® ·Î´õ(first stage boot loader)"ÀÔ´Ï´Ù. ÀÌ°ÍÀº "ÀÌ´Ü°è ºÎÆ® ·Î´õ(first stage boot loader)"¸¦ ºÒ·¯µéÀÌ´Â Àϸ¸À» ÇÏ´Â ÀÛÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ´Ü°è ºÎÆ® ·Î´õ´Â (±×·¸°Ô Çϵµ·Ï ¼³Ä¡ÇÏ¿´´Ù¸é) ÇÁ·ÒÇÁÆ®¸¦ Ç¥½ÃÇÏ°í ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ¿î¿µ üÁ¦¸¦ ÀоîµéÀÔ´Ï´Ù. ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ½ÃÀÛµÇ°í µ¿ÀÛÇÏ´Â »óÅ¿¡¼­ ¿©·¯ºÐÀÌ `lilo`¸¦ ½ÇÇàÇÑ´Ù¸é, ¿©·¯ºÐÀÌ ½ÇÁ¦·Î ½ÇÇàÇÏ´Â °ÍÀº "map installer"ÀÔ´Ï´Ù. ÀÌ°ÍÀº ¼³Á¤ ÆÄÀÏÀÎ `/etc/lilo.conf`¸¦ ÀÐ°í ºÎÆ® ·Î´õ¿Í ºÎÆ®·Î´õ°¡ ÀÐÀ» ¼ö ÀÖ´Â ¿î¿µ üÁ¦¿¡ ´ëÇÑ Á¤º¸¸¦ ÇÏµå µð½ºÅ©¿¡ ¾¹´Ï´Ù. ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀ» ºÎÆ®ÇÏ´Â µ¥¿¡´Â ¸Å¿ì ´Ù¾çÇÑ ¹æ¹ýµéÀÌ ÀÖ½À´Ï´Ù. Á¦°¡ ¼³¸íÇÒ °ÍÀº Àû¾îµµ ÁÖ ¿î¿µ üÁ¦°¡ ¸®´ª½ºÀÎ ½Ã½ºÅÛ¿¡¼­´Â °¡Àå ´Ü¼øÇÏ°í "ÀϹÝÀûÀÎ" ¹æ¹ýÀÔ´Ï´Ù. Lilo »ç¿ëÀÚ °¡À̵å(Lilo Users' Guide)´Â "ºÎÆ® °³³ä(boot concept)"ÀÇ ¸î¸î ¿¹µéÀ» ¼³¸íÇÕ´Ï´Ù. ÀÌ°ÍÀº Àо¸¸ÇÑ ±ÛÀ̸ç, ±× ÁßÀÇ ÀϺθ¦ ¼Ò°³ÇÏ°Ú½À´Ï´Ù. == ¼³Á¤ == LiloÀÇ ¼³Á¤ÆÄÀÏÀº `/etc/lilo.conf`ÀÔ´Ï´Ù. ±×°ÍÀ» À§ÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù. ¼Ð¿¡¼­ `man lilo.conf`¶ó°í Ä¡½Ã¸é º¸½Ç ¼ö ÀÖ½À´Ï´Ù. `lilo.conf`ÀÇ ÇÙ½ÉÀº ¸®·Î°¡ ºÎÆ®Çϵµ·Ï µÇ¾î ÀÖ´Â °Íµé¸¶´Ù Çϳª¾¿ ÀÖ´Â ¼³Á¤ Ç׸ñÀÔ´Ï´Ù. ¸®´ª½º Ç׸ñ¿¡´Â Ä¿³ÎÀÌ ¾îµð¿¡ ÀÖ´ÂÁö¿Í ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î ¾î´À µð½ºÅ© ÆÄƼ¼ÇÀ» ¸¶¿îÆ®ÇÒÁö¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ´Ù¸¥ ¿î¿µ üÁ¦¿¡ ´ëÇÑ Ç׸ñ¿¡´Â ÁÖ·Î ¾î´À ÆÄƼ¼ÇÀ¸·ÎºÎÅÍ ºÎÆ®ÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ Á¤º¸°¡ ÀÖ½À´Ï´Ù. == ¿¬½À ¹®Á¦ == ''À§Çè:'' ÀÌ ¿¬½À ¹®Á¦¸¦ ÇØ°á ÇÏ½Ç ¶§ ÁÖÀÇÇϽʽÿÀ. ¹«¾ð°¡ À߸øÇÏ¿© ¿©·¯ºÐÀÇ ¸¶½ºÅÍ ºÎÆ® ·¹ÄÚµå(your master boot record)¸¦ ³¯¸®°Ô µÇ¾î ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¼ö ¾ø°Ô ¸¸µé±â ½±½À´Ï´Ù. ¿©·¯ºÐÀº ÀÀ±Þ µð½ºÅ©(rescue disk)¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÏ°í, ¾î¶»°Ô ´Ù½Ã º¹±¸ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. Á¦°¡ »ç¿ëÇß°í ±ÇÀåÇÏ´Â ÀÀ±Þ µð½ºÅ©ÀÎ tomsrtbtÀÇ ¸µÅ©´Â ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. °¡Àå ÁÁÀº ¹æ¹ýÀº »ç¿ëÇÒ ¼ö ¾ø°Ô µÇ¾îµµ ±¦ÂúÀº ÄÄÇ»Å͸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ¸®·Î¸¦ Ç÷ÎÇÇ µð½ºÅ©¿¡ ¼³Ä¡ÇϽʽÿÀ. Ç÷ÎÇÇ¿¡ Ä¿³Î¹Û¿¡ ¾ø¾îµµ µË´Ï´Ù. ¿©·¯ºÐÀº Ä¿³ÎÀÌ init¸¦ ºÎ¸£·Á°í ÇÒ ¶§ "Ä¿³Î ÆдÒ(kernel panic)"À» °æÇèÇϽðÚÁö¸¸, ÃÖ¼ÒÇÑ lilo°¡ µ¿ÀÛÇÑ´Ù´Â °ÍÀº ¾Æ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ¹Ù¶ó½Å´Ù¸é Ç÷ÎÇÇ À§¿¡¼­ ½Ã½ºÅÛÀÌ ¾îµð±îÁö ÁøÇàµÉ ¼ö ÀÖ´ÂÁö ½ÇÇèÇØ º¸½Ç ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¾Æ¸¶µµ µÎ¹ø°·Î ÁÁÀº ¸®´ª½º¸¦ ¹è¿ì´Â È°µ¿ÀÏ °ÍÀÔ´Ï´Ù. ´Ü¼­¸¦ À§Çؼ­ Bootdisk HOWTO(URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.)¿Í tomsrtbt (URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.)À» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¸®·Î·Î unios ([#hardware-ex Çϵå¿þ¾î ¿¬½À]¿¡¼­ URLÀ» ãÀ¸½Ê½Ã¿À)¸¦ ºÎÆÃÇØ º¸½Ê½Ã¿À. Ãß°¡·Î, ÀÌ°ÍÀ» Ç÷ÎÇÇ µð½ºÅ©¿¡¼­ ÇÏ½Ç ¼ö ÀÖ´ÂÁö È®ÀÎÇØ º¸½Ê½Ã¿À. ºÎÆ® ·çÇÁ(boot-loop)¸¦ ¸¸µé¾î º¸½Ê½Ã¿À. ¸®·Î¸¦ ¸¶½ºÅÍ ºÎÆ® ·¹Äڵ忡 ¼³Ä¡ÇÏ¿© ÇÁ¶óÀ̸Ӹ® ÆÄƼ¼Ç ºÎÆ® ¼½ÅÍÁßÀÇ Çϳª¿¡ ÀÖ´Â ¸®·Î¸¦ ºÎÆÃÇÏ°í, ±× ¸®·Î°¡ ¸¶½ºÅÍ ºÎÆ® ·¹ÄÚµåÀÇ ¸®·Î¸¦ ºÎÆ®ÇÏ°í, ÀÌ°ÍÀÌ ¹Ýº¹µÇ°Ô ÇϽʽÿÀ. ¿©·¯ºÐÀº ¸¶½ÃÅÍ ºÎÆ® ·¹ÄÚµå¿Í ³×°³ÀÇ ÇÁ¶óÀ̸Ӹ® ÆÄƼ¼Ç ¸ðµÎ¸¦ »ç¿ëÇÏ¿© 5´Ü°è ·çÇÁ¸¦ ¸¸µé ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. Áñ±â¼¼¿ä! == Ãß°¡ Á¤º¸ == [[Anchor(lilo-links)]] * Lilo ¸Ç ÆäÀÌÁö. * Lilo ²Ù·¯¹Ì ([ftp://lrcftp.epfl.ch/pub/linux/local/lilo/ lilo])´Â "LILO User's Guide"ÀÎ `lilo-u-21.ps.gz` (³ª ´õ ÃֽŠ¹öÀü)¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº ÀÌ ¹®¼­¸¦ ÀÌ¹Ì °¡Áö°í ÀÖÀ¸½Ç ¼öµµ ÀÖ½À´Ï´Ù. `/usr/doc/lilo`³ª ±× ÁÖº¯À» »ìÆì º¸½Ê½Ã¿À. ´Ü¼øÇÑ ÅؽºÆ® (plain text)º¸´Ù´Â ±×¸®°ú Ç¥¸¦ Æ÷ÇÔÇÏ´Â Æ÷½ºÆ®½ºÅ©¸³Æ® ÆÇÀÌ ´õ ³ªÀ» °ÍÀÔ´Ï´Ù. * [http://www.toms.net/rb tomsrtbt]´Â °¡Àå ÁÁÀº ÇÑÀåÀÇ Ç÷ÎÇÇ¿¡ µé¾î°¡´Â ¸®´ª½ºÀÔ´Ï´Ù. ÁÁÀº ÀÀ±Þ µð½ºÅ©¸¦ ¸¸µì´Ï´Ù. * [http://en.tldp.org/HOWTO/Bootdisk-HOWTO/ The Bootdisk HOWTO] = ¸®´ª½º Ä¿³Î = ¸®´ª½º Ä¿³ÎÀº Á¤¸»·Î ¸¹Àº ÀÏÀ» ÇÕ´Ï´Ù. Àß Á¤¸®Çϸé, ¸®´ª½º Ä¿³ÎÀº Çϵå¿þ¾îµéÀÌ °øÁ¤ÇÏ°í ´É·üÀûÀ¸·Î ÇÁ·Î±×·¥ÀÌ ¹Ù¶ó´Â ÀÏÀ» Çϵµ·Ï ÇÕ´Ï´Ù. ÇÁ·Î¼¼¼­´Â µ¿½Ã¿¡ ÇÑ°¡Áö ¸í·É¹Û¿¡ ¼öÇàÇÏÁö ¸øÇÏÁö¸¸, ¸®´ª½º ½Ã½ºÅÛÀº µ¿½Ã¿¡ ¸¹Àº ÀÏÀ» ¼öÇàÇÏ´Â °Í ó·³ º¸ÀÔ´Ï´Ù. (¿ªÁÖ - ÃֽŠÇÁ·Î¼¼¼­µéÀº µ¿½Ã¿¡ ¿©·¯ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖÁö¸¸, ¿©ÀüÈ÷ ¸ðµç ÀÏÀ» µ¿½Ã¿¡ ó¸®ÇÏÁö´Â ¸øÇÕ´Ï´Ù.) Ä¿³ÎÀº ÀÛ¾÷°ú ÀÛ¾÷ »çÀ̸¦ ¸Å¿ì ºü¸£°Ô ÀüȯÇÔÀ¸·Î¼­ ÀÌ°ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. Ä¿³ÎÀº ¾î¶² ÇÁ·Î·¹½º°¡ ½ÇÇàµÉ Áغñ°¡ µÇ¾ú°í, ¾î¶² ÇÁ·Î¼¼½º°¡ Çϵåµð½ºÅ© ÆÄÀÏÀÇ ·¹Äڵ峪 Å°º¸µå ÀԷ°ú °°Àº °ÍÀ» ±â´Ù¸®°í ÀÖ´ÂÁö¸¦ ÃßÀûÇÏ¿© ÇÁ·Î¼¼¼­¸¦ °¡Àå È¿À²ÀûÀ¸·Î »ç¿ëµÇ°Ô ÇÕ´Ï´Ù. ÀÌ°ÍÀÌ ½ºÄÉÁ층(scheduling)À̶ó°í ºÒ¸®´Â ÀÛ¾÷ÀÔ´Ï´Ù. ¾î¶² ÇÁ·Î±×·¥ÀÌ ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù¸é, ±×°ÍÀº RAM¿¡ ÀÖÀ» ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ¹«¾ð°¡¸¦ ÇÏ°í ÀÖ´Â ÇÁ·Î±×·¥À̶ó°í ÇÒÁö¶óµµ, ±× ÇÁ·Î±×·¥ÀÇ ÀϺκÐÀº ¾Æ¹«°Íµµ ÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. °¢ ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£Àº ÆäÀÌÁö·Î ³ª´µ¾îÁý´Ï´Ù. Ä¿³ÎÀº ¾î´À ÇÁ·Î¼¼½ºÀÇ ¾î´À ÆäÀÌÁö°¡ °¡Àå ¸¹ÀÌ ¾²ÀÌ´ÂÁö¸¦ ÃßÀûÇÕ´Ï´Ù. ±×´ÙÁö ¸¹ÀÌ ¾²ÀÌÁö ¾Ê´Â ÆäÀÌÁöµéÀº ½º¿Ò ÆÄƼ¼ÇÀ¸·Î ¿Å°ÜÁý´Ï´Ù. ±×µéÀÌ ´Ù½Ã ÇÊ¿äÇØÁö¸é, ´Ù¸¥ ¾²ÀÌÁö ¾Ê´Â ÆäÀÌÁöµéÀÌ ÆäÀÌÁö ¾Æ¿ô(paged out)µÇ¾î °ø°£À» ¸¸µì´Ï´Ù. ÀÌ°ÍÀÌ °¡»ó ¸Þ¸ð¸® °ü¸®ÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ Ä¿³ÎÀ» ÄÄÆÄÀÏÇØ º¸½Å ÀûÀÌ ÀÖÀ¸½Ã´Ù¸é, ƯÁ¤ÇÑ ÀåÄ¡µé¿¡ ´ëÇؼ­ ¸¹°í ¸¹Àº ¿É¼ÇµéÀÌ ÀÖ´Ù´Â °ÍÀ» ´À³¢¼ÌÀ» °ÍÀÔ´Ï´Ù. Ä¿³ÎÀº ´Ù¾çÇÑ Á¾·ùÀÇ Çϵå¿þ¾îµé°ú ´ëÈ­Çϱâ À§ÇÑ ¸¹Àº Ưº° ÄÚµåµéÀ» °¡Áö°í À־, ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥µéÀÌ ¸ðµç Çϵå¿þ¾îµéÀ» ´ÜÀÏÇÏ°í ÁÁÀº ¹æ¹ýÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. Ä¿³ÎÀº ÆÄÀϽýºÅÛ, ÇÁ·Î¼¼½º°£ Åë½Å, ³×Æ®¿öÅ·°ú °ü·ÃµÈ ¸¹Àº °Íµéµµ °ü¸®ÇÕ´Ï´Ù. ÀÏ´Ü Ä¿³ÎÀÌ ºÒ·ÁÁö¸é, °¡Àå ¸ÕÀú ÇÏ´Â ÀÏÀº ½ÇÇàÇÒ `init` ÇÁ·Î±×·¥À» ã´Â °ÍÀÔ´Ï´Ù. == ¼³Á¤ == ¿©·¯ºÐÀÌ `/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`µµ º¹»çÇϼ¼¿ä. == ¿¬½À ¹®Á¦ == `/dev/hda3`´Â ÇÏµå µð½ºÅ© ÆÄƼ¼ÇÀ» ¼³¸íÇϴ Ưº°ÇÑ Á¾·ùÀÇ ÆÄÀÏÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ°ÍÀº ´Ù¸¥ ÆÄÀϵé°ú °°ÀÌ ÆÄÀÏ ½Ã½ºÅÛ ¾È¿¡ ÀÖ½À´Ï´Ù. Ä¿³ÎÀº ¾î´À ÆÄƼ¼ÇÀ» ·çÆ® ÆÄƼ¼ÇÀ¸·Î ¸¶¿îÆ®ÇÒÁö¸¦ ¾Ë°íÀÚ ÇÕ´Ï´Ù. ÇÏÁö¸¸, ÆÄÀÏ ½Ã½ºÅÛÀº ¾ÆÁ÷ ¾ø´Â »óÅÂÀÔ´Ï´Ù. Ä¿³ÎÀÌ ¾î¶»°Ô `/dev/hda3`À» Àо ¾î´À ÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇÒÁö¸¦ ¾Ë±î¿ä? »ý°¢ÇØ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÌ ¾ÆÁ÷ Çغ¸Áö ¾ÊÀ¸¼Ì´Ù¸é, ¿©·¯ºÐ¸¸ÀÇ Ä¿³ÎÀ» ¸¸µé¾î º¸½Ê½Ã¿À. °¢ ¿É¼Ç¸¶´Ù ÀÖ´Â µµ¿ò¸»À» ¸ðµÎ ÀÐ¾î º¸½Ê½Ã¿À. ÀÛµ¿ÇÏ´Â Ä¿³ÎÀ» ¾ó¸¶³ª ÀÛ°Ô ¸¸µé ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. ²À ÇÊ¿äÇÑ °ÍÀ» »°À» ¶§ ¿©·¯ºÐÀº ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù. "The Linux Kernel" (URLÀº ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.) À» Àо°í ÂüÁ¶ÇÏ´Â ¼Ò½º ÄÚµåµéÀ» ã¾Æ º¸½Ê½Ã¿À. (Á¦°¡ ÀÌ ±ÛÀ» ¾µ ¶§) ÀÌ Ã¥Àº Ä¿³Î 2.0.33À» ÂüÁ¶ÇÏ°í ÀÖ¾úÀ¸¸ç, ÀÌ°ÍÀº ²Ï Áö³­ ¹èÆ÷ÆÇÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ±¸½ÄÀÎ Ä¿³ÎÀ» ´Ù¿î·Îµå ¹Þ¾Æ Âü°íÇÏ´Â °ÍÀÌ ´õ ÆíÇÒÁöµµ ¸ð¸£°Ú½À´Ï´Ù. "ÇÁ·Î¼¼½º"¿Í "ÆäÀÌÁö"¶ó°í ºÒ¸®´Â C Äڵ带 ã´Â °ÍÀº ³î¶ó¿î ÀÏÀÔ´Ï´Ù. ÇØÅ·ÇϽʽÿÀ! ¿©·¯ºÐÀÌ Ãß°¡ÀûÀÎ ¸Þ½ÃÁö³ª ´Ù¸¥ °ÍµéÀ» Ãâ·ÂÇÏ°Ô ¸¸µé¼ö ÀÖ´ÂÁö ½ÃÇèÇØ º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == [[Anchor(Kernel)]] * `/usr/src/linux/README` ¿Í `/usr/src/linux/Documentation/`ÀÇ ³»¿ë¹° (À̵éÀº ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡´Â ´Ù¸¥ À§Ä¡¿¡ ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù.) * [http://mirror.aarnet.edu.au/linux/LDP/HOWTO/Kernel-HOWTO.html The Kernel HOWTO] * ¿©·¯ºÐÀÌ Ä¿³ÎÀ» `make menuconfig`³ª `make xconfig`·Î ¼³Á¤ÇÒ ¶§ º¼ ¼ö ÀÖ´Â µµ¿ò¸» * [http://mirror.aarnet.edu.au/linux/LDP/LDP/ The Linux Kernel (and other LDP Guides)] * ¼Ò½º ÄÚµå: [http://users.rsise.anu.edu.au/~okeefe/p2b/buildMin/buildMin.html How To Build a Minimal Linux System from Source Code]¿¡¼­ URLÀ» º¸½Ê½Ã¿À. = ±×´© 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) }}} == ¼³Á¤ == ¶óÀ̺귯¸®ÀÇ ¸î¸î ÇÔ¼öµéÀº ¿©·¯ºÐÀÌ ¾îµð¿¡ »ç½Ã´ÂÁö¿¡ µû¶ó ´Ù¸¥ ÀÏÀ» ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, È£ÁÖ¿¡¼­´Â ³¯ÀÚ¸¦ ÀÏ/¿ù/³â°ú °°ÀÌ ¾²Áö¸¸, ¹Ì±¹¿¡¼­´Â ¿ù/ÀÏ/³â°ú °°ÀÌ ¾¹´Ï´Ù. `glibc` ¹èÆ÷ÆÇ¿¡ ÇÔ²² ÀÖ´Â `localedef`¶ó´Â ÇÁ·Î±×·¥Àº ¿©·¯ºÐÀÌ ÀÌ°ÍÀ» ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. == ¿¬½À ¹®Á¦ == ¿©·¯ºÐÀÌ °¡Àå ÁÁ¾ÆÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ¾î¶°ÇÑ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´ÂÁö `ldd`·Î ¾Ë¾Æº¸½Ê½Ã¿À. `ldd`·Î `init`°¡ ¾î¶² ¶ó¸®ºê·¯¸®¸¦ »ç¿ëÇÏ´ÂÁö ¾Ë¾Æº¸½Ê½Ã¿À. ÇÑ°³³ª µÎ°³ÀÇ ÇÔ¼ö¸¸À» Æ÷ÇÔÇÏ´Â Àå³­°¨ ¶óÀ̺귯¸®¸¦ ¸¸µé¾î º¸½Ê½Ã¿À. ±×·¯ÇÑ ¶óÀ̺귯¸®´Â `ar` ÇÁ·Î±×·¥À¸·Î ¸¸µé ¼ö ÀÖÀ¸¸ç, `ar`ÀÇ ¸Ç ÆäÀÌÁö´Â ¾î¶»°Ô ÀÌ°ÍÀÌ ÀÌ·ç¾îÁö´ÂÁö Á¶»çÇϱâ À§ÇØ ¸ÕÀú º¸¾Æ¾ß ÇÒ ÀÚ·áÀÔ´Ï´Ù. ÀÌ ¶óÀ̺귯¸®¸¦ ¾²´Â ÇÁ·Î±×·¥À» ¾²°í ÄÄÆÄÀÏ ÇÑ µÚ ¸µÅ©ÇØ º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == * ¼Ò½º ÄÚµå: [http://www.netspace.net.au/~gok/power2bash Building a Minimal Linux System from Source Code]¿¡¼­ URLÀ» ãÀ¸½Ê½Ã¿À. = 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` ÆÄÀÏÀ» ÆíÁýÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. == ¼³Á¤ == `/etc/inittab` Àº init¸¦ À§ÇÑ ÃÖ°í ¼öÁØÀÇ ¼³Á¤ ÆÄÀÏÀÔ´Ï´Ù. N = 0, 1, ..., 6ÀÎ `rcN.d` µð·ºÅ丮µéÀº ¾î¶² ¼­ºê½Ã½ºÅÛÀÌ ½ÃÀ۵ǴÂÁö¸¦ °áÁ¤ÇÕ´Ï´Ù. init¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ½ºÅ©¸³Æ® ÁßÀÇ ÇϳªÀÇ ¾îµð¿¡¼±°¡ `mount -a` ¸í·ÉÀÌ ½ÇÇàµÉ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¸¶¿îÆ®Çϱâ·Î ¿¹Á¤µÈ ¸ðµç ÆÄÀϽýºÅÛµéÀÌ ¸¶¿îÆ®ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÆÄÀÏ `/etc/fstab`ÀÌ ¹«¾ùÀÌ ¸¶¿îÆ®µÉ ¿¹Á¤ÀÎÁö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ½Ã½ºÅÛÀÌ ½ÃÀÛµÉ ¶§ ¹«¾ùÀÌ ¾îµð¿¡ ¸¶¿îÆ® µÇ´ÂÁö¸¦ ¹Ù²Ù°í ½ÍÀ¸½Ã´Ù¸é ÀÌ ÆÄÀÏÀ» ÆíÁýÇϽʽÿÀ. `fstab`¿¡ ´ëÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù. == ¿¬½À ¹®Á¦ == ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÇ ±âº» ·±·¹º§À» À§ÇÑ `rcN.d`µð·ºÅ丮¸¦ ã¾Æ ÆÄÀϵéÀÌ ¾îµð·Î ¸µÅ©µÇ¾î ÀÖ´ÂÁö `ls -l`·Î º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ´Â gettyµéÀÇ ¼ö¸¦ ¹Ù²Ù¾î º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ ±âº» ·±·¹º§¿¡¼­ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ¼­ºê½Ã½ºÅÛÀ» ¾ø¾Ö½Ê½Ã¿À. ¾ó¸¶³ª ÀûÀº ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¸ç ½Ã½ºÅÛÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ Ç÷ÎÇÇ µð½ºÅ©¿¡ ¸®·Î¿Í Ä¿³Î, ±×¸®°í Á¤ÀûÀ¸·Î ¸µÅ©µÈ "hello world" ÇÁ·Î±×·¥ÀÎ `/sbin/init`¸¦ ³Ö°í ºÎÆ®ÇÑ µÚ ÀλçÇÏ´Â °ÍÀ» º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ °ÍÀ» ÁÖÀDZí°Ô º¸½Ã¸é¼­ ¹«¾ùÀÌ ÀϾ°í ÀÖ´Ù°í ¸»ÇÏ´ÂÁö ±â·ÏÇϽʽÿÀ. ¶Ç´Â `/var/log/messages`ÀÇ ½ÃÀÛÇÒ ¶§ºÎÅÍ ÀϺκÐÀ» Ãâ·ÂÇØ º¸½Ê½Ã¿À. ±× ´ÙÀ½¿¡ `inittab`¿¡¼­ºÎÅÍ ¸ðµç ½ºÅ©¸³Æ®¸¦ º¸½Ã¸é¼­ ¹«½¼ Äڵ尡 ¹«¾ùÀ» ÇÏ´ÂÁö º¸½Ê½Ã¿À. ¿©·¯ºÐÀº ¾Æ·¡¿Í °°Àº ½ÃÀÛ ¸Þ½ÃÁö¸¦ Ãß°¡ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. {{{ echo "Hello, I am rc.sysinit" }}} ¹è½Ã ¼Ð ½ºÅ©¸³Æ®¿¡ ¹è¿ì´Â °Íµµ ¾ÆÁÖ ÁÁÀº ¿¬½ÀÀÔ´Ï´Ù. ¸î¸îÀº ¾ÆÁÖ º¹ÀâÇÕ´Ï´Ù. ÁÁÀº ¹è½Ã Âü°í¼­¿Í ÇÔ²² ÇϽʽÿÀ. == Ãß°¡ Á¤º¸ == * `inittab`¿Í `fstab` ÆÄÀϵ鿡 °üÇÑ ¸ÇÆäÀÌÁöµéÀÌ ÀÖ½À´Ï´Ù. (¿¹¸¦ µé¾î) ¼Ð¿¡¼­ `man inittab` À̶ó°í Ä¡½Ã¸é º¸½Ç ¼ö ÀÖ½À´Ï´Ù. * ¸®´ª½º ½Ã½ºÅÛ °ü¸® °¡À̵å(The Linux System Administrators Guide)¿¡´Â init¿¡ °üÇÑ ÁÁÀº [http://mirror.aarnet.edu.au/linux/LDP/LDP/ Àý(section)]ÀÌ ÀÖ½À´Ï´Ù. * ¼Ò½º ÄÚµå: URLÀ» [http://www.netspace.net.au/~gok/power2bash Building a Minimal Linux System from Source Code]¿¡¼­ º¸½Ê½Ã¿À. = ÆÄÀÏ ½Ã½ºÅÛ = ÀÌ Àý¿¡¼­ Àú´Â "ÆÄÀϽýºÅÛ"À̶ó´Â ´Ü¾î¸¦ µÎ °¡ÁöÀÇ ´Ù¸¥ Àǹ̷Π»ç¿ëÇÒ °ÍÀÔ´Ï´Ù. µð½ºÅ© ÆÄƼ¼ÇÀ̳ª ´Ù¸¥ µð¹ÙÀ̽º¿¡ ÀÖ´Â ÆÄÀϽýºÅÛÀÌ ÀÖ°í, µ¿ÀÛÇÏ´Â ¸®´ª½º ½Ã½ºÅÛ¿¡ ÀÇÇØ ¿©·¯ºÐ¿¡°Ô´Â ÀÖ´Â °Íó·³ º¸ÀÌ´Â ÆÄÀϽýºÅÛÀÌ ÀÖ½À´Ï´Ù. Àü Àý¿¡¼­ Àú´Â 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)¿¡ ÀÇÇØ Ãß»óÈ­µÇ¾î °¡·ÁÁý´Ï´Ù. Áö±ÝÀº ´õ ÀÌ»ó ±íÀÌ µé¾î°¡Áö´Â ¾Ê°Ú½À´Ï´Ù. ÀÌ°Í¿¡ ´ëÇÑ ³íÀÇ´Â "¸®´ª½º Ä¿³Î([#Kernel The Linux Kernel]À» º¸½Ê½Ã¿À.)"¿¡ ÀÖ½À´Ï´Ù. ¿ÏÀüÈ÷ ´Ù¸¥ Á¾·ùÀÇ ÆÄÀϽýºÅÛÀÌ `/proc`¿¡ ¸¶¿îÆ®µË´Ï´Ù. »ç½Ç ÀÌ°ÍÀº Ä¿³Î ¾È¿¡ ÀÖ´Â °ÍµéÀ» Ç¥ÇöÇÑ °Í¿¡ ºÒ°úÇÕ´Ï´Ù. ¿©±â¿¡´Â ½Ã½ºÅÛ¿¡¼­ µ¹¾Æ°¡°í ÀÖ´Â °¢ ÇÁ·Î¼¼½º¸¶´Ù µð·ºÅ丮°¡ ÀÖÀ¸¸ç, µð·ºÅ丮ÀÇ À̸§Àº ÇÁ·Î¼¼½º ¹øÈ£ÀÔ´Ï´Ù. ¶ÇÇÑ `ÀÎÅÍ·´Æ®(interrupts)`, `meminfo`¿Í °°ÀÌ ¾î¶»°Ô Çϵå¿þ¾î°¡ »ç¿ëµÇ°í ÀÖ´ÂÁö¸¦ ¾Ë·ÁÁÖ´Â °Íµéµµ ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº `/proc`À» µÑ·¯º½À¸·Î½á ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. == ¼³Á¤ == Ext2 ÆÄÀϽýºÅÛÀ» ¸¸µå´Â `mke2fs` ¸í·É¾î¿¡´Â ÆĶó¸ÞÅ͵éÀÌ ÀÖ½À´Ï´Ù. ÆĶó¸ÞÅ͵éÀº ºí·ÏµéÀÇ Å©±â, inodeµéÀÇ ¼ö¿Í °°Àº °ÍÀ» Á¶ÀýÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº `mke2fs`ÀÇ ¸Ç ÆäÀÌÁö¸¦ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ ÆÄÀϽýºÅÛ¿¡ ¹«¾ùÀÌ ¾îµð¿¡ ¸¶¿îÆ®µÇ´ÂÁö´Â `/etc/fstab` ÆÄÀÏ¿¡ ÀÇÇØ Á¶ÀýµË´Ï´Ù. ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ ¸Ç ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù. == ¿¬½À ¹®Á¦ == ¸Å¿ì ÀÛÀº ÆÄÀϽýºÅÛÀ» ¸¸µé°í Çí½º ºä¾î(hex viewer)·Î º¸½Ê½Ã¿À. inodeµé, ½´ÆÛºí·Ïµé(superblocks)°ú ÆÄÀÏ ³»¿ëµéÀ» ±¸ºÐÇØ º¸½Ê½Ã¿À. Àú´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ±×·¡ÇÈÀ¸·Î º¸¿©ÁÖ´Â µµ±¸µéÀÌ ÀÖÀ» °ÍÀ̶ó°í ¹Ï½À´Ï´Ù. ã¾Æ¼­ ½á º¸½Å µÚ URL°ú ¸®ºä¸¦ Àú¿¡°Ô ¸ÞÀϺ¸³» ÁֽʽÿÀ! Ä¿³ÎÀÇ ext2 ÆÄÀϽýºÅÛ Äڵ带 º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == * LDP¿¡¼­ ³ª¿Â Ã¥ÀÎ "The Linux Kernel"ÀÇ 9ÀåÀº ÆÄÀϽýºÅÛ¿¡ ´ëÇÑ ÈǸ¢ÇÑ ¼³¸íÀÔ´Ï´Ù. ¿©·¯ºÐÀº ÀÌ°ÍÀ» È£ÁÖ LDP [http://mirror.aarnet.edu.au/linux/LDP/LDP/ ¹Ì·¯]¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. * `mount` ¸í·ÉÀº util-linux ²Ù·¯¹ÌÀÇ ÀϺκÐÀ̸ç, [http://www.netspace.net.au/~gok/power2bash Building a Minimal Linux System from Source Code]¿¡ ±×°Í¿¡ ´ëÇÑ ¸µÅ©°¡ ÀÖ½À´Ï´Ù. * `mount`, `fstab`, `fsck`, `mke2fs`, `proc`ÀÇ ¸Ç ÆäÀÌÁö * `/proc` ÆÄÀϽýºÅÛÀ» ¼³¸íÇÏ´Â ¸®´ª½º ¼Ò½º ÄÚµåÀÇ `Documentation/proc.txt` * EXT2 ÆÄÀÏ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼ÀÎ [http://web.mit.edu/tytso/www/linux/e2fsprogs.html ext2fsprogs]ÀÇ È¨ ÆäÀÌÁö³ª [ftp://mirror.aarnet.edu.au/pub/linux/metalab/system/filesystems/ext2/ ext2fsprogs]ÀÇ È£ÁÖ ¹Ì·¯. ¿©±â¿¡µµ Á¶±Ý ³°¾Ò°í "The Linux Kernel"ÀÇ 9À常ŭ Àбâ ÁÁÁö´Â ¾ÊÁö¸¸ Ext2fs¸¦ µÑ·¯º¸´Â ¹®¼­°¡ ÀÖ½À´Ï´Ù. * [[Anchor(FHS)]] [ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd/ À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ Ç¥ÁØ (Unix File System Standard)] À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ Ç¥ÁØÀ¸·ÎÀÇ ¶Ç ´Ù¸¥ [http://www.pathname.com/fhs/ ¸µÅ©]" ÀÌ ¹®¼­´Â À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¹«¾ùÀÌ ¾îµð¿¡ ÀÖ¾î¾ß Çϸç, ±× ÀÌÀ¯´Â ¹«¾ùÀÎÁö ¼³¸íÇÕ´Ï´Ù. ¶ÇÇÑ, `/bin`, `/sbin` µî¿¡ ÃÖ¼ÒÇÑ ¹«¾ùÀÌ ÀÖ¾î¾ß ÇÏ´ÂÁö¸¦ ¼³¸íÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ¿ÏÀüÇÏÁö¸¸ °¡´ÉÇÑ ÇÑ ÀÛÀº ½Ã½ºÅÛÀ» ¸¸µå·Á°í ÇϽŴٸé ÁÁÀº Âü°í ÀÚ·áÀÔ´Ï´Ù. = Ä¿³Î µ¥¸óµé = ¿©·¯ºÐÀÌ `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` µ¥¸óÀÌ ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. == ¼³Á¤ == `update`ÇÁ·Î±×·¥Àº ¿©·¯ºÐÀÌ `kflushd`¿Í `kswapd`¸¦ ¼³Á¤Çϵµ·Ï ÇÕ´Ï´Ù. Á¤º¸¸¦ º¸½Ã·Á¸é `update -h` ¸¦ ÇØ º¸½Ê½Ã¿À. ½º¿Ò °ø°£Àº `swapon`¿¡ ÀÇÇØ ÄÑÁö°í `swapoff`¿¡ ÀÇÇØ ²¨Áý´Ï´Ù. init ½ºÅ©¸³Æ®(`/etc/rc.sysinit`³ª `/etc/rc.d/rc.sysinit`)´Â ½Ã½ºÅÛÀÌ ½ÃÀÛµÉ ¶§ ´ë°³ `swapon`À» ºÎ¸¨´Ï´Ù. Àú´Â `swapoff`°¡ ³ëÆ®ºÏ¿¡¼­ Àü·ÂÀ» Àý¾àÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀ̶ó°í µé¾ú½À´Ï´Ù. == ¿¬½À ¹®Á¦ == `update -d` ÇØ º¸½Ã°í, "¹öÆÛ ³»ºÐ¿¡ ´ëÇÑ ¹®Åΰª(threshold for buffer fratricide)"¿¡ °üÇÑ ¸¶Áö¸· ÁÙÀ» º¸½Ê½Ã¿À. Àç¹ÌÀÖ´Â °³³äÀÌ´Ï Á¶»çÇØ º¸½Ê½Ã¿À! `/proc/sys/vm`·Î µð·ºÅ丮¸¦ ¿Å°Ü¼­ ±×°÷ÀÇ ÆÄÀϵéÀ» `cat` ÇØ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÌ ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == ¸®´ª½º ¹®¼­È­ ÇÁ·ÎÁ§Æ®(The Linux Documentation Project)ÀÇ "¸®´ª½º Ä¿³Î(The Linux Kernel)" ([#Kernel The Linux Kernel]¿¡¼­ URLÀ» º¸½Ê½Ã¿À.) ¿©·¯ºÐÀÌ ÃæºÐÈ÷ ¿ë°¨ÇÏ´Ù¸é, ¸®´ª½º Ä¿³Î ¼Ò½º Äڵ带 º¸½Ê½Ã¿À! `kswapd` ÄÚµå´Â `linux/mm/vmscan.c`¿¡, `kflushd`¿Í `kupdate`´Â `linux/fs/buffer.c`¿¡ ÀÖ½À´Ï´Ù. = ½Ã½ºÅÛ ·Î°Å(System Logger) = InitÀº `syslogd`¿Í `klogd` µ¥¸óµéÀ» ½ÃÀÛÇÕ´Ï´Ù. À̵éÀº ¸Þ½ÃÁöµéÀ» ·Î±×¿¡ ±â·ÏÇÕ´Ï´Ù. Ä¿³ÎÀÇ ¸Þ½ÃÁöµéÀº `klogd`ÀÌ °ü¸®Çϸç, `syslogd`´Â ´Ù¸¥ ÇÁ·Î¼¼½ºµéÀÇ ·Î±× ¸Þ½ÃÁöµéÀ» °ü¸®ÇÕ´Ï´Ù. Á᫐ ·Î±×´Â `/var/log/messages`ÀÔ´Ï´Ù. ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ÀÌ»óÇØÁ³´Ù¸é ¿©±â¼­ºÎÅÍ ½ÃÀÛÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. == ¼³Á¤ == `/etc/syslog.conf`´Â ·Î°Å¿¡°Ô ¹«½¼ ¸Þ½ÃÁö¸¦ ¾îµð¿¡ ¾µÁö¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ¸Þ½ÃÁöµéÀº ±×µéÀÌ ¾î´À ¼­ºñ½º¿¡¼­ ¿Ô´ÂÁö, ±×µéÀÇ Áß¿äµµ(priority)°¡ ¾î´À Á¤µµÀÎÁö¿¡ µû¶ó ±¸º°µË´Ï´Ù. ¼³Á¤ ÆÄÀÏÀº ¼­ºñ½º xÀÇ Áß¿äµµ yÀÎ ¸Þ½ÃÁö´Â z·Î °¡¾ß ÇÑ´Ù´Â °ÍÀ» ³ªÅ¸³»´Â ÁÙµé·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. ¿©±â¼­ z´Â ÆÄÀÏÀ̰ųª ttyÀ̰ųª, ÇÁ¸°ÅÍÀ̰ųª, ¸®¸ðÆ® È£½ºÆ®°Å³ª, ¹«¾ùÀÌµç µÉ ¼ö ÀÖ½À´Ï´Ù. ÁÖÀÇ: Syslog´Â `/etc/services` ÆÄÀÏÀÌ Àֱ⸦ ¿ä±¸ÇÕ´Ï´Ù. ÀÌ services ÆÄÀÏÀº Æ÷Æ®µéÀ» ÇÒ´çÇÕ´Ï´Ù. Àú´Â ¾ÆÁ÷ syslog°¡ ¸®¸ðÆ® ·Î±ë(remote logging)À» ÇÒ ¶§¸¸ Æ÷Æ®¸¦ ÇÒ´çÇϱ⸦ ¹Ù¶ó´ÂÁö, ¾Æ´Ï¸é ´ÜÁö ¿©·¯ºÐÀÌ `/etc/syslog.conf`¿¡ ÀÔ·ÂÇÑ ¼­ºñ½º À̸§µéÀ» Æ÷Æ® ¹øÈ£·Î ¹Ù²Ù±â À§Çؼ­ `/etc/services`À» ÀÌ¿ëÇÏ´ÂÁö Àß ¸ð¸¨´Ï´Ù. == ¿¬½À ¹®Á¦ == ¿©·¯ºÐÀÇ ½Ã½ºÅÛ ·Î±×¸¦ º¸½Ê½Ã¿À. ¿©·¯ºÐÀÌ ÀÌÇØÇÏÁö ¸øÇÑ ¸Þ½ÃÁö¸¦ ã°í, ¹«½¼ Àǹ̸¦ °¡Á³´ÂÁö ¾Ë¾Æ³» º¸½Ê½Ã¿À. ¿©·¯ºÐÀÇ ¸ðµç ·Î±× ¸Þ½ÃÁöµéÀ» tty·Î º¸³» º¸½Ê½Ã¿À. (ÇØ º¸½Å µÚ¿¡´Â ½Ã½ºÅÛÀ» Á¤»óÀ¸·Î µ¹·Á ³õÀ¸½Ê½Ã¿À.) == Ãß°¡ Á¤º¸ == sysklogd È£ÁÖ [http://mirror.aarnet.edu.au/pub/linux/metalab/system/daemons/ ¹Ì·¯] = 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)À» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. == ¼³Á¤ == ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¿Í ÇÔ²² È­¸é À§¿¡ ³ªÅ¸³ª´Â ¸Þ½ÃÁöµéÀº `/etc/issue`¿¡ ÀÖ½À´Ï´Ù. GettysµéÀº `/etc/inittab`¿¡¼­ ½ÃÀ۵˴ϴÙ. LoginÀº »ç¿ëÀÚÀÇ »ó¼¼ÇÑ Á¤º¸¸¦ `/etc/passwd`¿¡¼­ ã°í, ¿©·¯ºÐÀÌ Æнº¿öµå ¼ÎµµÀ×(password shadowing)À» ÇÑ´Ù¸é, `/etc/shadow`¿¡¼­ ã½À´Ï´Ù. == ¿¬½À ¹®Á¦ == `/etc/passwd`¸¦ Á÷Á¢ ¸¸µå½Ê½Ã¿À. Æнº¿öµå´Â ¾øÀ» ¼öµµ ÀÖ°í, ÀÏ´Ü ¿©·¯ºÐÀÌ ·Î±×ÀÎ Çϸé `passwd` ÇÁ·Î±×·¥À¸·Î ¹Ù²Ü ¼öµµ ÀÖ½À´Ï´Ù. `man 5 passwd`¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥¿¡ ´ëÇÑ µµ¿ò¸» ´ë½Å ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ µµ¿ò¸»À» º¸½Ê½Ã¿À. = ¹è½Ã (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°³¿´´õ¶óµµ ¶È°°ÀÌ ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. == ¼³Á¤ == `/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¸¦ ¾µ ¼ö ÀÖµµ·Ï ÇÏ¿´½À´Ï´Ù. == ¿¬½À ¹®Á¦ == ¹è½ÃÀÇ ±âº»Àº ¹è¿ì±â ½±½À´Ï´Ù. ÇÏÁö¸¸ °Å±â¼­ ¸ØÃßÁö ¸¶½Ê½Ã¿À. ¹è½Ã´Â ¹Ï±â ¾î·Á¿ï ¸¸Å­ ±í½À´Ï´Ù. ¹«¾ð°¡¸¦ ÇÒ ¶§ ´õ ³ªÀº ¹æ¹ýÀ» ã´Â ¹ö¸©À» µéÀ̽ʽÿÀ. ¼Ð ½ºÅ©¸³Æ®µéÀ» Àаí, ¿©·¯ºÐÀÌ ÀÌÇØÇÏÁö ¸øÇÑ ºÎºÐ¿¡ ´ëÇؼ­ ã¾Æ º¸½Ê½Ã¿À. == Ãß°¡ Á¤º¸ == * "Bash Reference Manual" ÀÌ ÀÌ°ÍÀ» ´Ù·ì´Ï´Ù. »ó¼¼ÇÏÁö¸¸ ¾î·Æ½À´Ï´Ù. * ¹è½Ã¿¡ °üÇÑ ¿À¶óÀϸ®¿¡¼­ ³ª¿Â Ã¥ÀÌ ÀÖÁö¸¸, ÁÁÀºÁö´Â Àß ¸ð¸£°Ú½À´Ï´Ù. * Àú´Â ¾ÆÁ÷ ÀÚÀ¯·Î¿î ÃֽŠ¹è½Ã Æ©Å丮¾óÀ» ¾ËÁö ¸øÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ¾Æ½Å´Ù¸é Àú¿¡°Ô URLÀ» ¾Ë·Á ÁÖ¼¼¿ä. * ¼Ò½º ÄÚµåÀÇ urlÀ» À§Çؼ­´Â [http://www.netspace.net.au/~gok/power2bash Building a Minimal Linux System from Source Code]¸¦ º¸½Ê½Ã¿À. = ¸í·É¾îµé = ¿©·¯ºÐÀº ¹è½Ã¿¡¼­ `cp`¿Í °°Àº ¸í·É¾î¸¦ ÀÔ·ÂÇؼ­ ´ëºÎºÐÀÇ ÀÏÀ» ÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. `cd`¿Í °°ÀÌ ¸î¸î ¸í·É¾î´Â ¼Ð¿¡ ºÙ¾î ÀÖÁö¸¸, ´ëºÎºÐÀÇ ¸í·ÉµéÀº ÀÛÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¸í·ÉµéÀº ²Ù·¯¹Ì¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç, ±×µéÀÇ ´ëºÎºÐÀº ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î Àç´Ü (¶Ç´Â ±×´©)¿¡¼­ °³¹ßµÈ °ÍÀÔ´Ï´Ù. À̵éÀ» ¿­°ÅÇÏ´Â ´ë½Å, Àú´Â ¿©·¯ºÐ¿¡°Ô [http://www.linuxfromscratch.org Linux From Scratch HOWTO]¿¡ °¡ º¸±â¸¦ ±ÇÇÕ´Ï´Ù. ¸®´ª½º¿¡ µé¾î°¥ ¼ö ÀÖ´Â ÆÐÅ°ÁöµéÀÇ ¿ÏÀüÇÑ ÃֽŠ¸ñ·ÏÀÌ ÀÖÀ¸¸ç, ±×µéÀ» ¼³Ä¡ÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù. = °á·Ð = Á¦ ºÎÁ·ÇÑ ÀÇ°ßÀ¸·Î´Â, ¸®´ª½ºÀÇ °¡Àå ÁÁÀº Á¡ ÁßÀÇ Çϳª´Â ¿©·¯ºÐÀÌ ¾ÈÀ¸·Î µé¾î¿Í ¸ðµç °ÍµéÀÌ ¾î¶»°Ô ¿òÁ÷ÀÌ´ÂÁö ÁøÁ¤À¸·Î ¾Ë ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Àú´Â ¿©·¯ºÐÀÌ ÀÌ ÀÏÀ» Àú¸¸Å­ Áñ±â¼ÌÀ¸¸é ÇÕ´Ï´Ù. ¶ÇÇÑ ÀÌ ÂªÀº ±â·ÏÀÌ ¿©·¯ºÐ²²¼­ ±×°ÍÀ» ÇϽô µ¥ µµ¿òÀÌ µÇ¾ú±â¸¦ ¹Ù¶ø´Ï´Ù. = ÀÌ ¹®¼­¿¡ ´ëÇؼ­ = == ÀúÀÛ±Ç == 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 [http://www.gnu.org/copyleft/gpl.html GNU General Public Licence]. Please acknowledge me if you use all or part of this in another document. == ȨÆäÀÌÁö == ÀÌ ¹®¼­ÀÇ ÃÖ½ÅÆÇÀº [http://learning.taslug.org.au/power2bash From Powerup To Bash Prompt]¿¡ "Building a Minimal Linux System from Source Code"ÀÇ º¸Á¶ ¹®¼­·Î¼­ ÀÖ½À´Ï´Ù. [http://www.freenix.fr/unix/linux/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html From Powerup To Bash Prompt]¿¡ ºÒ¾î ¹ø¿ªÆÇÀÌ ÀÖ½À´Ï´Ù. Dominique van den Broeck ´Ô²² °¨»çµå¸³´Ï´Ù. Yuji Senda ´Ô²²¼­ ÀÛ¾÷ÇϽŠÀϺ»¾îÆÇÀº [http://www.linux.or.jp/JF Japanese Documentation and FAQ Project]¿¡ ÀÖÀ» ¿¹Á¤À̸ç, ÀÌ¹Ì ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. (¿ªÁÖ - ÀϺ»¾î ¹ø¿ªµµ ¿Ï·áµÇ¾ú½À´Ï´Ù.) == Çǵå¹é == Àú´Â ¿©·¯ºÐÀÇ ¾î¶°ÇÑ Á¶¾ðÀ̳ª ºñÆò, °³¼±À» À§ÇÑ Á¦¾Èµµ µè°í ½Í½À´Ï´Ù. ±×°ÍµéÀ» Àú, [mailto:gcokeefe@postoffice.utas.edu.au Greg O'Keefe]¿¡°Ô º¸³»½Ê½Ã¿À. == °¨»ç == [[Anchor(acknowledge)]] Á¦Ç° À̸§µéÀº °¢°¢ÀÇ ¼ÒÀ¯ÀÚÀÇ »óÇ¥À̸ç, ¿©±â¿¡¼­ °¨»ç¸¦ µå¸³´Ï´Ù. ÀÌ ¹®¼­¸¦ ¾µ ¼ö ÀÖµµ·Ï µµ¿ÍÁֽŠµ¥ ´ëÇØ ¾Æ·¡ÀÇ ºÐµé²² °¨»ç¸¦ µå¸®°í ½Í½À´Ï´Ù. Michael Emery Unios¸¦ ¾Ë·Á Áּ̽À´Ï´Ù. Tim Little `/etc/passwd`¿¡ ´ëÇØ µµ¿òÀ» Áּ̽À´Ï´Ù. efnetÀÇ #linux¿¡ °è½Å sPaKr syslogd´Â `/etc/services`¸¦ ÇÊ¿ä·Î ÇÑ´Ù´Â °ÍÀ» ¾Ë·ÁÁּ̰í, ½Ã½ºÅÛÀ» ¼Ò½º ÄÚµå·Î ¼³Ä¡ÇÏ´Â °ÍÀ» ¹¦»çÇϱâ À§ÇÑ "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸°´Ù(rolling your own)"´Â Ç¥ÇöÀ» ¼Ò°³ÇØ Áּ̽À´Ï´Ù. Alex Aitkin Àú¿¡°Ô 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"¶ó´Â ºÎÁ¦°¡ ºÙÀº `boot` ¸Ç ÆäÀÌÁö¸¦ ¾²¼Ì½À´Ï´Ù. Àú´Â ÀÌ ¹®¼­¸¦ LDP¿¡ Á¦ÃâÇÑ ´ÙÀ½¿¡¼­¾ß ÀÌ ÀÛÀº º¸¼®À» ã¾Æ³Â½À´Ï´Ù. Scott Hankin ¿ÀÀÚ¸¦ ¾Ë·Á Áּ̽À´Ï´Ù. == º¯°æ ±â·Ï == === 0.9 -> 0.9a (2000³â 11¿ù) === * Çϵå¿þ¾î Àý¿¡ ¿©·¯ºÐ¸¸ÀÇ OS µ¹¸®±â¿¡ ´ëÇÑ ¸µÅ©¸¦ Ãß°¡ÇÔ. === 0.8 -> 0.9 (2000³â 11¿ù) === * Matthieu Peeters¿Í John FremlinÀ¸·ÎºÎÅÍÀÇ Ä¿³Î µ¥¸ó°ú `/proc` ÆÄÀϽýºÅÛ¿¡ °üÇÑ Á¤º¸¸¦ Ãß°¡ÇÔ. === 0.7 -> 0.8 (2000³â 9¿ù) === * ¾î¶»°Ô ½Ã½ºÅÛÀ» ¸¸µå´ÂÁö¿¡ ´ëÇÑ ¼³¸íÀ» ¾ø¾Ö°í »õ·Î¿î ¹®¼­·Î ¸¸µê. ¸î ¸µÅ©¸¦ ¸Â°Ô °íħ. * ȨÆäÀÌÁö¸¦ [http://learning.taslug.org.au/power2bash learning@TasLUG]¿¡¼­ [http://www.netspace.net.au/~gok/power2bash my own webspace]·Î ¿Å±è. * ¸¹Àº ºÐµéÀÌ ±â¿©ÇØ ÁֽŠÁÁÀº ³»¿ëµéÀ» Ãß°¡Çϴµ¥ ½ÇÆÐÇß´Ù. ´ÙÀ½¿¡ ÇؾßÁö :( === 0.6 -> 0.7 === * ½Ã½ºÅÛ ¼³Ä¡º¸´Ù´Â ¼³¸í¿¡ ÁßÁ¡À» µÎ°í, ¼³Ä¡ Á¤º¸¸¦ µ¶¸³µÈ Àý¿¡ ¸ð¾Æ Á¤¸®ÇÏ°í, ÁøÂ¥·Î ¾µ ¼ö ÀÖ´Â ½Ã½ºÅÛÀ» ¸¸µå·Á´Â »ç¶÷µéÀº Gerard BeekmansÀÇ "Linux From Scratch" ¹®¼­¸¦ º¸µµ·Ï ÇÔ. * David Leadbeater´ÔÀÇ º¹ÀâÇÑ ³»¿ëµéÀ» Ãß°¡ * URLÀ» °íÄ¡°í learning.taslug.org.au/resources¿¡ ÀÖ´Â UNIOS ´Ù¿î·Îµå¿¡ ´ëÇÑ ¸µÅ© Ãß°¡ * URLÀ» ½ÃÇèÇÏ°í °íħ * ÀϹÝÀûÀ¸·Î ´Ù½Ã ¾²°í Á¤¸®ÇÔ === 0.5 -> 0.6 === * º¯°æ ±â·Ï Ãß°¡ * ÇÒ Àϵé Ãß°¡ == ÇÒ ÀÏ == * Ä¿³Î ¸ðµâ, depmod, modprobe, insmod¿Í °°Àº °ÍµéÀ» ¸ðµÎ ¼³¸íÇϱâ (¸ÕÀú ÀÌÇØÇϱâ!) * /proc ÆÄÀϽýºÅÛÀ» °­Á¶ÇÑ´Ù. ¿¬½ÀÀ» Ãß°¡ÇÒ¼öµµ ÀÖ´Ù. * ´ÚºÏ sgml·Î Àüȯ * ¿¬½À ¹®Á¦¸¦ Ãß°¡ÇÑ´Ù. ¹èÆ÷ÆÇ¿¡¼­ ÃÖ¼ÒÇÑÀÇ ½Ã½ºÅÛÀ» ¸¸µå´Â °Í°ú °°Àº Å« ¿¬½À ¹®Á¦·Î¸¸ °¡µæÂù ÀýÀ» ¸¸µé¼öµµ ÀÖ´Ù. * ¹è½Ã ¼³Ä¡ ¹æ¹ý¿¡ ´ëÇÑ ¸ÞÀÌÅ©ÆÄÀÏ ÇØÅ· - À̽ºÅÍ ³ëÆ®¸¦ º¼°Í