· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Boot_Process-KLDP

You are not allowed to 'fullsearch'


¸®´ª½º ºÎÆ® ÇÁ·Î¼¼½º

¸®´ª½º ºÎÆ® ÇÁ·Î¼¼½º

±è¿µÈÖ


http://lachesis.pe.kr

ÀÌ ¹®¼­´Â Àü¿øÀ» Ä×À» ¶§ ºÎÅÍ ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®°¡ È­¸é¿¡ ³ªÅ¸³¯ ¶§±îÁö ¸®´ª½º¿¡¼­ ¹«½¼ ÀÏÀÌ ¹ú¾îÁö´ÂÁö¿¡ ´ëÇÑ ¹®¼­ÀÔ´Ï´Ù. µÇµµ·Ï ÀÚ¼¼ÇÏ°Ô ÀûÀ¸·Á°í ³ë·ÂÇÏ¿´À¸¸ç, ºÎÆà °úÁ¤¿¡¼­ »ç¿ëµÇ´Â ½ºÅ©¸³Æ®¿¡ ´ëÇؼ­µµ ºÐ¼®(?)Çϵµ·Ï ³ë·ÂÇÏ¿´½À´Ï´Ù. ·¹µåÇÞ ±â¹ÝÀÇ ¹èÆ÷ÆÇÀ» ±âÁØÀ¸·Î Àâ¾Æ ¼³¸íÇß½À´Ï´Ù. ´Ù¸¥ ¹èÆ÷ÆÇ(debian)ÀÇ °æ¿ì´Â ÇÊ¿äÇÒ °æ¿ì ºÎ¿¬¼³¸íÀ» ÇÏ°Ú½À´Ï´Ù.

¹®¼­ÀÇ ¹ö±×ÆÐÄ¡ ȯ¿µÇÕ´Ï´Ù. Á¦¹ß ¹ö±×ÆÐÄ¡ÇØ ÁÖ¼¼¿ä. ^^

ÀÌ ¹®¼­ÀÇ ÃֽŹöÁ¯Àº http://lachesis.pe.kr/documents/bootprocess/ ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇÑ ÆäÀÌÁö¿¡ ´Ù º¸±â¸¦ ¿øÇÑ´Ù¸é, http://lachesis.pe.kr/documents/bootprocess/bootprocess.html À»º¸¼¼¿ä. Ãâ·ÂÇÒ ¶§ Æí¸®ÇÕ´Ï´Ù.

sgml(docbook) ¼Ò½ºÀÔ´Ï´Ù : http://lachesis.pe.kr/documents/bootprocess/bootprocess.sgml

고친 과정
고침 Version 0.1.12000. 8. 22고친이 ¶óÅ°½Ã½º
ÃÖÃÊ·Î ¹®¼­¸¦ ¿Ï¼ºÇß½À´Ï´Ù.
고침 Version 0.2.02001. 7. 4고친이 ¶óÅ°½Ã½º
docbook À¸·Î ¹®¼­ Æ÷¸ËÀ» ¼öÁ¤Çß½À´Ï´Ù. ¸î°¡Áö ¹ö±×¸¦ ¼öÁ¤Çß½À´Ï´Ù. Debian GNU/Linux ÀÇ °æ¿ì¸¦ _¾à°£_ °í·ÁÇß½À´Ï´Ù.
고침 Version 0.2.12001. 8. 16고친이 ¶óÅ°½Ã½º
/ file system ÀÇ ¸¶¿îÆ® ¹®Á¦¿Í °ü·ÃÇÑ ¸ðÈ£ÇÑ Á¡¿¡ ´ëÇØ ¼ÕÀ» Á» º¸¾Ò½À´Ï´Ù.
고침 Version 0.2.22001. 10. 18고친이 ¶óÅ°½Ã½º
init ÀÌÈÄÀÇ °úÁ¤¿¡ ´ëÇØ ¾à°£ÀÇ ¼³¸íÀ» ´õ Ãß°¡Çß½À´Ï´Ù.


1장. Àü¿øÀ» ³Ö´Â ¼ø°£À¸·ÎºÎÅÍ init ÇÁ·Î¼¼½º°¡ ½ÃÀÛµÉ ¶§±îÁö

1.1. lilo ·ÎºÎÅÍ Ä¿³Î À̹ÌÁö vmlinuz ÀÇ ·Îµù

¿ì¸®ÀÇ PC ÀÇ Àü¿øÀ» ÄѸé PC ´Â BIOS ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÃʱâÈ­ ÇÁ·Î±×·¥À» ½ÇÇàÇÕ´Ï´Ù. ÃʱâÈ­ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¸Þ¸ð¸® üũ µîÀÌ ¼öÇàµÇ°í ÇÊ¿äÇÑ ÃʱâÈ­°¡ ¿Ï·áµÇ°í ³ª¸é, ÇÏµå µð½ºÅ© ȤÀº ´Ù¸¥ ºÎÆà ¸Åü (Ç÷ÎÇÇ µð½ºÅ©³ª CDROM µî)ÀÇ 0 ¹ø ¼½ÅÍÀÇ ºÎÆ® ÇÁ·Î±×·¥À» ÀнÀ´Ï´Ù. º¸Åë, 0¹ø ¼½Å͸¦ MBR (Master Boot Record, Çϵåµð½ºÅ©ÀÇ °æ¿ì. Ç÷ÎÇǵð½ºÅ©ÀÇ °æ¿ì´Â ºÎÆ®¼½ÅͶó°í ÇÕ´Ï´Ù.) À̶ó°í ÇÕ´Ï´Ù. ¿©±â´Â ¸®´ª½º¸¦ À§ÇÑ lilo ³ª grub µîÀÌ µé¾î ÀÖÀ» ¼öµµ ÀÖ°í, NT ³ª OS/2 µî ´Ù¸¥ ¿î¿µÃ¼Á¦ÀÇ ºÎÆ® ·Î´õ°¡ µé¾î ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. lilo °¡ MBR ¿¡ ÀÖ´Ù°í °¡Á¤ÇÏ°í °è¼Ó ÁøÇàÇÏ°Ú½À´Ï´Ù. lilo ´Â Ä¿³ÎÀ» ½ÇÇàÇϱâ À§Çؼ­ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸³´Ï´Ù. ¿©·¯ºÐÀÌ ÄÄÇ»Å͸¦ Ä×À»¶§ ³ª¿À´Â

	lilo:

¶ó´Â ÇÁ·ÒÇÁÆ®°¡ ±×°ÍÀÔ´Ï´Ù. À̶§ ¿ì¸®´Â lilo ¶ó´Â ÇÁ·ÒÇÁÆ® µÚ¿¡ Ä¿³Î¿¡ ÁÖ°í½ÍÀº ¿É¼ÇÀ̳ª, ºÎÆÃÇÏ°íÀÚ ÇÏ´Â Ä¿³ÎÀÇ À̹ÌÁö¸¦ ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. ÀÌ¿¡ °üÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº lilo HOWTO ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÀÌÁ¦, »ç¿ëÀÚ´Â lilo ¿¡ ½ÇÇà½ÃÅ°±â¸¦ ¿øÇÏ´Â Ä¿³ÎÀÇ À̹ÌÁö¸¦ Ä¿³Î¿¡ ³Ñ°ÜÁÖ°íÀÚ ÇÏ´Â ¿É¼Ç°ª°ú ÇÔ²² ¾Ë·ÁÁÝ´Ï´Ù. ±×¸®°í, lilo ´Â ÇØ´çÇÏ´Â Ä¿³ÎÀÇ À̹ÌÁö¸¦ ·ÎµùÇؼ­ ½ÇÇàÇÏ°Ô µË´Ï´Ù. ±âº» ¼³Á¤À¸·Î´Â /vmlinuz ¶Ç´Â /boot/vmlinuz À̹ÌÁö°¡ ¸Þ¸ð¸®¿¡ ·ÎµåµÇ°í, ½ÇÇàÀ» ½ÃÀÛÇÕ´Ï´Ù.

vmlinuz ´Â ¸®´ª½º Ä¿³ÎÀÇ ¾ÐÃà À̹ÌÁöÀÔ´Ï´Ù. ¿©±â¼­ swapper ¶ó°íµµ ºÒ¸®¿ì´Â ÇÁ·Î¼¼½º id 0 ÀÎ ÇÁ·Î¼¼½º°¡ ½ÇÇàµË´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º´Â ¿î¿µÃ¼Á¦ ±× ÀÚü¶ó°íµµ ÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½º·Î½á, ¸Þ¸ð¸® °ü¸®, µð½ºÅ© °ü¸®, ÇÁ·Î¼¼½º °ü¸® µîÀ» ¼öÇàÇÕ´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º´Â ÇÁ·Î¼¼½º id 1 ÀÎ init ¶ó´Â ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃÅ°°í´Â º»¿¬ÀÇ ±â´ÉÀÎ swapper ·Î½áÀÇ ±â´ÉÀ» ¼öÇàÇϱ⠽ÃÀÛÇÕ´Ï´Ù. [1]


1.2. process 0 : swapper

¿©±â¼­ swapper °¡ ¹«½¼ ÀÏÀ» ÇÏ´ÂÁö °£´ÜÇÏ°Ô À̾߱âÇØ º¸°Ú½À´Ï´Ù. [2]

À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ´Â ¸ðµç ÇÁ·Î¼¼½ºµéÀº "ÀÏ»ý(lifetime)(?)"À» °¡Áö°í ÀÖ½À´Ï´Ù. ÇÁ·Î¼¼½º »ý¼º¿¡¼­ºÎÆ® Á¾·á½Ã±îÁö... ±×µ¿¾È cpu ¸¦ Á¡À¯Çϸ鼭 ½ÇÇàµÇ´Â ½Ã°£µµ ÀÖÀ» °ÍÀÌ°í, ÇÒ ÀÏ ¾øÀÌ »ç¿ëÀڷκÎÅÍÀÇ ÀÔ·ÂÀ» ±â´Ù¸°´ÙµçÁöÀÇ ÀÌÀ¯·Î "Àáµé¾î" ÀÖ´Â ½Ã°£µµ ÀÖ½À´Ï´Ù. swapper ÇÁ·Î¼¼½º¿¡ ´ëÇØ ¼³¸íÇϸ鼭 ÀÌ À̾߱⸦ ÇÏ´Â ÀÌÀ¯´Â swapper °¡ ÇÏ´Â ÀÏÀÌ ¹Ù·Î, "Àáµé¾î" ÀÖ´Â ÇÁ·Î¼¼½º¸¦ ¸Þ¸ð¸®¿¡¼­ ³»·Á¼­ µð½ºÅ© °ø°£¿¡ Àá½Ã "½º¿Ò"½ÃÄ×´Ù°¡, ±× ÇÁ·Î¼¼½º°¡ ±ú¾î³ª¾ß¸¸ ÇÒ ½Ã±â°¡ ¿À¸é, µð½ºÅ©ÀÇ ÇÁ·Î¼¼½º¸¦ ´Ù½Ã ¸Þ¸ð¸®·Î ÀûÀçÇØ ÁÖ´Â µîÀÇ ÀÏÀ» Çϱ⠶§¹®ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î¼­, Áö±Ý ½Ã½ºÅÛ¿¡ ³Ê¹« ¸¹Àº ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ°í À־ ±×³ÑµéÀÌ ´Ù µé¾î°¥ ¸¸Å­ ¸Þ¸ð¸®°¡ Å©Áö ¾Ê´Ù°í °¡Á¤ÇսôÙ. ±×·²¶§, ½Ã°£ÀÌ Á» ¸¹ÀÌ °É¸®´Â I/O ¿äûÀ» ÇÑ ÇÁ·Î¼¼½º¶óµçÁö, »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®´Â ÇÁ·Î¼¼½º ¶óµçÁö.. Áö±Ý sleep »óÅ·ΠÀÖ´Â ÇÁ·Î¼¼½º (¿¹¸¦ µé¸é, httpd °°Àº°Ç ´ëºÎºÐÀÇ ½Ã°£À».. - ±×¸® Á¢¼ÓÀÌ ¸¹Áö ¾ÊÀº À¥ ¼­¹ö¶ó¸é - port ¿¡¼­ ¿äûÀÌ µé¾î¿À±æ ±â´Ù¸®¸é¼­ Àáµé¾î ÀÖ´Â (asleep) »óÅÂÀÌ°ÚÁÒ?) ¿Í °°Àº ³ÑµéÀº Áö±Ý ´çÀå ¸Þ¸ð¸®¿¡ ÀÖÀ» ÇÊ¿ä°¡ ¾ø´Â °ÍÀÔ´Ï´Ù. ±×·¯¸é, Áö±Ý ¸Þ¸ð¸®°¡ ¸ðÀÚ¶ó´Ï±î µð½ºÅ©·Î "½º¿Ò" À» Çؼ­ ´çÀå ½ÇÇàµÇ¾î¾ß ÇÏ´Â ÇÁ·Î¼¼½º¸¦ À§ÇÑ ¸Þ¸ð¸® °ø°£À» ´Ã¸®¸é µÇ°ÚÁÒ? À̶§ swapper °¡ ÀÛµ¿À» Çؼ­ ¸Þ¸ð¸®¿¡ ÀÖ´Â ÇÁ·Î¼¼½º¸¦ µð½ºÅ©·Î Àá½Ã ¿Å°Ü µÎ´Â (swap out) °ÍÀÔ´Ï´Ù. ¶Ç, swapper ´Â ¹Ý´ë·Î µð½ºÅ©¿¡ ½º¿ÒµÇ¾î ÀÖ´Â ÇÁ·Î¼¼½º°¡ ¸Þ¸ð¸®·Î ÀûÀçµÇ¾î¼­ ½ÇÇàµÇ¾î¾ß ÇÒ ÇÊ¿ä°¡ ÀÖÀ»¶§¿¡µµ ½º¿ÒµÈ ÇÁ·Î¼¼½º¸¦ ¸Þ¸ð¸®·Î ´Ù½Ã ¿Ã¸®´Â(swap in) ÀÏÀ» Çϱ⵵ ÇÕ´Ï´Ù.

