UNIXÀÇ ±¸Á¶
3.1 Ä¿³Î °³¿ä
UNIXÀÇ Áß¿äÇÑ ºÎºÐÀÎ Ä¿³ÎÀ» Çϵå¿þ¾î¿Í OS»çÀÌÀÇ ÀÎÅÍÆäÀ̽º ¿ªÇÒÀ» ÇÏ´Â °ÍÀ¸·Î¼ ½Ã½ºÅÛ ÇÁ·Î±×·¥ °èÃþÀ̶ó ÇÑ´Ù. Ä¿³ÎÀÇ µÎ °¡Áö ÁÖµÈ ÀÏÀº ´ÙÁß ÇÁ·Î±×·¡¹Ö°ú ´ÙÁß Å½ºÅ·À» À§ÇÑ ÇÁ·Î¼¼½º °ü¸®¿Í ÆÄÀÏ ¹× ÀÔÃâ·ÂÀåÄ¡ÀÇ °ü¸®ÀÌ´Ù. UNIX Ä¿³ÎÀÌ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â ±â´ÉµéÀº ´ÙÀ½°ú °°´Ù. ÀÏ¹Ý PCÀÇ ÀÔÀå¿¡¼ º¸¸é BIOS·Î º¸¸é ¹«³ÇÏ´Ù.
ÇÁ·Î¼¼½º °ü¸®, ÆÄÀÏ°ü¸®, ÀåÄ¡°ü¸®, °¡»ó ¸Þ¸ð¸® °ü¸®,³×Æ®¿öÅ·, ³×Æ®¿öÅ· ÆÄÀÏ ½Ã½ºÅÛ, ´ÙÁß Ã³¸®±âÀÇ Áö¿ø±â´É
3.2 Ä¿³ÎÀÇ ºÎÆðú Á¾·á
ºÎÆÃÀ» ÇÏ¿´À» °æ¿ì¿¡ ½Ã½ºÅÛÀÇ Ã¹ ¹ø° ºí·ÏÀ̳ª µÑ° ºí·Ï¿¡ °ÉÃÄ ÀúÀåµÇ¾î ÀÖ´Â ¾ÆÁÖ ÂªÀº built-in ÇÁ·Î±×·¥ÀÌ ¸Þ¸ð¸®·Î ÀÐÇô µé¾î¿Â´Ù. ÀÌ°ÍÀº ÀÏÁ¾ÀÇ loader ÇÁ·Î±×·¥À¸·Î½á Ä¿³Î ÇÁ·Î±×·¥ÀÎ /unix ¶Ç´Â /root/unix¸¦ ¸Þ¸ð¸®·Î ·ÎµåÇÏ¿© ½ÇÇàÀ» ½ÃÀÛÇÑ´Ù. Ä¿³ÎÀÌ Á¦ÀÏ ¸ÕÀúÇÏ´Â ÀÏÀº Çϵå¿þ¾î ÀÎÅÍÆäÀ̽º ÀåÄ¡µé¿¡ ´ëÇÑ ÃʱâÈ ÀÛ¾÷ÀÌ´Ù. Ä¿³ÎÀº °¢ ±¸µ¿±âÀÇ ÃʱâÈ ·çƾÀ» Â÷·Ê·Î ½ÇÇàÇÏ¿© ¾î¶² ÁÖº¯ÀåÄ¡°¡ »ç¿ë°¡´ÉÇÑ°¡¸¦ °áÁ¤ÇÑ´Ù. ±×¸®°í °¢Á¾ I/O bufferµéÀ» ÃʱâÈÇÑ´Ù. Ä¿³ÎÀÌ Á÷Á¢ ¸¸µç ù ¹ø° ÇÁ·Î¼¼½º¸¦ process 0 À̶ó ºÎ¸£´Âµ¥ process1ÀÌ ¸¸µé¾îÁø ÈÄ¿¡ swapper°¡ µÈ´Ù. swapper´Â ÇÁ·Î¼¼½º¸¦ ½ºÄÉÁ층ÇÏ´Â ±â´ÉÀ» ÇàÇÑ´Ù. process1Àº ½Ã½ºÅÛÀÇ ´ÙÁß»ç¿ëÀÚ ÀÛ¾÷À» °ü¸®ÇÏ´Â ÇÁ·Î±×·¥ÀÎ /etc/init¸¦ ½ÇÇàÇÏ°í, process2´Â pagedaemonÀ̶ó´Â paging-out ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. ¿©±â¼ process id¸¦ ¾Ë¾Æ³»´Â ¸í·É¾î´Â ps Àε¥, solaris 2.5¿¡¼´Â ps -AÀÌ´Ù. ¹Ì¸® ¿¹¾àµÈ pid(process id)´Â pid 0=swapper, pid1=init, pid2=page daemonÀÌ´Ù. ÀÌ¿ÜÀÇ process id´Â »ç¿ëÀÚ°¡ ½ÇÇàÇÒ ÇÁ·Î±×·¥¿¡ ´ëÇؼ ȯ°æÆÄÀÏ¿¡¼ Á¤ÇØÁÙ¼öµµ ÀÖÀ¸¸ç, ÀÓÀÇ·Î ½Ã½ºÅÛÀÌ Á¤ÇØÁÙ¼öµµ ÀÖ´Ù. º¸´Ù Á¤È®ÇÑ Àǹ̷Π¸»ÇÏÀÚ¸é ³ª¸ÓÁö process´Â /fork/exec È£Ãâ¹æ½Ä¿¡ ÀÇÇÏ¿© È£ÃâµÈ´Ù. initÇÁ·Î¼¼½º¸¦ Á¶»óÀ¸·Î ÇÏ´Â Ä¿³ÎÀÇ ÇÁ·Î¼¼½º tree±¸Á¶¸¦ Ç¥½ÃÇÑ´Ù. init ÇÁ·Î¼¼½º´Â ½Ã½ºÅÛ Äֿܼ¡ shell ÇÁ·Î¼¼½º¸¦ °¡µ¿½ÃÅ°°í super-userÀÇ Æ¯±ÇÀ» ºÎ¿©ÇÒ ¼ö Àִµ¥, ÀÌ°ÍÀ» single-user mode¶ó°í ºÎ¸¥´Ù. ÀÌ single-user mode¿¡¼´Â ÄܼÖÀÌ ·çƮƯ±ÇÀ» °®°í ÀÚµ¿ÀûÀ¸·Î loginµÇ¸ç, ´Ù¸¥ Åë½Å¼±µéÀº loginÀ» ¹Þ¾ÆµéÀÌÁö ¾Ê´Â´Ù. single-user mode´Â º¸Åë ÆÄÀÏ ½Ã½ºÅÛÀ» Á¡°Ë, º¸¼öÇϰųª ½Ã½ºÅÛÀÇ ±âº»ÀûÀÎ Å×½ºÆ®¸¦ ÇÏ´Â °æ¿ì¿¡ »ç¿ëµÇ¾îÁø´Ù. init ÇÁ·Î¼¼½º´Â multi-userÇÁ·Î¼¼½º ±¸Á¶¸¦ ¸¸µé ¼ö ÀÖ´Ù. init´Â È°¼ºÈµÇ¾î ÀÖ´Â ´Ü¸»Åë½Å¼±µé¿¡ getty ÇÁ·Î¼¼½º¸¦ »ý¼º½ÃÅ´À¸·Î¼ multi-user ȯ°æÀ» Á¶¼ºÇÑ´Ù. init¶ÇÇÑ shell ÇÁ·Î¼¼½º¸¦ »ý¼º½ÃÄѼ start-up Ä¿¸Çµå ÆÄÀÏÀÎ /etc/rc¸¦ ½ÇÇàÇÑ´Ù. rc(run commands) script´Â º¸Åë ÆÄÀϽýºÅÛÀÇ mount, daemon ÇÁ·Î¼¼½ºµéÀÇ ½Ãµ¿, Àӽà ÆÄÀϵéÀÇ »èÁ¦, ÀÛ¾÷ ȸ°èÇÁ·Î±×·¥µéÀÇ ½Ãµ¿ µîÀÇ Ä¿¸ÇµåµéÀ» Æ÷ÇÔÇÑ´Ù. getty ÇÁ·Î¼¼½º´Â Á÷·Ä´Ü¸» Åë½Å¼±¿¡ login ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© passwd¸¦ °Ë»çÇÏ°í loginÀÌ ¼º¸³µÇ¸é shellÀ» ¼öÇàÄÉ ÇÑ´Ù.
ºÎÆÃÀÌ ¼º¸³µÇ±â ±îÁö ºí·ÏÀÇ À̵¿À» º¸¸é ´ÙÀ½¼ø¼¿Í °°´Ù.
boot block ¢Ñ super block ¢Ñ i-nodes ¢Ñ file& directory check ¢Ñ UNIX kernel ¢Ñ I/O buffers check ¢Ñ user space ¼º¸³ ¢Ñ gettyµ¿ÀÛ ¢Ñ »ç¿ëÀÚ idÀԷµǸé passwdÈ®ÀÎ ¢Ñ »ç¿ëÀÚ ÀÛ¾÷°ø°£ ¼º¸³.
UNIXÀÇ ½Ã½ºÅÛÀÌ ºÎÆÃÇÒ ¶§ user space¼º¸³ ÈÄ System ready ¶ó´Â ¸Þ½ÃÁö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌÀü¿¡ DOS¿¡¼ º¸¾Æ¿Ô´ø Autoexec.bat ÆÄÀÏÀÇ ÀÛ¿ëÀ» ÇÏ´Â ºÎºÐÀÌ UNIX¶ÇÇÑ ÀÖ´Ù. ¾Æ´Ï ´Ù½Ã¸» Çϸé UNIXÀÇ ÀÌ·± ±â´ÉÀ» DOS¿¡ Àû¿ëÇÑ °ÍÀ̶ó°íµµ º¼ ¼ö ÀÖ´Ù.
ÀÌ ÀÛ¾÷Àº /etc/init.d ¶ó´Â µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϵéÀÌ ÀÚµ¿ ½ÇÇàµÇ´Âµ¥ ¿©±â¿¡ ÀÖ´Â ÆÄÀϵéÀº /etc/rc0.d ¡ /etc/rc3.d µð·ºÅ丮¿¡ ÀÖ´Â scriptÇü½ÄÀÇ ÆÄÀϵé°ú ¸µÅ© µÇ¾î ÀÖ´Ù. ÀÌ°ÍÀÇ Àǹ̴ /etc/rc0.d ¡ /etc/rc3.d ¾È¿¡ ÀÖ´Â script Çü½ÄÀÇ ÆÄÀÏÀÌ ¹«¾ùÀ» ¾î¶»°Ô ½ÇÇà½ÃÄÑ¾ß ÇÒ °ÍÀΰ¡¸¦ ¹¦»çÇØÁÖ°í ÀÖ´Ù. ±×¸®°í ½ÇÁ¦ ½ÇÇàµÇ´Â ÆÄÀÏÀº /etc/init.d ¿¡ À§Ä¡ÇØ ÀÖ´Ù.
½Ã½ºÅÛÀÇ Á¤Áö¸¦ À§Çؼ ÇÊ¿äÇÑ ÀÛ¾÷Àº Àü¿øÀ» ²ô±â Àü¿¡ ¸ðµç »ç¿ëÀÚÀÇ ÇÁ·Î¼¼½º¸¦ Á¤Áö½ÃŲ ÈÄ ¸Þ¸ð¸®ÀÇ I/O buffer¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏ ºí·ÏµéÀ» µð½ºÅ©¿¡ saveÇÏ´Â ÀÏÀÌ´Ù. À̶§ »ç¿ëµÇ´Â ¸í·É¾î´Â syncÀ̸ç ÃÖÁ¾ÀûÀ¸·Î shutdown½ÃŲ ÈÄ Àü¿øÀ» ²ö´Ù. shutdownÀ» ½ÃÅ°¸é 1ºÐ ¾È¿¡ ½Ã½ºÅÛÀÌ Á¾·áµÉ °ÍÀ̶ó´Â broadcast ¸Þ½ÃÁö°¡ ÇöÀç ·Î±×ÀÎ µÇ¾î ÀÖ´Â »ç¿ëÀÚ¿¡°Ô Àü´ÞµÇ¾î Áø´Ù. ±×·¡¼ Á¢¼ÓµÈ »ç¿ëÀÚÀÇ ¼ö°¡ Àû´Ù¸é who¸í·É¾î·Î Á¢¼ÓÀÚ¸¦ ÆľÇÇÑ µÚ finger¸í·É¾î·Î ÇöÀç »ç¿ëÁßÀÎ process¸¦ ÆľÇÇÏ¿© Á¾·áµÉ °ÍÀ̶ó´Â °ÍÀ» Å뺸ÇØÁÖ¾î¾ß ÇÑ´Ù.
3.3 UNIX ÆÄÀÏ ½Ã½ºÅÛÀÇ ±¸Á¶
¸ðµç UNIX ÆÄÀÏ ½Ã½ºÅÛÀº 5°³ÀÇ ÁÖ¿äºÎºÐÀ¸·Î µÇ¾î ÀÖ´Ù. ÆÄÀϽýºÅÛÀÇ Ã¹ ¹ø° ºí·ÏÀ» Æ÷ÇÔÇÏ´Â ¸î °³ÀÇ ºí·Ï¿¡´Â ºÎÆ®ºí·ÏÀÌ ÀúÀåµÈ´Ù. ÀÌ°÷À» Á¦¿ÜÇÑ ³ª¸ÓÁö ºÎºÐÀº ½Ç¸°´õ ±×·ìÀ̶ó ºÎ¸£´Â ¿©·¯ °³ÀÇ ½Ç¸°´õ ±×·ìÀ¸·Î ³ª´©¾î °ü¸®ÇÑ´Ù. ÇÑ °³ÀÇ ½Ç¸°´õ ±×·ìÀº ¼öÆÛºí·Ï, ½Ç¸°´õ ±×·ìºí·Ï, i-nodeµ¥ÀÌºí ¹× µ¥ÀÌÅÍ ºí·ÏÀ¸·Î ±¸¼ºµÈ´Ù.
(1) ºÎÆ®ºí·Ï
: ºÎÆ®½ºÆ®·¦¿¡ ÇÊ¿äÇÑ ÆÄÀϵéÀÌ Á¸ÀçÇÏ¸ç ·çÆ®¿µ¿ª¿Ü¿¡´Â ÇØ´çµÇÁö ¾Ê´Â´Ù. Áï ÀϹݻç¿ëÀڵ鿡°Ô´Â ÇØ´çµÇÁö ¾Ê´Â ºí·ÏÀÌ´Ù.
(2) ¼öÆÛºí·Ï
: ÆÄÀÏ ½Ã½ºÅÛÀÇ Å©±â, i-node Å×À̺íÀÇ Å©±â, free ºí·Ï¸®½ºÆ® µî ÆÄÀϽýºÅÛÀ» °ü¸®Çϴµ¥ ÇʼöÀûÀÎ Á¤º¸°¡ ÀúÀåµÈ´Ù.
(3) ½Ç¸°´õ ±×·ì ºí·Ï
: ½Ç¸°´õ ±×·ì³»ÀÇ À¯È¿ ºí·ÏµéÀÇ ºñÆ® ¸Ê Á¤º¸³ª Åë°è Á¤º¸¸¦ ±â·ÏÇÑ´Ù.
(4) i-node Å×À̺í
: ÆÄÀÏ¿¡ ´ëÇÑ Áß¿äÇÑ Á¤º¸¸¦ ½Æ´Âµ¥ Áï, ÆÄÀÏ¿¡ ´ëÇÑ Å©±â, µ¥ÀÌÅÍÀ§Ä¡(µð½ºÅ©ÁÖ¼Ò), ÆÄÀÏÀ¯Çü, »ç¿ëÇã°¡±Ç, »ý¼º³¯Â¥µîÀÌ ±â·ÏµÇ´Â Ä¿³ÎÀÇ ÆÄÀÏ°ü¸®¿¡ ÀÖ¾î¼ ÇÙ½ÉÀÌ µÇ´Â ¸ðµç ÀڷḦ ±â·ÏÇÑ´Ù. ¸¸¾à ÇÑ ÆÄÀÏÀÌ »ý¼ºµÈ´Ù¸é ±× ÆÄÀÏÀº ÆÄÀϸíÀ» °¡Áü°ú µ¿½Ã¿¡ i-node number¸¦ °¡Áö°í¼ ÇØ´ç µð·ºÅ丮 ÆÄÀÏ¿¡ ÀúÀåµÇ±â ¶§¹®¿¡ µð·ºÅ丮¿¡¼ ÆÄÀϸíÀ¸·Î ¼Õ½±°Ô i-node¸¦ ã¾Æ ÆÄÀÏÀÇ À§Ä¡Á¤º¸¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.
(5) µ¥ÀÌÅÍ ºí·Ï
: ½ÇÁ¦ µ¥ÀÌÅÍ°¡ ÀúÀåµÇ´Â °ø°£ÀÌ´Ù.
3.4 µð·ºÅ丮 ÆÄÀÏÀÇ ±¸Á¶
UNIXÀÇ Æ¯Â¡Áß ÇϳªÀÎ ¸µÅ©±¸Á¶´Â Æí¸®ÇÑ ±¸Á¶Àε¥, ÆÄÀÏÀÌ ¸µÅ© µÇ¸é ÆÄÀÏÀÇ ³»¿ëÀº º¹»çµÇÁö ¾Ê°í ±× ÆÄÀÏÀÇ i-node number¿Í ÆÄÀÏÀ̸§¸¸ ÇöÀçÀÇ µð·ºÅ丮¿¡ µî·ÏµÈ´Ù. UNIX¿¡¼ÀÇ ¸µÅ©µÈ°ÍÀÇ »èÁ¦ÀÇ Àǹ̴ ¸µÅ©µÈ°Í±îÁö ¸ðµç °ÍÀÇ »èÁ¦¸¦ ÀǹÌÇÑ´Ù. ±×¸®°í µð·ºÅ丮¸¦ »ý¼º½ÃÅ°¸é '.' ¿Í '..'°¡ »ý±â´Âµ¥, '.'´Â '..'ÀÇ i-node¿¡ ´ëÇÑ °ÍÀ¸·Î¼ »óÀ§ µð·ºÅ丮 i-node¿¡¼ ÆÄ»ýµÈ °ÍÀÌ´Ù. ±×·¯¹Ç·Î 'cd ..'À» ÇßÀ» ¶§ »óÀ§µð·ºÅ丮·Î À̵¿ÇÏ´Â °ÍÀÌ´Ù. À̸¦ È®ÀÎÇϱâ À§Çؼ´Â ¸í·É¾î ÇÁ·ÒÇÁÆ®¿¡¼ 'ls- l'À» Ãĺ¸¸é ³ª¿À°Ô µÈ´Ù.