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ÀÇ
![]() ¸®´ª½º ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ °úÁ¤ÀÌ ÀÌ ¹®¼ÀÇ ÁÖÁ¦ÀÔ´Ï´Ù. ±×·¸Áö¸¸ Á» ´õ Æ÷°ýÀûÀÎ ÇнÀ ÀÚ·á·Îµµ ¾²ÀÏ ¼ö ÀÖµµ·Ï ³ë·ÂÇÏ¿´½À´Ï´Ù. °¢ Àý(section)¸¶´Ù ¿¬½À ¹®Á¦µéÀ» Æ÷ÇÔÇÏ¿´½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÌ ±×°ÍµéÀ» ½ÇÁ¦·Î ÇØ º»´Ù¸é, ´Ü¼øÈ÷ ÀÐÀ¸¼ÌÀ» ¶§ ¹è¿ï ¼ö ÀÖ´Â °Íº¸´Ù ¸¹Àº °ÍÀ» ¹è¿ì½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
Á¦°¡ ¾Æ´Â ÇÑ ¸®´ª½º¸¦ ¹è¿ï ¶§ ÇÒ ¼ö ÀÖ´Â °¡Àå ÁÁÀº ¿¬½ÀÀº ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °ÍÀ̸ç, Àú´Â µ¶ÀںеéÀÌ ±×°ÍÀ» ÇØ º¸¼ÌÀ¸¸é ÇÕ´Ï´Ù. ÀÌÅ»¸®¾ÆÀÇ Ã¶ÇÐÀÚÀÎ Giambattista Vico (1668-1744)´Â "ÀÌÇØ´Â ¸¸µê¿¡¼ ±â¿øÇÑ´Ù(understanding arises through making)"´Â ¶æÀÎ "verum ipsum factum"À̶ó´Â ¸»À» ³²°å½À´Ï´Ù. ÀÌ ±¸ÀýÀ» °¡¸£ÃÄÁØ Alex(°¨»ç¸¦ º¸½Ê½Ã¿À.)¿¡°Ô °¨»çÇÕ´Ï´Ù.
¸¸¾à ¿©·¯ºÐÀÌ ¼Ò½º ÄÚµå·ÎºÎÅÍ ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ¿© "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®°íÀÚ(roll your own)" ÇÑ´Ù¸é, Gerard BeekmansÀÇ
![]() ![]() ²Ù·¯¹Ì(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À» ¸¸µéµµ·Ï ÇϽʽÿÀ. ÁÖº¯¿¡ ¹°¾îº¸¸é, ´ç½ÅÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» ´©±º°¡°¡ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
![]() as °¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â ÇüÅ·Πº¯È¯ÇÏ¿© ÀÐ¾î º¸½Ã´Â °Íµµ ÁÁÀ» °ÍÀÔ´Ï´Ù.
¿©·¯ºÐÀÇ ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î "¿©·¯ºÐÀÇ °ÍÀ» µ¹¸®´Â(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 ¿Í °°ÀÌ ¸î¸î ¸í·É¾î´Â ¼Ð¿¡ ºÙ¾î ÀÖÁö¸¸, ´ëºÎºÐÀÇ ¸í·ÉµéÀº ÀÛÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
¸í·ÉµéÀº ²Ù·¯¹Ì¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç, ±×µéÀÇ ´ëºÎºÐÀº ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î Àç´Ü (¶Ç´Â ±×´©)¿¡¼ °³¹ßµÈ °ÍÀÔ´Ï´Ù. À̵éÀ» ¿°ÅÇÏ´Â ´ë½Å, Àú´Â ¿©·¯ºÐ¿¡°Ô
![]() 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
![]() 14.2. ȨÆäÀÌÁö ¶ÀÌ ¹®¼ÀÇ ÃֽůÇÀº
![]() ![]() ![]() 14.3. Çǵå¹é ¶Àú´Â ¿©·¯ºÐÀÇ ¾î¶°ÇÑ Á¶¾ðÀ̳ª ºñÆò, °³¼±À» À§ÇÑ Á¦¾Èµµ µè°í ½Í½À´Ï´Ù. ±×°ÍµéÀ» Àú,
![]() 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. ÇÒ ÀÏ ¶
|
Money will say more in one moment than the most eloquent lover can in years. |