¸®´ª½ºÀÇ ¸ðµç ÇÁ·Î¼¼½º´Â ¸ðµÎ "ºÎ¸ð" ÇÁ·Î¼¼½º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. Áï, ±× ÇÁ·Î¼¼½º¸¦ »ý¼º½ÃŲ ³ÑÀÌ Á¸ÀçÇÑ´Ù´Â ¾ê±âÀÔ´Ï´Ù. ±×·¯³ª, ´Ü Çϳª. pid °¡ 0 ÀÎ swapper ÇÁ·Î¼¼½º¸¸Àº(ÀÌ°Ç ÇÁ·Î¼¼½º¶ó±â º¸´Ù´Â ¿î¿µÃ¼Á¦ ÀÚü¶ó°í Çصµ ÁÁÀ» °Å °°½À´Ï´Ù.) ºÎ¸ð°¡ Á¸ÀçÇÏÁö ¾Ê°í, lilo µî¿¡ ÀÇÇؼ­ "¼öµ¿"À¸·Î ½ÇÇàÀÌ µË´Ï´Ù. ³ª¸ÓÁö ÇÁ·Î¼¼½º´Â ¸ðµÎ fork() ½Ã½ºÅÛ ÄÝ°ú exec() ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇؼ­ »ý¼ºÀÌ µË´Ï´Ù.

¶Ç ¿©±â¼­, fork() ½Ã½ºÅÛ ÄÝ°ú exec() ½Ã½ºÅÛ ÄÝ¿¡ ´ëÇØ °£´ÜÈ÷ À̾߱âÇÏ°í ³Ñ¾î°¡°Ú½À´Ï´Ù. UNIX ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖÀ» °øºÎÇØ º¸½Å ºÐµéÀ» ´Ù Àß ¾Æ½Ã´Â ³»¿ëÀÏ °ÍÀÔ´Ï´Ù.

fork() ³ª exec() ¸ðµÎ ÇÑ ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃÅ°±â À§ÇØ »ç¿ëÇÏ´Â ½Ã½ºÅÛ È£ÃâÀÔ´Ï´Ù. µÎ ÇÔ¼öÀÇ Â÷ÀÌÁ¡À» À§ÁÖ·Î ¼³¸íÇϸé, ¿ì¼± fork() ½Ã½ºÅÛ È£ÃâÀº »õ·Î¿î ÇÁ·Î¼¼½º¸¦ À§ÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÕ´Ï´Ù. ±×¸®°í, fork() ¸¦ È£ÃâÇÑ ÇÁ·Î¼¼½º¸¦ »õ·Î¿î °ø°£À¸·Î ½Î±×¸® º¹»çÇÕ´Ï´Ù. ±×¸®°í ³ª¼­ ¿ø·¡ ÇÁ·Î¼¼½º´Â ¿ø·¡ ÇÁ·Î¼¼½º´ë·Î ½ÇÇàµÇ°í, fork() ¸¦ ÀÌ¿ëÇؼ­ »ý¼ºµÈ ÇÁ·Î¼¼½ºµµ ±× ³ª¸§´ë·Î fork() ½Ã½ºÅÛ ÄÝÀÌ ¼öÇàµÈ ¶óÀÎÀÇ ´ÙÀ½ ¶óÀκÎÅÍ ½ÇÇàÀÌ µË´Ï´Ù. (»õ·Î »ý¼ºµÈ ÇÁ·Î¼¼½º´Â ¿ø·¡ÀÇ ÇÁ·Î¼¼½º¶û ¶È°°Àº Äڵ带°¡Áö°í ÀÖ½À´Ï´Ù.) ¹Ý¸é, exec() ½Ã½ºÅÛ ÄÝÀº fork() ó·³ »õ·Î¿î ÇÁ·Î¼¼½º¸¦ À§ÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏÁö ¾Ê°í, exec() ¸¦ È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸®¿¡ »õ·Î¿î ÇÁ·Î¼¼½ºÀÇ Äڵ带 µ¤¾î¾º¿ö ¹ö¸³´Ï´Ù. µû¶ó¼­ exec() ¸¦ È£ÃâÇÑ ÇÁ·Î¼¼½º°¡ ¾Æ´Ñ exec() ¿¡ ÀÇÇØ È£ÃâµÈ ÇÁ·Î¼¼½º¸¸ ¸Þ¸ð¸®¿¡ ³²°Ô µË´Ï´Ù.

´Ù½Ã °£´ÜÇÏ°Ô ¸»Çϸé, fork() ÀÇ °á°ú´Â ÇÁ·Î¼¼½º°¡ Çϳª ´õ »ý±â´Â °ÍÀÔ´Ï´Ù. ¹°·Ð, ÇÁ·Î¼¼½º id (pid) µµ ¿ÏÀüÈ÷ ´Ù¸¥ ¶Ç ÇϳªÀÇ ÇÁ·Î¼¼½º°¡ »ý±â´Â °ÍÀÌÁÒ. ¹Ý¸é, exec() ½ÇÇàÀÇ °á°ú·Î »ý¼ºµÇ´Â »õ·Î¿î ÇÁ·Î¼¼½º´Â ¾ø½À´Ï´Ù. exec() ¸¦ È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ pid °¡ ±×´ë·Î »õ·Î¿î ÇÁ·Î¼¼½º¿¡ Àû¿ëÀÌ µÇ¸ç, exec() ¸¦ È£ÃâÇÑ ÇÁ·Î¼¼½º´Â »õ·Î¿î ÇÁ·Î¼¼½º¿¡ ÀÇÇØ µ¤¾î¾²¿©Áö°Ô µË´Ï´Ù.


2장. init ÇÁ·Î¼¼½º¿Í inittab ÆÄÀÏ

2.1. init ÇÁ·Î¼¼½º¿Í inittab ÆÄÀÏ

ÇÁ·Î¼¼½º id 1 ¹øÀÎ init ÇÁ·Î¼¼½º´Â »ç¿ëÀÚµéÀ» À§Çؼ­ ½Ã½ºÅÛÀ» ¼³Á¤ÇÏ°Ô µË´Ï´Ù. pid 0 ÀÎ ÇÁ·Î¼¼½º°¡ ÃʱâÈ­(?)ÇÑ Ä¿³ÎÀÇ ¹ÙÅÁ¿¡¼­ ³ª¸ÓÁö ÀÛ¾÷À» ¼öÇàÇÏ´Â °ÍÀÌÁÒ.

init ÇÁ·Î¼¼½º(/sbin/init) °¡ ÇÏ´ÂÀÏÀÇ ´ëÃæÀº ´ÙÀ½°ú °°½À´Ï´Ù :

  • ÆÄÀϽýºÅÛÀÇ ±¸Á¶ °Ë»ç

  • ÆÄÀϽýºÅÛÀÇ ¸¶¿îÆ®[3]

  • ¼­¹ö µ¥¸óÀ» ¶ç¿ì°í,

  • »ç¿ëÀÚ ·Î±×ÀÎÀ» ±â´Ù¸²

  • »ç¿ëÀÚ°¡ ·Î±×ÀÎ Çϸé, »ç¿ëÀÚ¸¦ À§ÇÑ ½©À» ¶ç¿ò

init °¡ óÀ½ ½ÃÀÛÇؼ­ ¼öÇàÇØ¾ß ÇÒ ÀÛ¾÷µéÀ» ¼³Á¤ÇÑ ÆÄÀÏÀº /etc/inittab ÆÄÀÏ ÀÔ´Ï´Ù. init ´Â »õ·Î¿î ½ÇÇà·¹º§¿¡¼­ ½ÇÇàÇÒ ÇÁ·Î¼¼½º¸¦ °áÁ¤Çϱâ À§Çؼ­ ÀÌ ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù. ´Ù½Ã ¸»Çϸé, inittab ÆÄÀÏÀº ½Ã½ºÅÛÀÇ »óÅ¿¡ µû¶ó¼­ ÇØ´çÇÏ´Â ·±·¹º§¿¡¼­ init ÇÁ·Î¼¼½º°¡ ¼öÇàÇØ¾ß ÇÒ ÀϵéÀ» ¼­¼úÇØ ³õÀº ÆÄÀÏÀÔ´Ï´Ù. init ÇÁ·Î±×·¥Àº inittab ÆÄÀÏÀ» ÂüÁ¶ÇÏ¿©¼­ ¸ðµç »õ·Î¿î ·±·¹º§¿¡¼­ ½ÇÇàÇÒ ¼ö ¾ø´Â ÇÁ·Î¼¼½º°¡ ¸¸¾à Áö±Ý ½ÇÇàÁßÀ̸é, ±× ÇÁ·Î¼¼½º¸¦ Á×ÀÌ°í, »õ·Î¿î ·±·¹º§ ¿¡¼­ ½ÇÇàÇؾ߸¸ ÇÏ´Â ÇÁ·Î¼¼½º Áß ÇöÀç ½ÇÇàµÇ°í ÀÖÁö ¾ÊÀº ÇÁ·Î¼¼½º´Â »õ·ÎÀÌ ½ÇÇàÀ» ½Ãŵ´Ï´Ù.


2.2. /etc/inittab ÆÄÀÏÀÇ ¿¹

¾Æ·¡¿¡ ¿¹½ÃÇÑ °ÍÀº Á¦ ÄÄÇ»ÅÍ¿¡ ÀÖ´Â inittab ÆÄÀÏÀÔ´Ï´Ù. (Á» ÇãÁ¢Çϱ⠶§¹®¿¡ ÀÌÇØÇØ Áֽñ⠹ٶø´Ï´Ù. ´ÜÁö ¿¹½Ã¿ëÀ¸·Î ÀοëÇÏ¿´½À´Ï´Ù. -_-;)

---------------------------------------------------------------------
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, >miquels@drinkel.nl.mugnet.org<
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud::once:/sbin/update

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.  
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
---------------------------------------------------------------------


2.3. runlevel

±×·³ ÀÌÁ¦, inittab ÆÄÀÏÀ» ÇÑÁÙÇÑÁÙ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù. # À¸·Î ½ÃÀÛÇÏ´Â ÁÙÀº ÁÖ¼®À̶ó´Â°Å ´Ù ¾Ë°í °è½Ç °Ì´Ï´Ù. inittab ÆÄÀÏÀÇ ¿ëµµ¿Í ÀúÀÚ°¡ ³ª¿À°í, °¢ ·±·¹º§(ren level) ¿¡ ´ëÇÑ °£·«ÇÑ Á¤ÀÇ(?)°¡ ³ª¿É´Ï´Ù. [4]

# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)

