3Àå. init : ±× ÀÌÈÄ

¾Õ Àý¿¡¼­ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ init ÇÁ·Î¼¼½º°¡ Àڽſ¡°Ô ÇÒ´çµÈ ÃʱâÈ­ °úÁ¤À» ¸ðµÎ ³¡¸¶Ä¡°í ³ª¸é, inittab ÆÄÀÏÀÇ ¸Ç ³¡ºÎºÐ¿¡ ¸í½ÃµÈ °Íó·³ mingetty ȤÀº getty ÇÁ·Î¼¼½º¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ½ÇÇà½ÃŰ´Â ¹æ¹ýÀº ÃÖÃÊ¿¡ pid 0 ÀÇ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ½ÇÇàµÈ "¿Õ"(?) init °¡ fork() ½Ã½ºÅÛ ÄÝÀ» Çѹø ¼öÇàÇϰí, ±×¿¡ ÀÇÇØ »ý¼ºµÈ ÀÚ½Ä init °¡ exec() ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇØ¼­ mingetty µîÀÇ ÇÁ·Î¼¼½º¸¦ ¼öÇàÇÏ°Ô µË´Ï´Ù. ±×¸®°í ³ª¼­, mingetty ÇÁ·Î¼¼½º´Â ´Ù½Ã exec() ¸¦ È£ÃâÇÏ¿© login ÇÁ·Î¼¼½º¸¦ ¼öÇàÇϰí, login ÇÁ·Î¼¼½º´Â »ç¿ëÀÚÀÇ userid ¿Í passwd ¸¦ ÀԷ¹޾Ƽ­ »ç¿ëÀÚ ÀÎÁõ°úÁ¤À» °ÅĨ´Ï´Ù. ¸¸¾à, ½ÂÀÎµÈ »ç¿ëÀÚ¶ó¸é, /etc/passwd ÆÄÀÏ¿¡ ¸í½ÃµÈ »ç¿ëÀÚ¿¡ ÇØ´çÇÏ´Â ½©À» ¶ç¿ì°Ô µË´Ï´Ù. ½©À» ¶ç¿ì´Â °Í ¶ÇÇÑ exec() ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇØ¼­ ÀÔ´Ï´Ù. ±×·¯¸é, »ç¿ëÀÚ´Â ÀÚ½ÅÀÇ ½© (ÁÖ·Î 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)  |
        +------+------+