¾Õ Àý¿¡¼ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ init ÇÁ·Î¼¼½º°¡ Àڽſ¡°Ô ÇÒ´çµÈ ÃʱâÈ °úÁ¤À» ¸ðµÎ ³¡¸¶Ä¡°í ³ª¸é, inittab ÆÄÀÏÀÇ ¸Ç ³¡ºÎºÐ¿¡ ¸í½ÃµÈ °Íó·³ mingetty ȤÀº getty ÇÁ·Î¼¼½º¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ½ÇÇà½ÃŰ´Â ¹æ¹ýÀº ÃÖÃÊ¿¡ pid 0 ÀÇ ÇÁ·Î¼¼½º [1] ¿¡ ÀÇÇØ ½ÇÇàµÈ init °¡ fork() ½Ã½ºÅÛ ÄÝÀ» Çѹø ¼öÇàÇϰí, ±×¿¡ ÀÇÇØ »ý¼ºµÈ ÀÚ½Ä init °¡ exec() ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇØ¼ getty ȤÀº mingetty µîÀÇ ÇÁ·Î¼¼½º¸¦ ¼öÇàÇÏ°Ô µË´Ï´Ù.
ÇÁ·ÒÇÁÆ®¸¦ ¶ç¿ì°í¼ »ç¿ëÀÚÀÇ userid °¡ ÀԷµDZ⸦ ±â´Ù¸®´Â ÀÏÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ userid ¸¦ ÀÔ·ÂÇÏ°í¼ ¿£ÅÍ۸¦ Ä¡°Ô µÇ¸é, getty ´Â /bin/login À» ½ÇÇà½ÃŰ°Ô µË´Ï´Ù.
login :
¶ó´Â ÇÁ·ÒÇÁÆ®¸¦ ¶ç¿ì°í, »ç¿ëÀÚ°¡ password ¸¦ ÀÔ·ÂÇϱ⸦ ±â´Ù¸³´Ï´Ù. »ç¿ëÀÚ°¡ ¾ÏÈ£¸¦ ÀÔ·ÂÇϸé, /etc/passwd ȤÀº /etc/shadow ÆÄÀϷκÎÅÍ ÆÐ½º¿öµå¸¦ ÀÐ¾î¼ ¾ÏÈ£È ÇÑ ÆÐ½º¿öµå¿Í ÀÏÄ¡ÇÏ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù. ¸¸¾à ÆÐ½º¿öµå°¡ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é, login ÇÁ·Î±×·¥Àº ¿¡·¯¸¦ ³»°í Á¾·áÇÕ´Ï´Ù. ±×·¯¸é, init ÇÁ·Î¼¼½º´Â ´Ù½Ã ÀÚ½ÅÀ» fork() Çϰí, /sbin/getty ÇÁ·Î±×·¥À» exec() ÇØ¼ ȸ鿡 ·Î±×ÀÎ ÇÁ·ÒÇÁÆ®¸¦ Ãâ·ÂÇϵµ·Ï ÇÏ°í »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®°Ô µË´Ï´Ù. ¸¸¾à ÆÐ½º¿öµå°¡ ÀÏÄ¡Çϸé, login ÇÁ·Î±×·¥Àº Ȩµð·ºÅ丮¸¦ ¹Ù²Ù´Â µî ¿©·¯°¡Áö ÀÛ¾÷À» Çϰí, ÃÖÁ¾ÀûÀ¸·Î exec()¸¦ ÇÏ¿©, ·Î±×ÀÎ ½© [2] À» ¶ç¿ì°Ô µË´Ï´Ù.
Password:
±×·¯¸é, »ç¿ëÀÚ´Â ÀÚ½ÅÀÇ ½© (ÁÖ·Î 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) | +------+------+ |
[1] | ÃÖÃÊÀÇ init ´Â Ä¿³ÎÀÇ init ¾²·¹µå¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù. |
[2] | ps ¸¦ ¼öÇàÇßÀ» ¶§ bash µîÀÇ ¾Õ¿¡ '-' ±âÈ£°¡ ºÙ¾î¼ -bash µî°ú °°ÀÌ Ç¥½ÃµÈ °ÍÀÌ ·Î±×ÀÎ ½©ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ´Ù¸¥ ¹®¼¸¦ ã¾Æº¸¼¼¿ä. |