·»·¹º§ 0
  • ½Ã½ºÅÛÀ» Á¾·áÇÒ ¶§ »ç¿ëµÇ´Â ·±·¹º§ÀÔ´Ï´Ù.

  • ·»·¹º§ 1
  • ½Ì±Û À¯Àú ¸ðµå¿¡¼­ »ç¿ëµÇ´Â ·¹º§ÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ lilo: ÇÁ·ÒÇÁÆ® ¿¡¼­ linux single À̶ó°í ÀÔ·ÂÇÏ¸é ·±·¹º§ 1 ¿¡¼­ ¸®´ª½º°¡ ½ÃÀÛÇÏ°Ô µË´Ï´Ù. [5] ÀÌ ¶§´Â µðÆúÆ®·Î root ·Î ·Î±×ÀεǸç, ´ë´Ù¼öÀÇ Áß¿äÇÑ µ¥¸óµéÀº ½ÇÇàµÇÁö ¾Ê°Ô ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.

  • ·»·¹º§ 2
  • NFS ¸¦ Áö¿øÇÏÁö ¾Ê´Â ´ÙÁß »ç¿ëÀÚ ¸ðµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. [6]

  • ·»·¹º§ 3
  • ³×Æ®¿öÅ·À» Áö¿øÇÏ´Â ´ÙÁß »ç¿ëÀÚ ¸ðµåÀÔ´Ï´Ù. (µðÆúÆ® ·±·¹º§·Î ÁÖ·Î ÁöÁ¤µË´Ï´Ù.)

  • ·»·¹º§ 4
  • ¿©·¯ºÐÀÌ ³ª¸§´ë·Î Á¤ÀÇÇؼ­ ¾µ ¼ö ÀÖ´Â ·±·¹º§ÀÔ´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó¼­ ½ÇÇà½ÃÅ°±â ¿øÇÏ´Â µ¥¸óÀ̳ª ¼­ºñ½º¸¦ /etc/rc.d/rc4.d µð·ºÅ丮 ¹Ø¿¡ ¼³Á¤ÇÔÀ¸·Î½á ¿©·¯ºÐ¸¸ÀÇ Æ¯¼ºÀ» °®´Â °íÀ¯ÀÇ ·±·¹º§À» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

  • ·»·¹º§ 5
  • X ¸¦ ½ÇÇà½ÃÅ°±â À§ÇÑ ·±·¹º§·Î ¾à¼ÓµÇ¾î ÀÖ½À´Ï´Ù.

  • ·»·¹º§ 6
  • ½Ã½ºÅÛÀ» ÀçºÎÆýÃÅ°µµ·Ï Á¤ÀÇµÈ ·±·¹º§ÀÔ´Ï´Ù.

  • ¸¸¾à, inittab ÆÄÀÏÀÇ Ã³À½¿¡ ³ª¿À´Â

    id:3:initdefault:
    ÀÇ ¶óÀÎÀ»
    id:6:initdefault:
    ȤÀº
    id:0:initdefault:
    µîÀ¸·Î ÁöÁ¤ÇØ ¹ö¸®¸é, ¿©·¯ºÐÀÇ ¸®´ª½º ½Ã½ºÅÛÀº ºÎÆÃÇÏÀÚ¸¶ÀÚ Á¾·áµÇ¾î ¹ö¸®°Å³ª, Àç½ÃÀÛÀ» °Åµì ¹Ýº¹ÇÏ°Ô µÇ¾î ¹ö¸®¹Ç·Î ÁÖÀÇÇϽñ⠹ٶø´Ï´Ù. ±×·²¶§¿¡´Â ºÎÆýà lilo ¿¡ ¿É¼ÇÀ» Á־ 0À̳ª 6 ÀÌ¿ÜÀÇ ·±·¹º§·Î ºÎÆÃÇؼ­ °íÃÄ ÁÖ½Ã¸é µË´Ï´Ù.

    Àá±ñ! ·±·¹º§À̶õ ¹«¾ùÀΰ¡... ÇÏ°í »ý°¢ÇϽô ºÐµéÀÌ ÀÖÀ» °Ì´Ï´Ù. ¾Æ¸¶, ¿©±â±îÁö ÀÐÀ¸¼Ì´Ù¸é, ´ëÃæ ÁüÀÛÀº ÇÏ°í °è½Ã¸®¶ó »ý°¢ÇÕ´Ï´Ù.

    init ¸ÇÆäÀÌÁöÀÇ Á¤ÀÇ :

    ·±·¹º§Àº ¼±ÅÃµÈ ±×·ìÀÇ ÇÁ·Î¼¼½º¸¸ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇµµ·Ï Çã¶ô Çϱâ À§ÇØ ¸¸µç ¼ÒÇÁÆ®¿þ¾î ¼³Á¤ÀÌ´Ù. [7]

    ½Ã½ºÅÛÀ» °ü¸®ÇÏ´Ù º¸¸é, ½Ã½ºÅÛÀÇ Á¡°Ë ȤÀº µð¹ö±ëÀ» À§Çؼ­ º¸Å붧ÀÇ ¼³Á¤ °ú´Â Á» ´Ù¸£°Ô ¸î°¡Áö ¼­ºñ½º¸¦ ½ÃÀÛÇÏÁö ¾Ê°í ºÎÆÃÇÏ°í ½ÍÀº °æ¿ì°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î¼­, ³×Æ®¿öÅ© Áö¿ø ±â´ÉÀ» off ÇÏ°í¼­ ºÎÆÃÇÏ°í ½Í´ÙµçÁö, ´ÙÁß »ç¿ëÀÚ ¸ðµå°¡ ¾Æ´Ï¶ó ½Ì±Û »ç¿ëÀÚ ¸ðµå·Î ºÎÆÃÇÏ°í ½Í´ÙµçÁö ÇÏ´Â °æ¿ì°¡ »ý±æ ¼ö ÀÖ½À´Ï´Ù.

    ÀÌó·³ ¼­·Î ´Ù¸¥ ¼³Á¤À¸·Î ºÎÆÃÇϱâ À§Çؼ­ °¢°¢ÀÇ ¼³Á¤À» "·±·¹º§" À̶ó´Â À̸§À¸·Î ³ª´©¾î ³õÀº °ÍÀÔ´Ï´Ù. ±×¸®°í, "·±·¹º§" ¿¡ ´ëÇÑ ¾à¼ÓÀ¸·Î 0, 1, 2, 3, 5, 6 ¹ø ·±·¹º§ [8] Àº ¹Ì¸® ¿¹¾àµÇ¾î¼­ "½Ã½ºÅÛ Á¾·á, ÀçºÎÆÃ, ½Ì±ÛÀ¯Àú¸ðµå, ´ÙÁß»ç¿ëÀÚ ¸ðµå, ³×Æ®¿öÅ©°¡ Áö¿øµÇÁö ¾Ê´Â ´ÙÁß »ç¿ëÀÚ ¸ðµå µîÀ¸·Î ÇÏÀÚ" ¶ó°í ¾à¼ÓÀ» ÇØ µÐ °ÍÀÔ´Ï´Ù. (»ç½Ç ¿¹¾àµÈ ·±·¹º§Àº 0, 1, 6 ¹Û¿¡ ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ³ª¸ÓÁö 2, 3, 5 ¹øÀº "°ü·Ê»ó" °¢°¢ÀÇ ÇØ´ç ¿ëµµ·Î »ç¿ëÇÏ°í ÀÖ´Â °Í °°½À´Ï´Ù. ·±·¹º§ 2, 3 Àº SunOS µî ´Ù¸¥ System V °è¿­ÀÇ init ÇÁ·Î¼¼½º¸¦ ¾²´Â ¿î¿µÃ¼Á¦¿¡¼­µµ ¸®´ª½º¿Í µ¿ÀÏÇÏ°Ô »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.) ±× ¿Ü¿¡ 7, 8, 9¹ø ·±·¹º§µµ »ç¿ëÀÚ°¡ Á¤ÀÇÇؼ­ ¾µ ¼ö ÀÖÁö¸¸, °ü·Ê»ó ±×·¸°Ô ÇÏÁö ¾Ê´Â´Ù°í ÇÕ´Ï´Ù. ±×¸®°í, S ¿Í s ·±·¹º§µµ Ư¼öÇÑ ·±·¹º§·Î½á Á¸ÀçÇÕ´Ï´Ù.

    ¸¸¾à ¿©·¯ºÐÀÌ ½Ã½ºÅÛ Á¾·á½Ã¿¡ µðÆúÆ®·Î Á¦°øµÇ´Â ÀÏ¿¡ ´õÇؼ­ ½ÇÇà½ÃÅ°°í ½ÍÀº °ÍÀÌ ÀÖ´Ù¸é, ·±·¹º§ 0 ¿¡ Ãß°¡¸¦ ÇÏ½Ã¸é µÇ´Â °ÍÀÔ´Ï´Ù.

    ÀÌ·¸°Ô °¢°¢ÀÇ ·±·¹º§¿¡ ¿øÇÏ´Â ÀÛ¾÷À» Ãß°¡Çϱâ À§Çؼ­´Â /etc/rc.d/rcN.d [9] µð·ºÅ丮 ¾Æ·¡ÀÇ ½Éº¼¸¯ ¸µÅ©µéÀ» Á¶Á¤ÇÏ½Ã¸é µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÌ ¹®¼­ 4Àý¿¡ Àû¾î µÎ¾ú½À´Ï´Ù.


    2.4. man inittab

    ÀÌÁ¦ inittab ÆÄÀÏÀÇ Çü½ÄÀ» »ìÆì º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ÀÚ¼¼È÷ inittab ÆÄÀÏÀ» º¸½Å ºÐÀ̶ó¸é ¸ðµç ÁÙÀÌ ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù´Â °ÍÀ» ¾Æ¼ÌÀ» °Ì´Ï´Ù.

    id:run-levels:action:process

    Á¦ÀÏ Ã³À½¿¡ ³ª¿À´Â id ´Â ÇØ´ç state¸¦ ±¸ºÐÇϱâ À§ÇÑ ·¹À̺íÀ̶ó°í º¸½Ã¸é µË´Ï´Ù. ±×¸®°í, ±× ´ÙÀ½ÀÇ rul-levels ´Â ±× ÁÙÀÇ ³»¿ëÀ» Àû¿ëÇϱâ À§ÇÑ ·± ·¹º§ÀÇ ¸ñ·ÏÀÔ´Ï´Ù. ±×¸®°í, action Àº ±× ÁÙ(¿£Æ®¸®¶ó°í ÇÏ°Ú½À´Ï´Ù.), ¿£Æ®¸®¿¡ ÀÇÇØ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½º¸¦ ¾î¶»°Ô ÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î ³ª¿À´Â process ´Â ÇÁ·Î¼¼½ºÀÇ ½ÇÇàÆÄÀÏÀÇ °æ·Î¿Í ÇÁ·Î¼¼½º¿¡ ³Ñ°ÜÁÙ ÀμöÀÔ´Ï´Ù. (½©¿¡¼­ ½ÇÇà½ÃÅ°´Â ¸í·É¾î¿Í °°Àº Çü½ÄÀ̶ó°í »ý°¢Çϼ¼¿ä, Áï, ÇØ´ç ¿£Æ®¸®¸¦ ½ÇÇàÇÒ ¶§ process ºÎºÐ¿¡ ³ª¿À´Â ¸í·É¾î·Î ½ÇÇàÇ϶ó´Â ¶æÀÔ´Ï´Ù. -_-;)

    action ºÎºÐ¿¡ ¿Ã ¼ö ÀÖ´Â Å°¿öµå´Â ´ÙÀ½°ú °°½À´Ï´Ù. (¸ÇÆäÀÌÁö¿¡¼­ ÂüÁ¶ÇÑ ³»¿ëÀÔ´Ï´Ù.)

      wait 
    
        ÇÁ·Î¼¼½º¸¦ ½ÇÇàÇÏ°í, ´ÙÀ½ ÁÙÀÇ ¿£Æ®¸®·Î °¡Áö ¸»°í, ½ÇÇàÇÑ ÇÁ·Î¼¼½º°¡ 
        Á¾·áÇϱâ±îÁö ±â´Ù¸®¶ó´Â ¶æÀÔ´Ï´Ù.
    
    
      respawn 
    
        ÇÁ·Î¼¼½º¸¦ ½ÇÇàÇÏ°í, ±× ÇÁ·Î¼¼½º°¡ Á×°Ô µÇ¸é, ´Ù½Ã ½ÇÇà½ÃÅ°¶ó´Â ÀÇ
        ¹ÌÀÔ´Ï´Ù. ÁÖ·Î getty µîÀÇ ÇÁ·Î¼¼½ºÀÔ´Ï´Ù. 
    
    
      initdefault 
    
        µðÆúÆ® ·±·¹º§À» ÁöÁ¤ÇÏ°Ú´Ù´Â ¶æÀÔ´Ï´Ù. À§¿¡ ¿¹½ÃÇÑ inittab ÆÄÀÏ
        ÀÇ Ã¹ÁÙ¿¡ ÀÌ Å°¿öµå°¡ ³ª¿À´Âµ¥, Çؼ®Çϸé, ·±·¹º§ 3 À» µðÆúÆ® ·±
        ·¹º§·Î ÁöÁ¤ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. Áï, initdefault ¿£Æ®¸®´Â ½Ã½ºÅÛÀÇ
        ºÎÆ® ÇÁ·Î¼¼½º°¡ Á¾·áµÈ ÈÄ¿¡ ÁøÀÔÇÒ ·±·¹º§À» °¡¸®Å°´Â ¿£Æ®¸®ÀÔ´Ï
        ´Ù. process Çʵå´Â ¾Æ¹«·± Àǹ̰¡ ¾ø°Ô µË´Ï´Ù.
    
    
      off : ¾Æ¹«°Íµµ ÇÏÁö ¸»¶ó´Â ¶æÀÔ´Ï´Ù.
    
    
      once 
    
        ÀÌ¹Ì ½ÇÇàµÇ°í ÀÖ´Â ÇÁ·Î¼¼½º¶ó¸é ½ÇÇàÇÏÁö ¸»°í, ½ÇÇàµÇ°í ÀÖÁö ¾ÊÀ¸¸é 
        ´ÜÁö Çѹø¸¸ ½ÇÇà½ÃÅ°¶ó´Â ¶æÀÔ´Ï´Ù. ´Ü, wait ó·³ ±â´Ù¸®°Å³ª ÇÏÁö´Â ¾Ê
        µµ·Ï ÁöÁ¤ÇÕ´Ï´Ù.
    
    
      boot 
    
        ½Ã½ºÅÛ ºÎÆýÿ¡ ½ÇÇàµÇ¾î¾ß ÇÒ ÇÁ·Î¼¼½º¸¦ °¡¸®Åµ´Ï´Ù. ·±·¹º§ Çʵå´Â 
        ¾Æ¹«·± Àǹ̰¡ ¾ø°Ô µË´Ï´Ù. (¹«½ÃµË´Ï´Ù.)
    
    
      bootwait 
    
        ÇÁ·Î¼¼½º°¡ ½Ã½ºÅÛ ºÎÆýÿ¡ ½ÇÇàµÇµµ·Ï ÁöÁ¤ÇÕ´Ï´Ù. ´ÜÁö, init °¡ ±×
        ÇÁ·Î¼¼½º°¡ Á¾·áµÇ±â¸¦ ±â´Ù¸°´Ù´Â Á¡¿¡¼­ boot ¿Í ´Ù¸¨´Ï´Ù.
        ¿¹¸¦µé¾î /etc/rc ¿Í °°Àº °ÍÀÌ ÀÖ½À´Ï´Ù.
    
    
      sysinit 
      
        ÇÁ·Î¼¼½º°¡ ½Ã½ºÅÛ ºÎÆ®½Ã¿¡ ½ÇÇàµÇ°Ô ÇÕ´Ï´Ù. ±×¸®°í, ÀÌ ¿£Æ®¸®´Â ´Ù
        ¸¥ boot ³ª bootwait ¿£Æ®¸®µéÀÌ ½ÇÇàµÇ±â Àü¿¡ ½ÇÇàµÇ´Â ¿£Æ®¸®°¡ 
        µË´Ï´Ù. ·±·¹º§ Çʵå´Â ¹«½ÃÇÕ´Ï´Ù.
    
    
      powerwait 
        
        init ÇÁ·Î¼¼½º°¡ SIGPWR ½Ã±×³ÎÀ» ¹ÞÀ¸¸é ½ÇÇàµÇ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù.
        SIGPWR ½Ã±×³ÎÀº Àü¿ø°ú °ü·ÃÇؼ­ ¹«¾ùÀΰ¡ ¹®Á¦°¡ ÀÖÀ½À» °¡¸®Å°´Â 
        ½Ã±×³ÎÀÔ´Ï´Ù. À̶§ init ´Â ÇÁ·Î¼¼½º°¡ Á¾·áµÇ±â±îÁö ´ë±âÇÕ´Ï´Ù.
    
     
      powerfail 
    
        powerwait Ç׸ñ°ú ¸¶Âù°¡ÁöÀÌÁö¸¸, ÇÁ·Î¼¼½º°¡ Á¾·áµÇ±â±îÁö ±â´Ù¸®Áö
        ¾Ê´Â´Ù´Â Á¡ÀÌ ´Ù¸¨´Ï´Ù.
    
    
      powerokwait 
        
        ÀÌ ¿£Æ®¸® ¿ª½Ã init °¡ SIGPWR ½Ã±×³ÎÀ» ¹ÞÀ¸¸é ½ÇÇàµÉ ÇÁ·Î¼¼½º¸¦
        ÁöÁ¤ÇÕ´Ï´Ù. ±×·¯³ª, ÀÌ ¿£Æ®¸®¿¡¼­ ÁöÁ¤µÈ ÇÁ·Î¼¼½º´Â 
        /etc/powerstatus ÆÄÀÏ¿¡ OK ¶ó´Â ´Ü¾î°¡ ÀÖÀ» ¶§¸¸ ½ÇÇàµË´Ï´Ù.
        Áï, Àü¿øÀÌ ´Ù½Ã µ¹¾Æ¿ÔÀ» ¶§¸¸ ½ÇÇàµË´Ï´Ù.
    
      
      ctrlaltdel 
    
        init °¡ SIGINT ½Ã±×³ÎÀ» ¹Þ°Ô µÇ¸é ½ÇÇàÇÒ ÇÁ·Î¼¼½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
        Áï, ½Ã½ºÅÛ Äֿܼ¡¼­ ´©±º°¡°¡ CTRL-ALT-DEL Å°¸¦ ´­·¶À» ¶§ ÀÌ ¿£Æ®
        ¸®¿¡¼­ ÁöÁ¤ÇÑ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ´Â °ÍÀÔ´Ï´Ù.
    	       
      
      kbrequest 
    
        ÀÌ ¿£Æ®¸®¿¡¼­ ÁöÁ¤ÇÏ´Â ÇÁ·Î¼¼½º´Â init °¡ Å°º¸µå Çڵ鷯·ÎºÎÅÍ 
        Äֿܼ¡¼­ Ư¼öÅ° Á¶ÇÕÀÌ ´­·ÁÁ³´Ù´Â ½Ã±×³ÎÀ» ¹ÞÀ¸¸é ½ÇÇàµÇ´Â ÇÁ·Î¼¼
        ½ºÀÔ´Ï´Ù. Å°¸Ê ÆÄÀÏ°ú ÇÔ²² ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù.


    2.5. /etc/inittab ÀÇ ºÐ¼®

    ¾Æ¸¶ ¾ÕÀýÀÇ ³»¿ë¸¸ º¸¼Åµµ ÀÚ½ÅÀÇ inittab ÆÄÀÏÀÇ ´ëºÎºÐÀº ÀÌÇØÇÏ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. ÀÌÁ¦, ¾µµ¥¾øÀ»Áöµµ ¸ð¸£Áö¸¸, Á¦ inittab ÆÄÀÏÀ» ÇÑÁÙ¾¿ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù.

    id:3:initdefault:

    ÀÌ ÁÙÀº µðÆúÆ® ·±·¹º§À» 3À¸·Î ÁöÁ¤ÇÏ´Â ÁÙÀÔ´Ï´Ù. initdefault Å°¿öµå µÚ¿¡´Â process Çʵ尡 ¹«½ÃµÈ´Ù°í À­ºÎºÐ¿¡¼­ ¼³¸íµÇ¾î ÀÖÁö¿ä? ^^; ÀÌ ÁÙ¿¡ ÀÇÇؼ­ ºÎÆÃÇÑ ÈÄ¿¡ ·±·¹º§ 3 À¸·Î Ä¿³ÎÀÇ ·±·¹º§ÀÌ Á¶Á¤µË´Ï´Ù. ¸¸¾à, óÀ½¿¡ ¸®´ª½º¸¦ ºÎÆÃÇϸé, ¹Ù·Î X ·Î µé¾î°¡½Ã´Â ºÐÀ̶ó¸é À̺κÐÀÌ ´ÙÀ½°ú °°ÀÌ µÇ¾î ÀÖÀ» °Ì´Ï´Ù.

    id:5:initdefault:[10]

    ·±·¹º§ 5¿¡ ´ëÇÑ ¼³¸íÀ» inittab ÆÄÀÏ¿¡¼­ º¸½Ê½Ã¿À. X11 À̶ó°í µÇ¾î ÀÖÁö¿ä?

    ±×·¯¸é, ±× ´ÙÀ½ÁÙÀÔ´Ï´Ù.

    si::sysinit:/etc/rc.d/rc.sysinit[11]

    ÀÌ ¶óÀο¡´Â sysinit ¶ó´Â Å°¿öµå°¡ action Çʵ忡 ÁöÁ¤µÇ¾ú½À´Ï´Ù. action Çʵ忡 ÁöÁ¤ÇÒ ¼ö ÀÖ´Â Å°¿öµå Áß sysinit ¸¦ ã¾Æº¸¸é, ÇÁ·Î¼¼½º°¡ ½Ã½ºÅÛ ºÎÆýÿ¡ ½ÇÇàµÇ¸ç, ·±·¹º§Àº ¹«½ÃÇÑ´Ù´Â ³»¿ë°ú, ´Ù¸¥ boot ³ª bootwait °¡ action Çʵ忡 ÁöÁ¤µÈ ÇÁ·Î¼¼½ºµéº¸´Ù ¸ÕÀú ½ÇÇàµÈ´Ù´Â ³»¿ëÀÌ ÀÖ½À´Ï´Ù. Áï, Á¦ÀÏ Ã³À½ init ÇÁ·Î¼¼½º°¡ ½ÇÇà½ÃÅ°´Â ¸í·ÉÀÔ´Ï´Ù. Á¤È®È÷ ¸»Çϸé, start-up ½ºÅ©¸³Æ®¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. process Çʵ忡 /etc/rc.d/rc.sysinit ¶ó°í ¸í½ÃµÇ¾î ÀÖ½À´Ï´Ù. ´Ù½ÃÇѹø ´Ü¼øÈ­½ÃÄѼ­ À̾߱âÇϸé, À§¿¡ ¿¹½ÃÇÑ inittab ÆÄÀÏÀ» »ç¿ëÇÏ´Â Á¦ ¸®´ª½º ¹Ú½º´Â Àü¿øÀ» ¿Ã¸®¸é, /etc/rc.d/rc.sysinit [12] °¡ ½ÇÇàµÈ´Ù´Â °ÍÀÔ´Ï´Ù. rc.sysinit ÀÇ ³»¿ëÀº ³ªÁß¿¡ »ìÆ캸±â·Î ÇÏ°í, ´ÙÀ½ÁÙ·Î ÁøÇàÇÏ°Ú½À´Ï´Ù.

    l0:0:wait:/etc/rc.d/rc 0
    l1:1:wait:/etc/rc.d/rc 1
    l2:2:wait:/etc/rc.d/rc 2
    l3:3:wait:/etc/rc.d/rc 3
    l4:4:wait:/etc/rc.d/rc 4
    l5:5:wait:/etc/rc.d/rc 5
    l6:6:wait:/etc/rc.d/rc 6

    º¸½Ã°í, ÁüÀÛÇϽŠ¹Ù¿Í °°ÀÌ °¢ ·±·¹º§º°·Î ÁöÁ¤µÈ ½ÃÀÛ ½ºÅ©¸³Æ®µéÀÔ´Ï´Ù. /etc/rc.d/rc ½ºÅ©¸³Æ®¿¡ ÇØ´ç ·±·¹º§À» Àμö·Î ³Ñ°ÜÁִ±º¿ä. /etc/rc.d/rc ½ºÅ©¸³Æ®ÀÇ ³»¿ëÀº ³ªÁß¿¡ Çϳª¾¿ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù. °¢ ·±·¹º§ º°·Î ÁöÁ¤µÈ ½ºÅ©¸³Æ®´Â ±× ½ÇÇàÀÌ Á¾·áµÉ ¶§±îÁö init ÇÁ·Î¼¼½º°¡ ÁøÇàÇÏÁö ¾Ê°í, ±â´Ù¸®¶ó´Â ÀǹÌÀÇ wait Å°¿öµå¸¦ action Çʵ忡 ÁöÁ¤ÇØ µÎ¾ú±º¿ä.

    ud::once:/sbin/update

    ±× ´ÙÀ½ÁÙ¿¡´Â action Çʵ忡 once Å°¿öµå°¡ ¾²¿´½À´Ï´Ù. ±×·¡¼­ °¢ ·±·¹º§º°·Î Çѹø¾¿¸¸ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù. /sbin/update ¸¦ ½ÇÇàÇϴ±º¿ä. /sbin/update ´Â bdflush ¶ó´Â Ä¿³Î µ¥¸ó(Ä¿³Î ½º·¹µå)À» ½ÇÇà½Ãŵ´Ï´Ù. ÀÌ µ¥¸óÀº ¹öÆÛ¸¦ °»½ÅÇÑ´ÙµçÁö ÇÏ´Â ÀÏÀ» ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº man update ¸¦ ÇØ º¸½Ã¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù.

    ca::ctrlaltdel:/sbin/shutdown -t3 -r now

    ±× ´ÙÀ½À¸·Î ³ª¿À´Â °ÍÀº »ç¿ëÀÚ°¡ Äֿܼ¡¼­ CTRL-ALT-DEL Å°ÀÇ Á¶ÇÕÀ» ´­·Á¼­ ½Ì±Û À¯Àú¸ðµå·Î µé¾î°¡°Å³ª ȤÀº ½Ã½ºÅÛÀ» ¼Ë´Ù¿î ÇÏ·Á°í ÇÒ ¶§ ºÒ·ÁÁö´Â ÇÁ·Î¼¼½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. /sbin/shutdown -t3 -r now ·Î Á¤ÀÇÇß±º¿ä. 3ÃÊ ÈÄ¿¡ ÀçºÎÆÃÇÏ°Ô µË´Ï´Ù. shutdown ÀÌ ÀçºÎÆÃÀ» ¼öÇàÇϱâ À§Çؼ­´Â init ÇÁ·Î¼¼½º¿¡°Ô ·±·¹º§À» ¹Ù²Ùµµ·Ï Ç϶ó´Â ½Ã±×³ÎÀ» º¸³»°Ô µË´Ï´Ù. ·±·¹º§ 0Àº ½Ã½ºÅÛ halt ¿¡ »ç¿ëµÇ°í, ·±·¹º§ 6Àº Àç½ÃÀÛ, 1Àº ½Ì±ÛÀ¯Àú ¸ðµå¿¡ »ç¿ëµË´Ï´Ù.

    Àç¹ÌÀÖ´Â °ÍÀ¸·Î, »ç¿ëÀÚ°¡ (root »ç¿ëÀÚÀÏ °æ¿ì) init ÇÁ·Î¼¼½º¿¡°Ô ±¸Ã¼ÀûÀ¸·Î ¾î¶² ·±·¹º§¿¡¼­ init ¸¦ ¼öÇà½ÃųÁö Ä¿¸Çµå¶óÀο¡¼­ ¸í½ÃÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù.

    /sbin/init N

    À̶ó°í ¸í·ÉÀ» ³»¸®¸é, N ¿¡ ¸í½ÃµÈ ½ÇÇà·¹º§·Î init °¡ ÁøÀÔÇÏ°Ô µË´Ï´Ù.

    /sbin/init 6

    À̶ó°í Çϸé, init ´Â ·±·¹º§ 6 À¸·Î ÁøÀÔÇÏ°Ô µÇ¸é¼­ ½Ã½ºÅÛÀº ÀçºÎÆà µÇ°Ô µË´Ï´Ù. ´Ù¸¥ System V °è¿­ÀÇ ¿î¿µÃ¼Á¦¿¡¼­´Â ÀÌ·¯ÇÑ °æ¿ì¸¦ À§Çؼ­ Ưº°È÷ telinit ¶ó´Â ¸í·É¾îµµ ÁغñÇØ ³õ°í ÀÖ½À´Ï´Ù. (¸®´ª½ºµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.)

    pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
    pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

    ´ÙÀ½ µÎÁÙÀº Àü¿ø¿¡ °ü°èµÈ °ÍÀ¸·Î, UPS ¸¦ »ç¿ëÇÏ´Â ºÐµé¿¡°Ô¸¸ ÇØ´çµÇ´Â°Å °°±º¿ä.

            1:2345:respawn:/sbin/mingetty tty1
            2:2345:respawn:/sbin/mingetty tty2
            3:2345:respawn:/sbin/mingetty tty3
            4:2345:respawn:/sbin/mingetty tty4
            5:2345:respawn:/sbin/mingetty tty5
            6:2345:respawn:/sbin/mingetty tty6

    ±×¸®°í, °ÅÀÇ ¸¶Áö¸· ºÎºÐ¿¡ ºÙ¾î ÀÖ´Â ¿©¼¸ÁÙ, ÀÌ ÁÙÀº °¢ ·±·¹º§ 2,3,4,5 ÀÏ ¶§ ½ÇÇàµÇ´Â °ÍÀ¸·Î½á, ÄܼÖÀ» ¿­°í, ÀÀ´äÀ» ±â´Ù¸®´Â ºÎºÐÀÔ´Ï´Ù. ¾Õ¼­ÀÇ ¸ðµç ÃʱâÈ­ °úÁ¤ÀÌ ³¡³ª°í ¸¶Áö¸·À¸·Î ½ÇÇàµÇ´Â ºÎºÐÀÌÁÒ. ÄÄÀ» Ä×À» ¶§ ¹Ù·Î X °¡ ½ÃÀ۵Ǵ ºÐµéÀº

    x:5:respawn:/etc/X11/prefdm -nodaemon

    µî°ú °°ÀÌ ·±·¹º§ 5¿¡¸¸ ÇØ´çµÇ´Â ·Î±×¿Â ÇÁ·Î¼¼½º°¡ ¸í½ÃµÇ¾î ÀÖÀ» °Ì´Ï´Ù.


    3장. init : ±× ÀÌÈÄ

    ¾Õ Àý¿¡¼­ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ init ÇÁ·Î¼¼½º°¡ Àڽſ¡°Ô ÇÒ´çµÈ ÃʱâÈ­ °úÁ¤À» ¸ðµÎ ³¡¸¶Ä¡°í ³ª¸é, inittab ÆÄÀÏÀÇ ¸Ç ³¡ºÎºÐ¿¡ ¸í½ÃµÈ °Íó·³ mingetty ȤÀº getty ÇÁ·Î¼¼½º¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ½ÇÇà½ÃÅ°´Â ¹æ¹ýÀº ÃÖÃÊ¿¡ pid 0 ÀÇ ÇÁ·Î¼¼½º [13] ¿¡ ÀÇÇØ ½ÇÇàµÈ init °¡ fork() ½Ã½ºÅÛ ÄÝÀ» Çѹø ¼öÇàÇÏ°í, ±×¿¡ ÀÇÇØ »ý¼ºµÈ ÀÚ½Ä init °¡ exec() ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇؼ­ getty ȤÀº mingetty µîÀÇ ÇÁ·Î¼¼½º¸¦ ¼öÇàÇÏ°Ô µË´Ï´Ù.

    getty °¡ ÇÏ´Â ÀÏÀº È­¸é¿¡

    	login :
    ÇÁ·ÒÇÁÆ®¸¦ ¶ç¿ì°í¼­ »ç¿ëÀÚÀÇ userid °¡ ÀԷµDZ⸦ ±â´Ù¸®´Â ÀÏÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ userid ¸¦ ÀÔ·ÂÇÏ°í¼­ ¿£ÅÍÅ°¸¦ Ä¡°Ô µÇ¸é, getty ´Â /bin/login À» ½ÇÇà½ÃÅ°°Ô µË´Ï´Ù.

    /bin/login ÇÁ·Î±×·¥Àº

    	Password:
    ¶ó´Â ÇÁ·ÒÇÁÆ®¸¦ ¶ç¿ì°í, »ç¿ëÀÚ°¡ password ¸¦ ÀÔ·ÂÇϱ⸦ ±â´Ù¸³´Ï´Ù. »ç¿ëÀÚ°¡ ¾ÏÈ£¸¦ ÀÔ·ÂÇϸé, /etc/passwd ȤÀº /etc/shadow ÆÄÀϷκÎÅÍ Æнº¿öµå¸¦ Àо ¾Ïȣȭ ÇÑ Æнº¿öµå¿Í ÀÏÄ¡ÇÏ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù. ¸¸¾à Æнº¿öµå°¡ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é, login ÇÁ·Î±×·¥Àº ¿¡·¯¸¦ ³»°í Á¾·áÇÕ´Ï´Ù. ±×·¯¸é, init ÇÁ·Î¼¼½º´Â ´Ù½Ã ÀÚ½ÅÀ» fork() ÇÏ°í, /sbin/getty ÇÁ·Î±×·¥À» exec() Çؼ­ È­¸é¿¡ ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ Ãâ·ÂÇϵµ·Ï ÇÏ°í »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®°Ô µË´Ï´Ù. ¸¸¾à Æнº¿öµå°¡ ÀÏÄ¡Çϸé, login ÇÁ·Î±×·¥Àº Ȩµð·ºÅ丮¸¦ ¹Ù²Ù´Â µî ¿©·¯°¡Áö ÀÛ¾÷À» ÇÏ°í, ÃÖÁ¾ÀûÀ¸·Î exec()¸¦ ÇÏ¿©, ·Î±×ÀÎ ½© [14] À» ¶ç¿ì°Ô µË´Ï´Ù.

    ±×·¯¸é, »ç¿ëÀÚ´Â ÀÚ½ÅÀÇ ½© (ÁÖ·Î bash) ·Î ÀÛ¾÷À» ÇÏ°í, ½©¿¡¼­ ÀÔ·ÂÇÏ´Â ¸í·É¾îµéÀº ¸ÕÀú ½©ÀÌ fork() ¸¦ ÇÑ ÈÄ ½©ÀÇ ÀÚ½ÄÇÁ·Î¼¼½º°¡ exec() ¸¦ ÇÏ¿© ½ÇÇàµÇ°í, Á¾·áÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ °úÁ¤À» °£´ÜÇÏ°Ô ±×¸²À¸·Î ±×¸®¸é ´ÙÀ½°ú °°½À´Ï´Ù.

            +-------------+
            |    init     |
            |   (pid 1)   |                                
            +------+------+
                   | <-------------------------------------+
                   | fork()                                | respawn
                  \|/                                      |
            +------+------+                                |
            | "ÀÚ½Ä" init |                                |
            |  (pid 266)  |                                |
            +------+------+                                |
                   |                                       |
                   | exec()                                |
                  \|/                                      |
            +------+------+                                |
            |  mingetty   |                                |
            |  (pid 266)  |                                |
            +------+------+                                |
                   |                                       |
                   | exec()                                |
                  \|/                                      |
            +------+------+                                |
            |    login    |                                |
            |  (pid 266)  |                                |
            +------+------+                                |
                   |                                       |
                   | exec()                                |
                  \|/                                      |
            +------+------+                                |
            |    bash     +---------------------------- ½© Á¾·á
            |  (pid 266)  |          ·Î±×¾Æ¿ô          
            +------+------+
                   | ¸í·É¾î ¼öÇà
                   | fork()
                  \|/
            +------+------+
            |    bash     |
            |  (pid5909)  |
            +------+------+
                   |
                   | exec()
                  \|/
            +------+------+
            |´Ù¸¥ ÇÁ·Î¼¼½º|
            |  (pid5909)  |
            +------+------+


    4장. /etc/rc.d/rc.sysinit, /etc/rc.d/rc

    rc.sysinit ½ºÅ©¸³Æ®´Â »ìÆ캻 °á°ú Å©°Ô ƯÀÌÇÒ °ÍÀº ¾ø´Â °Í °°½À´Ï´Ù. ÇÏ´Â ÀϵéÀº ·¹µåÇÞ ±â¹Ý ¹èÆ÷º»À» ¸ðµ¨·Î ¼³¸íÇÏ°Ú½À´Ï´Ù. [15] ÀÌ ÆÄÀÏÀº inittab ÀÇ Á¤ÀÇ¿¡ µû¶ó, ½Ã½ºÅÛ ÃʱâÈ­½Ã ¸Ç ¸ÕÀú µü ÇÑ ¹ø ½ÇÇàµÇ´Â ÃʱâÈ­ ½ºÅ©¸³Æ®ÀÔ´Ï´Ù.

    • ±âº»ÀûÀÎ path ¼³Á¤

    • /etc/sysconfig/network ÆÄÀÏÀÌ ÀÖÀ¸¸é ±× ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÅ´

    • Å°¸ÊÀÇ ·Îµù

    • ½Ã½ºÅÛ ÆùÆ®ÀÇ ·Îµù

    • ½º¿Ò ¿µ¿ªÀÇ È°¼ºÈ­

    • µð½ºÅ© °Ë»ç (fsck)

    • /proc ÆÄÀϽýºÅÛÀÇ ¸¶¿îÆ®

    • ·çÆ® ÆÄÀϽýºÅÛÀ» rw ¸ðµå·Î ´Ù½Ã ¸¶¿îÆ®Çϱâ

    • /etc/HOSTNAME ÆÄÀÏÀÇ ¼³Á¤

    • /etc/mtab ÆÄÀÏ¿¡ ·çÆ®¿Í /proc ÆÄÀϽýºÅÛÀÇ ¿£Æ®¸® Ãß°¡Çϱâ

    • Ä¿³Î ¸ðµâµé ·ÎµåÇϱâ

    • ½Ã½ºÅÛ ½Ã°£ ¼³Á¤

    • µîµî....

    ÀÇ ÀÏÀ» ¼öÇàÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº rc.sysinit ÆÄÀÏÀ» ÂùÂùÈ÷ ÀÐ¾î º¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù.

    Á¤ÀÛ, ¿ì¸®°¡ ÁÖÀǸ¦ ±â¿ïÀÏ ÃʱâÈ­ ½ºÅ©¸³Æ®´Â °¢Á¾ µ¥¸óµéÀ» ½ÇÇà½ÃÅ°°í, Á×À̴µ¥ »ç¿ëµÇ´Â /etc/rc.d/rc ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. ÀÌ ½ºÅ©¸³Æ®´Â Àμö·Î ½ÇÇà ·¹º§À» ¹Þ½À´Ï´Ù.(-_-; Ç¥ÇöÀÌ Á» ¸Å²ô·´Áö ¸øÇϱº¿ä) Áï,

    /etc/rc.d/rc n

    °ú °°Àº Çü½ÄÀ¸·Î ½ÇÇà½Ãŵ´Ï´Ù. n ¿¡´Â ½ÇÇà·¹º§ÀÌ µé¾î°©´Ï´Ù. Á» ´õ ³ªÀº ÀÌÇظ¦ À§Çؼ­ ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇà½ÃÄÑ º¸½Ê½Ã¿À.

    ls /etc/rc.d

    ½ÇÇà °á°ú·Î /etc/rc.d µð·ºÅ丮ÀÇ ³»¿ëÀÌ ³ª¿À´Âµ¥, ±× Áß¿¡ ´ÙÀ½°ú °°Àº µð·ºÅ丮µéÀÌ ÀÖ½À´Ï´Ù.

    rc0.d/
    rc1.d/
    rc2.d/
    rc3.d/
    rc4.d/
    rc5.d/
    rc6.d/

    °¢°¢ÀÇ µð·ºÅ丮´Â rc·±·¹º§.d ·Î À̸§ÀÌ Áö¾îÁ® ÀÖ½À´Ï´Ù. °¢ µð·ºÅ丮 ¾Æ·¡¿¡´Â ÇØ´ç ·±·¹º§¿¡¼­ ½ÇÇàÇÒ ¼­ºñ½º³ª ÇÁ·Î¼¼½ºµéÀÌ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ÇÑ µð·ºÅ丮¸¦ Á¤Çؼ­ ¾î¶² ÆÄÀϵéÀÌ ÀÖ´ÂÁö »ìÆ캸°Ú½À´Ï´Ù.

    $ ls -laF /etc/rc.d/rc3.d
    drwxr-xr-x  ./
    drwxr-xr-x  ../
    lrwxrwxrwx  K05keytable -> ../init.d/keytable*
    lrwxrwxrwx  K15gpm -> ../init.d/gpm*
    lrwxrwxrwx  K15proftpd -> ../init.d/proftpd*
    lrwxrwxrwx  K60atd -> ../init.d/atd*
    lrwxrwxrwx  K60crond -> ../init.d/crond*
    lrwxrwxrwx  K80random -> ../init.d/random*
    lrwxrwxrwx  K89portmap -> ../init.d/portmap*
    lrwxrwxrwx  K92apmd -> ../init.d/apmd*
    lrwxrwxrwx  K96pcmcia -> ../init.d/pcmcia*
    lrwxrwxrwx  S10network -> ../init.d/network*
    lrwxrwxrwx  S30syslog -> ../init.d/syslog*
    lrwxrwxrwx  S50inet -> ../init.d/inet*
    lrwxrwxrwx  S55named -> ../init.d/named*
    lrwxrwxrwx  S80sendmail -> ../init.d/sendmail*
    lrwxrwxrwx  S90mysql -> ../init.d/mysql*
    lrwxrwxrwx  S91smb -> /etc/rc.d/init.d/smb*
    lrwxrwxrwx  S99local -> ../rc.local*

    º¸½Ã´Â ¹Ù¿Í °°ÀÌ S ·Î ½ÃÀÛÇÏ´Â ÆÄÀϵé°ú, K ·Î ½ÃÀÛÇÏ´Â ÆÄÀϵéÀÌ ÁÖ¿í~ Àִµ¥, °ÅÀÇ /etc/rc.d/init.d ¾Æ·¡ÀÇ ÆÄÀϵ鿡 ¸µÅ©°¡ µÇ¾î ÀÖ½À´Ï´Ù.

    ÀÌó·³, rcN.d µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀϵéÀº ¿À·ÎÁö ¸µÅ©·Î¸¸ µÇ¾î ÀÖÀ¸¸ç, ½ÇÁ¦ ¼­ºñ½º¸¦ ½ÃÀÛÇϰųª Á¾·áÇÏ´Â ½ºÅ©¸³Æ®´Â /etc/rc.d/init.d µð·ºÅ丮 ¾Æ·¡¿¡ Á¸ÀçÇÕ´Ï´Ù.

    S ·Î ½ÃÀÛÇÏ´Â ÆÄÀÏÀº ÇØ´ç ¼­ºñ½º¸¦ ½ÇÇà½ÃÅ°´Âµ¥ »ç¿ëµÇ°í, (Start) K ·Î ½ÃÀÛÇÏ´Â ÆÄÀÏÀº ÇØ´ç ¼­ºñ½º¸¦ Á×À̴µ¥ »ç¿ëµË´Ï´Ù.(Kill) Á¦ ÄÄÇ»ÅÍ¿¡¼­´Â µðÆúÆ® ·±·¹º§ÀÎ 3 ¿¡¼­ network, syslog, inet, named, sendmail, mysql, smb µîÀ» ½ÇÇàÇϵµ·Ï ±¸¼ºÇØ µÎ¾ú½À´Ï´Ù. (¾ÆÆÄÄ¡¿Í proftpdµµ ½ÇÇàÀÌ µÇ´Âµ¥, ÀÏÀÏÀÌ ¸µÅ© °É±â°¡ ±ÍÂú(^^;)¾Æ¼­ S99local ÀÌ °¡¸®Å°´Â /etc/rc.d/rc.local ¾È¿¡ ½ÃÀÛ ½ºÅ©¸³Æ®¸¦ Àû¾î µÎ¾ú½À´Ï´Ù.)

    ±×·³ Àç¹Ì»ï¾Æ¼­, /etc/rc.d/rc0.d µð·ºÅ丮ÀÇ ³»¿ëµµ »ìÆì º¸°Ú½À´Ï´Ù.

    $ ll /etc/rc.d/rc0.d
    drwxr-xr-x  ./
    drwxr-xr-x  ../
    lrwxrwxrwx  K05keytable -> ../init.d/keytable*
    lrwxrwxrwx  K15gpm -> ../init.d/gpm*
    lrwxrwxrwx  K15proftpd -> ../init.d/proftpd*
    lrwxrwxrwx  K30sendmail -> ../init.d/sendmail*
    lrwxrwxrwx  K45named -> ../init.d/named*
    lrwxrwxrwx  K50inet -> ../init.d/inet*
    lrwxrwxrwx  K60atd -> ../init.d/atd*
    lrwxrwxrwx  K60crond -> ../init.d/crond*
    lrwxrwxrwx  K80random -> ../init.d/random*
    lrwxrwxrwx  K85netfs -> ../init.d/netfs*
    lrwxrwxrwx  K89portmap -> ../init.d/portmap*
    lrwxrwxrwx  K90killall -> ../init.d/killall*
    lrwxrwxrwx  K90mysql -> ../init.d/mysql*
    lrwxrwxrwx  K90network -> ../init.d/network*
    lrwxrwxrwx  K92apmd -> ../init.d/apmd*
    lrwxrwxrwx  K96pcmcia -> ../init.d/pcmcia*
    lrwxrwxrwx  K99syslog -> ../init.d/syslog*
    lrwxrwxrwx  S00halt -> ../init.d/halt*

    ¿¹»óÇß´ø ´ë·Î °ÅÀÇ ¸ðµÎ°¡ K ·Î ½ÃÀÛÇÏ´Â ¸µÅ©¸¸ Á¸ÀçÇÕ´Ï´Ù. ´Ü Çϳª S ·Î ½ÃÀÛÇÏ´Â ¸µÅ©´Â halt ÀÔ´Ï´Ù. ½Ã½ºÅÛ Á¾·á¸¦ ÇÏ´Â ½ºÅ©¸³Æ®¿¡ ¸µÅ©°¡ °É·Á ÀÖ½À´Ï´Ù.

    ÀÌÁ¦, ÀÌ·¸°Ô ½ÇÇà·¹º§ º°·Î ÀûÀýÇÑ µð·ºÅ丮¸¦ ã¾Æ¼­ ±× µð·ºÅ丮 ¾Æ·¡ÀÇ ¸µÅ©°¡ °¡¸®Å°´Â ½ºÅ©¸³Æ®µéÀ» ½ÇÇà½ÃÅ°´Â ½ºÅ©¸³Æ®ÀÎ /etc/rc.d/rc ¸¦ »ìÆ캸°Ú½À´Ï´Ù.

    ¾Æ·¡¿¡ Á¦ ÄÄÇ»ÅÍÀÇ /etc/rc.d/rc ÆÄÀÏÀÇ ÀϺθ¦ ¹ßÃéÇØ º¸¾Ò½À´Ï´Ù. ·¹µåÇÞ ÀνºÅçÇÑ ÈÄ¿¡ Çϳªµµ ¹Ù²ÙÁö ¾Ê¾Ò½À´Ï´Ù. (^^;)

    --------------------------------------------------------------------
    #!/bin/bash
    #
    # rc            This file is responsible for starting/stopping
    #               services when the runlevel changes. It is also
    #               responsible for the very first setup of basic
    #               things, such as setting the hostname.
    #
    # Original Author:       
    #               Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    #
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    ... »ý·« ...
    
    # ¸¸¾à, ù¹ø° ÀÎÀÚ·Î ³Ñ¾î¿Â ·±·¹º§¿¡ ÇØ´çÇÏ´Â µð·ºÅ丮°¡ ÀÖ´Ù¸é, ¿ì¼±, 
    # Áö±Ý ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½º¸¦ Á×ÀÔ´Ï´Ù.
    # ÇÁ·Î¼¼½º¸¦ Á×ÀÌ´Â µ¥ »ç¿ëµÇ´Â ¸í·É¾î´Â K ¶ó´Â Á¢µÎ¾î°¡ ºÙÀº ÆÄÀÏÀÔ´Ï´Ù.
    # ·±·¹º§¿¡ ÇØ´çÇÏ´Â µð·ºÅ丮´Â /etc/rc.d/rcn.d ·Î½á, n ¿¡´Â 0, 1, 2, 3, 4,
    # 5, 6µî ·±·¹º§ÀÇ ¼ýÀÚ°¡ ºÙ½À´Ï´Ù. ls /etc/rc.d ¸¦ ½ÇÇàÇØ º¸½Ã¸é rc0.d 
    # rc1.d... ¿Í °°Àº µð·ºÅ丮µéÀÌ Á¸ÀçÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
    
    if [ -d /etc/rc.d/rc$runlevel.d ]; then
        # ¸ÕÀú, kill ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃŲ´Ù.
        for i in /etc/rc.d/rc$runlevel.d/K*; do
            # ½ºÅ©¸³Æ®°¡ Á¸ÀçÇÏ´ÂÁö üũÇÑ´Ù.
            [ ! -f $i ] && continue
    
            # [KS]??foo.{rpmsave,rpmorig} ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÅ°Áö ¾Ê´Â´Ù.
            # [KS]??foo.{rpmsave,rpmorig} ÀÇ ¶æÀº... Á¤±ÔÇ¥Çö½ÄÀ» Á¶±Ý °øºÎÇØ 
            # º¸¸é ¾Ë ¼ö ÀÖ´Ù. 
            # ù ±ÛÀÚ°¡ K ȤÀº S ·Î ½ÃÀÛÇϸç, ±× µÚ¿¡ ÀÓÀÇÀÇ ¹®ÀÚ µÎ°³°¡ ¿À°í, 
            # ±× µÚ¿¡ foo. ÀÌ ¿À¸ç, ³¡¿¡ rpmsave ³ª rpmorig °¡ ºÙÀº ÇüÅÂÀÇ ÆÄÀÏ 
            # À̸§À» ¶æÇÑ´Ù. 
            [ "${i%.rpmsave}" != "${i}" ] && continue
            [ "${i%.rpmorig}" != "${i}" ] && continue
            [ "${i%.rpmnew}" != "${i}" ] && continue
    
            # Check if the subsystem is already up.
            subsys=${i#/etc/rc.d/rc$runlevel.d/K??}
            [ ! -f /var/lock/subsys/$subsys ] && \
                [ ! -f /var/lock/subsys/${subsys}.init ] && continue
    
            # Bring the subsystem down.
            if egrep -q "(killproc |action )" $i ; then
                $i stop
    	else
                action "Stopping $subsys" $i stop
            fi
        done
    
    # ÇÁ·Î¼¼½º¸¦ ¸ðµÎ Á׿´´Ù¸é, ÀÌÁ¦, ÇØ´ç ·±·¹º§¿¡¼­ ½ÇÇàµÇ¾î¾ß ÇÏ´Â 
    # ÇÁ·Î¼¼½ºµéÀ» ½ÇÇà½Ãų Â÷·ÊÀÔ´Ï´Ù. ÇÁ·Î¼¼½º¸¦ ½ÇÇàÇÏ´Â ¸í·É¾î´Â S ¶ó´Â 
    # Á¢µÎ¾î°¡ ºÙÀº ÆÄÀÏÀÔ´Ï´Ù. 
    
        for i in /etc/rc.d/rc$runlevel.d/S*; do
            # ½ºÅ©¸³Æ®°¡ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÑ´Ù.
            [ ! -f $i ] && continue
    
            # Don't run [KS]??foo.{rpmsave,rpmorig} scripts
            [ "${i%.rpmsave}" != "${i}" ] && continue
            [ "${i%.rpmorig}" != "${i}" ] && continue
            [ "${i%.rpmnew}" != "${i}" ] && continue
    
            # Check if the subsystem is already up.
            subsys=${i#/etc/rc.d/rc$runlevel.d/S??}
            [ -f /var/lock/subsys/$subsys ] || \
                [ -f /var/lock/subsys/${subsys}.init ] && continue
    	    
            # ¼­ºñ½º¸¦ ½ÇÇà½ÃųÁö ½ÇÇà ½ÃÅ°Áö ¾ÊÀ»Áö¸¦ »ç¿ëÀÚ¿¡°Ô ¹°¾îº¸´Â 
            # "confirm" ¸ðµåÀÎÁö¸¦ È®ÀÎÇÑ´Ù. ¸¸¾à confirm ¸ðµåÀ̸é, »ç¿ëÀÚ¿¡°Ô 
            # ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ½ÇÇà ¿©ºÎ¸¦ ÁúÀÇÇÑ´Ù.
            # confirm ÇÔ¼ö´Â /etc/rc.d/init.d/functions ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
            [ -n "$CONFIRM" ]  && 
                { 
                    confirm $subsys
                    case $? in
                        0)
                            :
                            ;;
                        2)
                            CONFIRM=
                            ;;
                        *)
                            continue
                            ;;
                    esac 
                }
    
            # Bring the subsystem up.
            if egrep -q "(daemon |action )" $i ; then
                $i start
            else
              if [ "$subsys" = "halt" -o "$subsys" = "reboot" -o \
    	          "$subsys" = "single" ]; then
                  $i start
              else
                  action "Starting $subsys" $i start
              fi
            fi
        done
    fi

    ¼¼ºÎÀûÀÎ ³»¿ëÀº ½ºÅ©¸³Æ®¸¦ Â÷ºÐÈ÷ ºÐ¼®ÇØ º¸½Ã¸é ¾Æ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿©±â¼­ Áß¿äÇÑ °ÍÀº, ÀÚ½ÅÀÌ ºÎÆýÿ¡ ½ÇÇà½ÃÅ°±â¸¦ ¿øÇÏ´Â µ¥¸óÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. rc ½ºÅ©¸³Æ®¿¡ º¸¸é, rc ¿¡ Àμö·Î °Ç³×Áø ·±·¹º§ÀÇ ¼ýÀÚ¸¦ º¸°í, ÇØ´çÇÏ´Â µð·ºÅ丮¿¡¼­ K ·Î ½ÃÀÛÇϰųª, S ·Î ½ÃÀÛÇÏ´Â ¸ðµç ÆÄÀÏÀ» ã¾Æ¼­ Á×À̰ųª ½ÇÇà½Ãŵ´Ï´Ù.

    for i in /etc/rc.d/rc$runlevel.d/K*; do
    ....
    $i stop

    °ú

    for i in /etc/rc.d/rc$runlevel.d/S*; do
    ....
    $i start

    ºÎºÐÀÌ ±× ÀÏÀ» ÇÏ°Ô µË´Ï´Ù.

    ¿ì¸®°¡ ´ÙÁß »ç¿ëÀÚ ¸ðµå·Î ºÎÆÃÇßÀ» ¶§, Áï, ÄÄÇ»Å͸¦ Ä×À» ¶§ ÀÚµ¿À¸·Î ½ÇÇà½ÃÅ°°íÀÚ ÇÏ´Â µ¥¸ó Áß¿¡, ¿¹¸¦µé¾î, httpd °¡ ÀÖ´Ù°í °¡Á¤Çϸé, httpd °¡ ÄÄÀ» Ä×À» ¶§ ÀÚµ¿À¸·Î ½ÇÇàµÇ°Ô Çϱâ À§Çؼ­ /etc/rc.d/rc3.d µð·ºÅ丮 ¾Æ·¡¿¡ SNNhttpd ¶ó´Â ÆÄÀÏ°ú KNNhttpd ÆÄÀÏÀ» ½Éº¼¸¯ ¸µÅ©·Î httpd ȤÀº apachectl ¿¡ ¸µÅ©½ÃÄÑ ÁÖ¸é µÇ´Â °ÍÀÔ´Ï´Ù.

    ±×·¯¸é, ºÎÆýÿ¡ ·±·¹º§ 3À¸·Î ÁøÀÔÇϸ鼭, /etc/rc.d/rc3.d µð·ºÅ丮ÀÇ S* ÆÄÀϵéÀ» ½ÇÇàÇÏ°Ô µÇ°í, (S µÚ¿¡ ¹øÈ£°¡ Àִµ¥ ±× ¼ø¼­·Î ½ÇÇàµË´Ï´Ù.) ¿ì¸®°¡ ¸¸µç SNNhttpd ¸µÅ©µµ ½ÇÇàÇÏ°Ô µË´Ï´Ù. (¿©±â¼­ NN Àº ÀûÀýÇÑ ¹øÈ£ÀÔ´Ï´Ù. ³×Æ®¿öÅ©°¡ È°¼ºÈ­ µÈ ÈÄ¿¡ apache µ¥¸óÀÌ ½ÇÇàµÇ¾î¾ß Çϴ°ÍÀ» °í·ÁÇØ ÀûÀýÇÏ°Ô ¹øÈ£¸¦ ÇÒ´çÇØ ÁÖ½Ã¸é µË´Ï´Ù.

    Âü°íÇÒ ºÎºÐÀº, ÇØ´ç ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃÅ°°Å³ª Á¾·á½ÃÅ°´Â ½ºÅ©¸³Æ®´Â ¹Ýµå½Ã, Ç×»ó, Àμö·Î start ȤÀº stop À̶ó´Â °ÍÀ» ³Ñ°Ü ¹Þµµ·Ï ÀÛ¼ºÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ÇØ´ç ÇÁ·Î¼¼½º¸¦ ½ÇÇà ȤÀº Á¾·á½ÃÅ°´Â ½ºÅ©¸³Æ®¸¦ Á÷Á¢ ¸¸µé±â¸¦ ¿øÇϽŴٸé, ´ÙÀ½°ú °°Àº Äڵ尡 ¹Ýµå½Ã Æ÷ÇԵǾ /etc/rc.d/rc ½ºÅ©¸³Æ®¿¡¼­ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÀÛ¼ºÀ» ÇÏ¼Å¾ß ÇÕ´Ï´Ù. ±×¸®°í, ½Ã½ºÅÛ °ü¸®»ó, ÀÏ°ü¼º ÀÖ°Ô, ±× ½ºÅ©¸³Æ®´Â /etc/rc.d/init.d ¿¡ ³Ö¾î Áֽô°ÍÀÌ º¸±â¿¡ ÁÁÀ» °Í °°½À´Ï´Ù.

    . /etc/rc.d/init.d/functions
    
    ... Áß·« ...
    
    case "$1" in
     start)
        # ÀÌ ºÎºÐ¿¡ ½ÃÀÛÇÏ´Â Äڵ带 ³Ö´Â´Ù.
        ;;
     stop)
        # ÀÌ ºÎºÐ¿¡ Á¾·áÇÏ´Â Äڵ带 ³Ö´Â´Ù.
        ;;
     *)
        # ¸¸¾à start ȤÀº stop ÀÌ ¸í½ÃµÇÁö ¾ÊÀ¸¸é ´ÙÀ½ÁÙÀ» ½ÇÇàÇÑ´Ù.
        echo "Usage: skeleton {start|stop}"
        exit 1
    esac
    
    exit 0

    ÀÌ°Ô Á» º¹ÀâÇÏ´Ù°í ´À³¢½Ã´Â ºÐµéÀº /etc/rc.d/rc.local ½ºÅ©¸³Æ®°¡ Àִµ¥, ÀÌ ½ºÅ©¸³Æ® ¸¶Áö¸· ºÎºÐ¿¡ ½ÇÇà½ÃÅ°±â¸¦ ¿øÇÏ´Â µ¥¸óÀ» ½ÇÇàÇÏ´Â Äڵ带 ³Ö¾î ÁÖ½Ã¸é µË´Ï´Ù. ´Ü, rc.local ½ºÅ©¸³Æ®´Â ½ÇÇà·¹º§ 2, 3, 5 ÀÏ ¶§¸¸ ½ÇÇàµÇµµ·Ï ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. rc.local ½ºÅ©¸³Æ®´Â rcN.d µð·ºÅ丮¿¡¼­ S99local À̶ó´Â À̸§À¸·Î ¸µÅ©µÇ¾î ½ÇÇàµË´Ï´Ù. S99local À̶ó´Â ÆÄÀÏÀÌ rc2.d rc3.d rc5.d ¿¡¸¸ ÀÖÁÒ?


    5장. ²¿¸´¸»

    ¿©·¯°¡Áö·Î ºÎÁ·ÇÑ ¹®¼­ÀÌÁö¸¸, ³ª¸§´ë·Î ¸®´ª½ºÀÇ ºÎÆ® ÇÁ·Î¼¼½º¿¡ ´ëÇØ ¾Ë°í ÀÖ´Â ³»¿ëµéÀ» Á¤¸®ÇØ º¸¾Ò½À´Ï´Ù. Á¦°¡ óÀ½ ¸®´ª½º¸¦ °øºÎÇÒ ¶§ ÀÌ¿¡ °üÇÑ ÀÚ·á°¡ ¾ø¾î¼­ ¿©±âÀú±â »ðÁúÇϸ鼭 °í»ýÇÑ °ÍÀÌ »ý°¢³ª´Â±º¿ä T_T ºÎµð Ãʺ¸ÀÚ(³ªµµ ¾ÆÁ÷ Ãʺ¸¸¦ ¸ø¹þ¾î³­°Å °°Áö¸¸ -_-;)´ÔµéÀÌ ÀÌ ¹®¼­¸¦ º¸°í ÀÚ½ÅÀÇ ¸®´ª½º ½Ã½ºÅÛ ¼³Á¤À» ¹Ù²Ù´Â ÀÏÀ» Á» ´õ ¼ö¿ùÇÏ°Ô ´À²¼À¸¸é ÁÁ°Ú½À´Ï´Ù. ÀÌ ¹®¼­°¡ ´Ù¸¥ ¸¹Àº ¹®¼­µé »çÀÌ¿¡¼­ ¾µµ¥¾ø´Â(!) ¹®¼­ Çϳª¸¦ ´õÇÏ´Â ²ÃÀÌ µÇ¾î¼­ ÀڷḦ ãÀ¸½Ã´Â ºÐµé²² È¥¶õÀ» ³¢Ä¡°Ô µÇÁö³ª ¾ÊÀ»±î ÇÏ´Â °ÆÁ¤µµ ÀÖÁö¸¸.. ^^; °¨È÷ ÀÌ·¸°Ô kldp ¿¡ Á¦ ÀúÀÛ¹°À» ¿Ã·Á º¾´Ï´Ù.

    ÀÐÀ¸½Ã´Â ºÐµéÀÇ µû²ûÇÑ ÁöÀûÀ» ±â´Ù¸®°Ú½À´Ï´Ù. - 2000. 8

    ¾ÖÃÊ¿¡ °èȹÇÑ °ÍÀº µ¥ºñ¾ÈÀÇ °æ¿ì¸¦ ¸ðµÎ´Ù Æ÷ÇÔ½ÃÅ°´Â °ÍÀ̾ú´Âµ¥, ÇÏ´Ùº¸´Ï °ÔÀ¸¸§ÀÌ ³ª´Â±º¿ä. ÇìÇì... ¿ø¸®´Â °°±â ¶§¹®¿¡ Á¶±Ý¸¸ »ðÁúÀ» ÇØ º¸½Ã¸é µ¥ºñ¾È¿¡¼­µµ ¹«³­È÷ Àû¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. - 2001. 7


    Âü°í¹®Çå

    Essential System Administration, FrischAEleen, O'REILLY .

    The Design of the UNIX Operating System, BachMorris, Prentice Hall .

    ¶Ç´Ù¸¥ ¸®´ª½ºÀÇ ¼¼°è, À̸¸¿ë, kldp .

    AGETTY(8), INIT(8), INITTAB(5), Linux MAM PAGE .

    Understanding the Linux Kernel, Bovet et al.Daniel P., O'REILLY .

    Advanced Programming in UNIX environment, StevensRichard, Addison Wesley .

    주석

    [1]

    The design of the UNIX Operating System ¿¡ ÀÇÇϸé, ÀÌ ¼³¸íÀÌ ¸Â½À´Ï´Ù. ±×·¯³ª, ¸®´ª½º ½Ã½ºÅÛ¿¡¼­ ÇÁ·Î¼¼½º id 0 ÀÎ ÇÁ·Î¼¼½º¿Í id 1 ÀÎ ÇÁ·Î¼¼½ºÀÇ ¿ªÇÒÀº Á» ´Ù¸¨´Ï´Ù. ¹°·Ð, ¿ª»çÀûÀÎ ÀÌÀ¯·Î 0¹ø ÇÁ·Î¼¼½º°¡ swapper ¶ó°í ºÒ¸®¿ì±â´Â ÇÏÁö¸¸, ¸®´ª½º¿¡¼­´Â 0 ¹ø ÇÁ·Î¼¼½º´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â, idle ÇÁ·Î¼¼½ºÀÔ´Ï´Ù. Áï, cpu °¡ ÇÒ ÀÏÀÌ ¾øÀ» ¶§ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù. ±×·¡¼­ ps aux ¸¦ ÇØ º¸¾Æµµ PID 0 ÀÎ ÇÁ·Î¼¼½º´Â ¾ø½À´Ï´Ù. ´Ü, ¸ðµç ÇÁ·Î¼¼½ºµéÀÇ 'Á¶»ó' ÀÓ¿¡´Â Ʋ¸²¾øÁÒ.

    ps aux ¸¦ ½ÇÇàÇßÀ» ¶§, ³ª¿À´Â [kswapd], [bdflush] µîÀÇ ÇÁ·Î¼¼½ºµéÀº Ä¿³Î ½º·¹µå(kernel thread) ¶ó°í ºÎ¸£´Â °ÍµéÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÌ ¹®¼­ÀÇ ¼º°Ý¿¡ ¸ÂÁö ¾ÊÀ¸¹Ç·Î »ý·«ÇÏ°Ú½À´Ï´Ù. ±×·±µ¥, ps aux ¸¦ ½ÇÇàÇßÀ» ¶§, 1 ¹ø ÇÁ·Î¼¼½º´Â [init] ¶ó°í ³ª¿ÀÁö ¾Ê°í ±×³É init ¶ó°í ³ª¿ÀÁÒ? (Ä¿³Î 2.4.4 ±âÁØ) ±× ÀÌÀ¯´Â, 1¹ø Ä¿³Î ½º·¹µåÀÎ (ÆíÀÇ»ó init ÇÁ·Î¼¼½º¶ó°í ºÎ¸¨´Ï´Ù.) init ÇÁ·Î¼¼½º°¡ ÀÚ½ÅÀÇ ÇÒ ÀÏÀ» ¸¶Ä¡°í, /sbin/init ÇÁ·Î±×·¥À¸·Î ÀÚ½ÅÀ» ´ëüÇØ ¹ö¸®±â ¶§¹®ÀÔ´Ï´Ù. ³»¿ëÀÌ º»¹®ÀÇ ÃëÁö¿¡¼­ ³Ê¹« ¹þ¾î³­°Å °°³×¿ä :-) À̸¸ ÁÙÀÌ°Ú½À´Ï´Ù.

    [2]

    ½ÇÁ¦ ¸®´ª½º ½Ã½ºÅÛ¿¡¼­´Â Ä¿³Î ½º·¹µåµé Áß, kswapd, bdflush, kupdated, kreclaimd µîÀÌ º»¹®¿¡¼­ ¼³¸íÇÏ´Â ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù.

    [3]

    ÀÌ¿Í °ü·ÃÇؼ­ Á¤ÇåÇдÔ(hunhak94@somedomain) ²²¼­ ´ÙÀ½°ú °°Àº Áú¹®À» Áּ̽À´Ï´Ù :

    ÀÌ ºÎºÐ¿¡¼­ init ´ÙÀ½¿¡ ÆÄÀϽýºÅÛ ¸¶¿îÆ®fstab ÀÌ ½ÇÇàµÈ´Ù°í Çϸé Ãʱ⠺ÎÆýà /sbin ÀÌ ¸¶¿îÆ® µÇÁö ¾ÊÀº »óÅ Áï, fstab ÀÌ ½ÇÇàµÇÁö ¾ÊÀº »óÅ¿¡¼­ ¾îÂî /sbin/init ¸¦ ã¾Æ¼­ ½ÇÇàÀ» ÇÒ ¼ö °¡ ÀÖÁÒ?? °á±¹ ¸¶¿îÆ® µÇÁö ¾ÊÀº »óÅ¿¡¼­ ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±ÙÀ» ÇÒ ¼ö ÀÖ´Ù´Â À̾߱âÀε¥... Àß ÀÌÇØ°¡ ¾È°©´Ï´Ù.

    ´ÙÀ½Àº ÀúÀÇ ´äÀåÀÔ´Ï´Ù :

    Çѹø ÈÆÇдÔÀÇ ½Ã½ºÅÛ¿¡¼­ dmesg ¸¦ ÇØ º¸¼¼¿ä. ¾Æ¸¶µµ NET, Áï, TCP/IP ÇÁ·ÎÅäÄÝ ½ºÅðú À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏÀ» ÃʱâÈ­ ÇÑ ÈÄ¿¡ root ¸¦ readonly ·Î ¸¶¿îÆ® ÇÏ´Â ºÎºÐÀÌ ÀÖÀ» °Ì´Ï´Ù. ÀÌ°ÍÀº, mount ÇÁ·Î±×·¥À» ¾²´Â °ÍÀÌ ¾Æ´Ï¶ó, Ä¿³ÎÀÇ VFS(Virtual File System) ¿¡¼­ ó¸®ÇÏ´Â °ÍÀÌÁÒ, ±×¸®°í, fstab À» ÂüÁ¶ÇÑ ¸¶¿îÆ®´Â start_kernel() ÇÔ¼ö°¡ Á¾·áµÇ¸é¼­, execve() ÇÔ¼ö·Î init ¸¦ ½ÇÇà½ÃŲ ÈÄ¿¡ ÀϾ´Ï´Ù. À̶§, readonly ·Î ¸¶¿îÆ®µÇ¾î ÀÖ´ø root ÆÄÀÏ ½Ã½ºÅÛÀÌ ´Ù½Ã read/write ·Î ¸¶¿îÆ®µÇ°Ô µË´Ï´Ù. Èì... ±×·¯¸é, /sbin À» root ÆÄÀϽýºÅÛ¿¡ µÎÁö ¾Ê°í ´Ù¸¥ ÆÄÀϽýºÅÛÀÌ µÐ´Ù¸é ¾î¶»°Ô µÉ±î¿ä... ±Ã±ÝÇØÁö³×¿ä.. ÀÌ ¹®Á¦´Â ½Ã½ºÅÛÀ» Çѹø ¹Ð°í, /sbin À» ´Ù¸¥ ÆÄÀϽýºÅÛÀ¸·Î µÎ¾î¼­ Å×½ºÆ® ÇØ º» ÈÄ¿¡ ´Ù½Ã ¸ÞÀÏÀ» µå¸®°Ú½À´Ï´Ù. ´ÙÇàÈ÷µµ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Â Àå³­°¨¿ë ÄÄÇ»ÅÍ°¡ Àְŵç¿ä ^^ ¸ÞÀÏ ´Ù½ÃÇѹø °¨»çµå¸³´Ï´Ù. Áñ°Å¿î ³ª³¯µé µÇ¼¼¿ä ^^*** ²¿¶ûÁö. ´äÀåÀÌ Á» ´Ê¾ú³×¿ä... ±×°£ ¹Ùºü¼­, ÈÆÇдÔÀÇ ¸ÞÀÏ¿¡ ´ëÇØ °õ°õÈ÷ »ý°¢ÇØ º¼ ½Ã°£ÀÌ º°·Î ¾ø¾ú´ä´Ï´Ù -_-;;;

    [4]

    ÀÌó·³ ·±·¹º§À» Á¤ÀÇÇÏ°í, ·±·¹º§ º°·Î µð·ºÅ丮¸¦ ÇÒ´çÇؼ­ init ¸¦ ½ÇÇà½ÃÅ°´Â ¹æ½ÄÀÇ init ¸¦ system V ½ºÅ¸ÀÏÀÇ init ¶ó°í ÇÕ´Ï´Ù. init ÇÁ·Î±×·¥Àº Å©°Ô BSD ½ºÅ¸ÀÏ°ú system V ½ºÅ¸ÀÏÀÇ µÎÁ¾·ù°¡ Àִµ¥, ¿ì¸®³ª¶ó¿¡¼­ »ç¿ëÇÏ´Â ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷º» (½ÇÁ¦ Á¦°¡ ½áº» °ÍÀº ·¹µåÇÞ °è¿­°ú µ¥ºñ¾È¹Û¿¡´Â ¾ø½À´Ï´Ù. ¤Ñ.¤Ñ)¿¡¼­´Â system V ½ºÅ¸ÀÏÀÇ init ¸¦ »ç¿ëÇÕ´Ï´Ù.

    [5]

    lilo ¿¡ ÁÖ´Â ¸í·ÉÀº lilo HOWTO ¸¦ ÂüÁ¶Çϼ¼¿ä.

    [6]

    µ¥ºñ¾È ¹èÆ÷º»ÀÇ °æ¿ì, ·¹º§ 2 °¡ µðÆúÆ® ·±·¹º§(Full-multiuser mode)

    [7]

    A runlevel is a software configuration of the system which allows only a selected group of processes to exist.

    [8]

    ·¹µåÇÞÀÇ °æ¿ì

    [9]

    µ¥ºñ¾ÈÀÇ °æ¿ì /etc/rcN.d ÀÔ´Ï´Ù.

    [10]

    ÀÌ·¸°Ô µÇ¾î ÀÖÁö ¾ÊÀ» °æ¿ì´Â xdm ȤÀº gdm À» »ç¿ëÇÏ´Â °æ¿ìÀÔ´Ï´Ù.

    [11]

    µ¥ºñ¾ÈÀÇ °æ¿ì´Â si::sysinit:/etc/init.d/rcS ·Î µÇ¾î ÀÖ½À´Ï´Ù.

    [12]

    ´ç¿¬È÷ µ¥ºñ¾ÈÀº /etc/init.d/rcS ÀÌ°ÚÁÒ.

    [13]

    ÃÖÃÊÀÇ init ´Â Ä¿³ÎÀÇ init ¾²·¹µå¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù.

    [14]

    ps ¸¦ ¼öÇàÇßÀ» ¶§ bash µîÀÇ ¾Õ¿¡ '-' ±âÈ£°¡ ºÙ¾î¼­ -bash µî°ú °°ÀÌ Ç¥½ÃµÈ °ÍÀÌ ·Î±×ÀÎ ½©ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ´Ù¸¥ ¹®¼­¸¦ ã¾Æº¸¼¼¿ä.

    [15]

    µ¥ºñ¾ÈÀÇ °æ¿ìµµ ÆÄÀÏÀÇ À§Ä¡¿Í À̸§¸¸ Á¶±Ý ´Ù¸¦ »Ó ¿ø¸®´Â °°½À´Ï´Ù.


    ID
    Password
    Join
    You plan things that you do not even attempt because of your extreme caution.


    sponsored by andamiro
    sponsored by cdnetworks
    sponsored by HP

    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2003-09-03 09:57:10
    Processing time 0.0015 sec