Ãâó : IBM http://www.ibm.com/developerworks/kr/library/l-linuxvirt/index.html
°¡»óÈ(Virtualization)´Â »ç¶÷µé¸¶´Ù ±× Àǹ̵µ ´Ù¾çÇÕ´Ï´Ù. ÇöÀç °¡»óÈÀÇ Å« ÃÊÁ¡Àº ¼¹ö °¡»óÈ ¶Ç´Â ´ÜÀÏ È£½ºÆ® ÄÄÇ»ÅÍ »ó¿¡ ¿©·¯ °³ÀÇ µ¶¸³ÀûÀÎ OS¸¦ È£½ºÆÃÇÏ´Â °Í¿¡ ¸ÂÃçÁ® ÀÖ½À´Ï´Ù. ÀÌ ±Û¿¡¼´Â °¡»óÈ °³³äÀ» ¼³¸íÇÏ°í, °¡»óȸ¦ ½ÇÇöÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýµéÀ» ³íÇÕ´Ï´Ù. ¶ÇÇÑ, ¸®´ª½º OS °¡»óÈ °°Àº ´Ù¾çÇÑ °¡»óÈ ±â¼úµéÀ» »ìÆ캾´Ï´Ù.
°¡»óȴ ƯÁ¤ÇÑ ÇüÅ·ΠÀÖ´Â °ÍÀ» ¶Ç ´Ù¸¥ ÇüÅ·Π³ªÅ¸³»´Â °ÍÀ» ¶æÇÑ´Ù. ÄÄÇ»Å͸¦ °¡»óÈ ÇÑ´Ù´Â ¶æÀº ´ÙÁß ÄÄÇ»ÅÍ ¶Ç´Â ¿ÏÀüÈ÷ ´Ù¸¥ ÄÄÇ»ÅÍ·Î º¸ÀÌ°Ô ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
¶ÇÇÑ, °¡»óÈ´Â ¸¹Àº ÄÄÇ»Å͵éÀ» ÇϳªÀÇ ÄÄÇ»ÅÍó·³ º¸ÀÌ°Ô ÇÏ´Â °ÍÀ» ÀǹÌÇÒ ¼öµµ ÀÖ´Ù.
ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î server aggregation ¶Ç´Â ±×¸®µå ÄÄÇ»ÆÃ(grid computing)À̶ó°í ÇÑ´Ù.
±×·³, °¡»óÈÀÇ ±â¿øºÎÅÍ »ìÆ캸µµ·Ï ÇÏÀÚ.
°¡»óÈÀÇ ¿ª»ç
°¡»óÈ´Â »õ·Î¿î ÁÖÁ¦°¡ ¾Æ´Ï¶ó ÀÌ¹Ì 40³â ÀüºÎÅÍ ½ÃÀ۵Ǿú´Ù. ÃÖÃÊÀÇ °¡»óÈ´Â IBM¢ç 7044, Massachusetts Institute of Technology (MIT)°¡ °³¹ßÇÑ IBM 704»óÀÇ Compatible Time Sharing System (CTSS), µð¸Çµå ÆäÀÌ¡(demand paging)°ú ¼öÆÛ¹ÙÀÌÀú È£Ãâ(supervisor calls)À» ¼±µµÇß´ø Manchester UniversityÀÇ Atlas ÇÁ·ÎÁ§Æ®(ÃÖÃÊÀÇ ¼öÆÛÄÄÇ»ÅÍ Áß Çϳª) µîÀÌ ÀÖ´Ù.
Çϵå¿þ¾î °¡»óÈ
IBMÀº System/360¢â Model 67 ¸ÞÀÎÇÁ·¹ÀÓÀ» °³¹ßÇϸé¼, 1960³â´ë¿¡ ÀÌ¹Ì °¡»óÈÀÇ Á߿伺À» ÀνÄÇß´Ù. Model 67Àº Virtual Machine Monitor(VMM)À» ÅëÇØ ¸ðµç Çϵå¿þ¾î ÀÎÅÍÆäÀ̽ºµéÀ» °¡»óÈ Çß´Ù. Ãʱâ ÄÄÇ»Æà ½ÃÀý¿¡, ÀÌ OS´Â ¼öÆÛ¹ÙÀÌÀú(supervisor)·Î ºÒ·È´Ù. ´Ù¸¥ OS»ó¿¡¼ OSµéÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» °âºñÇÏ¸é¼ ÇÏÀÌÆÛ¹ÙÀÌÀú(hypervisor)¶ó´Â À̸§µµ ¾ò°Ô µÇ¾ú´Ù. (ÀÌ ¿ë¾î´Â 1970³â´ë¿¡ ¸¸µé¾îÁ³´Ù.)
VMMÀº ±â¹Ý Çϵå¿þ¾î¿¡¼ Á÷Á¢ ½ÇÇàµÇ±âµµ ÇÏ°í, ´ÙÁßÀÇ °¡»ó ¸Ó½Å(VM)µéµµ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. °¢°¢ VMÀº °íÀ¯ÀÇ OS ÀνºÅϽº¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. Ãʱ⿡´Â ÀÌ°ÍÀ» CMS(¶Ç´Â Conversational Monitor System)¶ó°í ºÒ·¶´Ù. VMÀº °è¼Ó ¼ºÀåÇßÀ¸¸ç, ¿äÁò¿¡´Â System z9¢â ¸ÞÀÎÇÁ·¹ÀÓ¿¡¼ ½ÇÇàµÈ´Ù. System/360 °è¿ Á¦Ç°µé°úµµ ¹é¿öµå ȣȯÀÌ µÈ´Ù.
ÇÁ·Î¼¼¼ °¡»óÈ
¶Ç ´Ù¸¥ Ãʱ⠰¡»óÈ¿¡´Â P-code (¶Ç´Â °¡»ó ÄÚµå pseudo-code) ¸Ó½Åµµ ÀÖ´Ù. P-code´Â ¹°¸®Àû Çϵå¿þ¾î°¡ ¾Æ´Ñ °¡»ó ¸Ó½Å¿¡¼ ½ÇÇàµÇ´Â ¸Ó½Å ¾ð¾îÀÌ´Ù. P-code´Â 1970³â´ë ÃʹÝ, University of California, San Diego (UCSD) Pascal ½Ã½ºÅÛÀ¸·Î À¯¸íÇØÁø °ÍÀ¸·Î¼, Pascal ÇÁ·Î±×·¥À» P-code·Î ÄÄÆÄÀÏ ÇÑ ´ÙÀ½, P-code °¡»ó ¸Ó½Å¿¡¼ ½ÇÇàÇÑ´Ù. µû¶ó¼ P-code ÇÁ·Î±×·¥Àº ¶Ù¾î³ À̽ļºÀ» °®Ãß°Ô µÇ°í, P-code °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °÷ ¾îµð¿¡¼³ª ½ÇÇàµÈ´Ù.
- Java Virtual Machine (JVM)
Àڹ٢⠾ð¾î´Â °¡»ó ¸Ó½Å¿¡ P-code ¸ðµ¨À» µû¶ú´Ù. µû¶ó¼, JVMÀ¸·Î °£´ÜÈ÷ À̽ÄÇϱ⸸ Çصµ ¹«ÇÑÇÑ ¾ÆÅ°ÅØó¿¡ ÀÚ¹Ù ÇÁ·Î±×·¥µéÀ» Á¦°øÇÒ ¼ö ÀÖ¾ú´Ù.
C ¾ð¾îÀÇ Á¶»ó °ÝÀÎ 1969³â´ëÀÇ Basic Combined Programming Language (BCPL)¿¡µµ °°Àº °³³äÀÌ Àû¿ëµÇ¾ú´Ù. ÀÌ ¶§¿¡´Â ÄÄÆÄÀÏ·¯°¡ BCPL Äڵ带 O-code ¶ó°í ÇÏ´Â Áß°£ ¸Ó½Å ÄÚµå·Î ÄÄÆÄÀÏ ÇÑ´Ù. µÎ ¹ø° ´Ü°è·Î, O-code´Â ´ë»ó(target) ¸Ó½ÅÀÇ ³×ÀÌƼºê ¾ð¾î·Î ÄÄÆÄÀÏ µÇ¾ú´Ù. ÀÌ ¸ðµ¨Àº Çö´ëÀûÀÎ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ç¿ëµÇ¾î, »õ·Î¿î ´ë»ó ¾ÆÅ°ÅØó·Î ÄÄÆÄÀÏ·¯¸¦ À̽ÄÇÒ ¶§ À¯¿¬ÇÏ´Ù. (Áß°£ ¾ð¾î(intermediate language)¿¡ ÀÇÇØ ÇÁ·ÐÆ®¿£µå¿Í ¹é¿£µå¸¦ ±¸º°ÇÑ´Ù.)
¸í·É¾î °¡»óÈ
ÃÖ±ÙÀÇ °¡»óÈ Ãß¼¼´Â ¸í·É¾î °¡»óÈ(instruction set virtualization) ¶Ç´Â ¹ÙÀ̳ʸ® º¯È¯ÀÌ´Ù. ÀÌ ¸ðµ¨¿¡¼, °¡»ó(virtual) ¸í·É¾î´Â ±â¹Ý Çϵå¿þ¾îÀÇ ¹°¸®Àû ¸í·É¾î·Î µ¿ÀûÀ¸·Î º¯È¯µÈ´Ù. ½ÇÇàµÉ Äڵ尡 ÀÖÀ» °æ¿ì ÄÚµå ¼¼±×¸ÕÆ®¿¡ º¯È¯ÀÌ ÀÌ·ç¾îÁø´Ù. ºÐ±â(branch)°¡ ¹ß»ýÇϸé, »õ·Î¿î ÄÚµå ¼¼Æ®°¡ º¯È¯µÈ´Ù. ÀÌ°ÍÀº ¸Þ¸ð¸®¿¡¼ ºü¸¥ ·ÎÄà ij½Ã ¸Þ¸ð¸®·Î ¸í·É¾î ºí·ÏÀ» À̵¿Çϴ ij½Ì ¿¬»ê°ú ¸Å¿ì ºñ½ÁÇÏ´Ù.
ÀÌ ¸ðµ¨Àº ÃÖ±Ù Transmeta¿¡¼ ¼³°èµÈ Crusoe CPU¿¡¼ »ç¿ëµÇ¾ú´Ù. ÀÌ ¾ÆÅ°ÅØó´Â Code Morphing À̶ó´Â À̸§À¸·Î ¹ÙÀ̳ʸ® º¯È¯À» ±¸ÇöÇß´Ù. ºñ½ÁÇÑ ¿¹·Î ±ÇÇÑÀÌ ÀÖ´Â ¸í·É¾î¸¦ ã¾Æ¼ ¸®´ÙÀÌ·º¼Ç ÇÏ´Â Àüü °¡»óÈ(full virtualization) ¼Ö·ç¼Ç¿¡¼ »ç¿ëµÇ´Â ·±Å¸ÀÓ ÄÚµå ½ºÄ³´×ÀÌ´Ù. (ƯÁ¤ ÇÁ·Î¼¼½º ¸í·É¾î¿Í °ü·ÃµÈ À̽´¸¦ ÇØ°áÇÑ´Ù.)
°¡»óȸ¦ ´Ù·ç´Â ±Û¿¡¼ Multiple-Arcade Machine Emulator (MAME)À» ¾ð±ÞÇÏÁö ¾ÊÀ» ¼ö ¾ø´Ù. MAMEÀº À̸§¿¡¼ ÇÔÃàÇÏµí °ú°ÅÀÇ ¸¹Àº ¾ÆÄÉÀÌµå °ÔÀÓÀÇ ¸Ó½Å ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. ±×·¯ÇÑ °ÔÀÓ¿¡ »ç¿ëµÇ´Â ÇÁ·Î¼¼¼¸¦ °¡»óÈ ÇÏ´Â °Í ¿Ü¿¡µµ, »ç¿îµå¿Í ±×·¡ÇÈ Çϵå¿þ¾î¿Í ÄÁÆ®·ÑÀ» Æ÷ÇÔÇÏ¿© Àüü ¸Ó½ÅÀÌ °¡»óÈ µÈ´Ù. MAMEÀº ¾ÖÇø®ÄÉÀÌ¼Ç ±Ô¸ð°¡ Å©Áö¸¸ ¼Ò½º¸¦ Á¤µ¶ÇØ º¸´Â °Íµµ À¯ÀÍÇÏ´Ù.
°¡»óÈÀÇ À¯Çü
°¡»óÈ °°Àº °æ¿ì, ´Ü ÇÑ °¡Áö ¹æ¹ý¸¸ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. »ç½Ç, ´Ù¾çÇÑ ·¹º§ÀÇ Ãß»óÈ(abstraction)¸¦ ÅëÇؼ °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ¼½¼Ç¿¡¼´Â ¸®´ª½ºÀÇ °¡Àå ÀϹÝÀûÀÎ °¡»óÈ ¹æ½Ä ¼¼ °¡Áö¸¦ ¼Ò°³ÇÏ°í, À̵éÀÇ Àå´ÜÁ¡À» ºñ±³ÇØ º¼ °ÍÀÌ´Ù. °¡²û¾¿ °°Àº °¡»óÈ ¹æ½ÄÀ» ¼³¸íÇÏ´Â °æ¿ì¿¡µµ ´Ù¸¥ ¿ë¾î¸¦ »ç¿ëÇÑ´Ù. ÀÌ ±Û¿¡¼´Â °¡Àå ÀϹÝÀûÀÎ ¿ë¾î¸¦ »ç¿ëÇϵµ·Ï ÇÏ°Ú´Ù.
Çϵå¿þ¾î ¿¡¹Ä·¹À̼Ç(emulation)
°¡Àå º¹ÀâÇÑ °¡»óÈ´Â ±×¸² 1ó·³ Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡ ÀÇÇØ Á¦°øµÈ´Ù. ÀÌ ¹æ½Ä¿¡¼, Çϵå¿þ¾î VMÀº È£½ºÆ® ½Ã½ºÅÛ¿¡¼ »ý¼ºµÇ¾î ÇØ´ç Çϵå¿þ¾î¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù.
Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡¼ °¡Àå Èï¹Ì·Î¿î »ç¿ë¹ý Áß Çϳª´Â Æß¿þ¾î¿Í Çϵå¿þ¾îÀÇ °øµ¿ °³¹ß(co-development)ÀÌ´Ù. ½ÇÁ¦ Çϵå¿þ¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» ¶§±îÁö ±â´Ù¸®´Â ´ë½Å, Æß¿þ¾î °³¹ßÀÚµéÀº ´ë»ó Çϵå¿þ¾î VMÀ» »ç¿ëÇÏ¿© ½Ã¹Ä·¹ÀÌÆ® ÇÒ ¶§ ³ªÅ¸³ ½ÇÁ¦ Äڵ忡 ´ëÇØ À¯È¿¼º °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´Ù.
±×¸² 1. Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀº VMÀ» »ç¿ëÇÏ¿© ÇÊ¿äÇÑ Çϵå¿þ¾î¸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÑ´Ù.
¿©·¯ºÐµµ Àß ¾Ë°ÚÁö¸¸, Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀÇ °¡Àå Å« ¹®Á¦´Â ±Øµµ·Î ´À·ÁÁú ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¸ðµç ¸í·É¾îµéÀÌ ±â¹Ý Çϵå¿þ¾î¿¡ ½Ã¹Ä·¹ÀÌÆ® µÇ¾î¾ß Çϱ⠶§¹®¿¡, 100¹è Á¤µµ ´À·ÁÁö´Â °ÍÀº ´Ù¹Ý»çÀÌ´Ù. »çÀÌŬ Á¤È®¼º(cycle accuracy), ½Ã¹Ä·¹ÀÌÆ® µÈ CPU ÆÄÀÌÇÁ¶óÀÎ, ij½Ì ÀÛµ¿À» Æ÷ÇÔÇÑ ÇÏÀÌÆÄÀÌ(high-fidelity) ¿¡¹Ä·¹À̼ÇÀÇ °æ¿ì, ½ÇÁ¦ ¼Ó Â÷ÀÌ´Â 1000¹è³ª ´õ ´À·ÁÁú ¼öµµ ÀÖ´Ù.
Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀº ÀåÁ¡µµ ÀÖ´Ù. ¿¹¸¦ µé¾î, Çϵå¿þ¾î ¿¡¹Ä·¹À̼ÇÀ» »ç¿ëÇϸé, PowerPC¢ç¿ëÀÇ ¼öÁ¤µÇÁö ¾ÊÀº OS¸¦ ARM È£½ºÆ®¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ÇÁ·Î¼¼¼¸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÏ´Â ¿©·¯ °³ÀÇ °¡»ó ¸Ó½ÅµéÀ» ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.
Àüü °¡»óÈ(Full virtualization)
Àüü °¡»óÈ(³×ÀÌƼºê °¡»óÈ) ¶ÇÇÑ °¡»óÈ ¹æ½ÄÀÌ´Ù. ÀÌ ¸ðµ¨Àº °Ô½ºÆ®(guest) OSµé°ú ³×ÀÌƼºê Çϵå¿þ¾î »çÀ̸¦ ÁßÀç(mediate)ÇÏ´Â °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÑ´Ù. (±×¸² 2) "ÁßÀç(Mediate)"´Â ÇÙ½ÉÀûÀÎ ´Ü¾îÀÌ´Ù. VMMÀÌ °Ô½ºÆ® OS¿Í º£¾î Çϵå¿þ¾î »çÀ̸¦ ÁßÀçÇϱ⠶§¹®ÀÌ´Ù. º¸È£¸¦ ¹Þ°í Àִ ƯÁ¤ ¸í·É¾îµéÀº ÇÏÀÌÆÛ¹ÙÀÌÀú ³»¿¡¼ Æ®·¦ÇÎ(trap) ¹× ÇÚµéµÇ¾î¾ß ÇÑ´Ù. ±â¹Ý Çϵå¿þ¾î´Â OS°¡ ¼ÒÀ¯ÇÑ °ÍÀÌ ¾Æ´Ñ, ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ ÅëÇؼ °øÀ¯µÇ±â ¶§¹®ÀÌ´Ù.
±×¸² 2. Àüü °¡»óÈ´Â ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ »ç¿ëÇÏ¿© ±â¹Ý Çϵå¿þ¾î¸¦ °øÀ¯ÇÑ´Ù.
- ¿À·¡µÈ Çϵå¿þ¾îÀÇ ÇÏÀÌÆÛ¹ÙÀÌÀú
x86 °°Àº ÀϺΠ±¸Çü Çϵå¿þ¾î´Â °¡»óÈÀÇ Àüü ¸Þ¼Òµå¿¡ ´ëÇÑ ¹®Á¦µéÀ» ¸¸µç´Ù. ¿¹¸¦ µé¾î, VMM¿¡ ÀÇÇØ ÇÚµéµÇ¾î¾ß Çϴ ƯÁ¤ ¸í·É¾îµéÀº Æ®·¡ÇÎ ÇÏÁö ¾Ê´Â´Ù. µû¶ó¼, ÇÏÀÌÆÛ¹ÙÀÌÀú°¡ ÀÌ·¯ÇÑ ¹®Á¦¸¦ ó¸®ÇÏ·Á¸é ±ÇÇÑ ¸ðµå(privileged-mode) Äڵ带 µ¿ÀûÀ¸·Î ½ºÄ³´× ¹× Æ®·¡ÇÎ ÇØ¾ß ÇÑ´Ù.
Àüü °¡»óÈ´Â Çϵå¿þ¾î ¿¡¹Ä·¹ÀÌ¼Ç º¸´Ù´Â ºü¸£Áö¸¸, ÇÏÀÌÆÛ¹ÙÀÌÀú ÁßÀç ¶§¹®¿¡ ½ÇÁ¦ Çϵå¿þ¾î º¸´Ù´Â ¼º´ÉÀÌ ³·´Ù. Àüü °¡»óÈÀÇ °¡Àå Å« ÀåÁ¡Àº OS¸¦ ¼öÁ¤ÇÏÁö ¾Ê°í ½ÇÇàµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. À¯ÀÏÇÑ Á¦ÇÑ »çÇ×Àº OS°¡ ±â¹Ý Çϵå¿þ¾î(¿¹¸¦ µé¾î, PowerPC)¸¦ Áö¿øÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
Paravirtualization
ParavirtualizationÀº Àüü °¡»óÈ¿Í ¾à°£ À¯»çÇÑ ´ëÁßÀûÀÎ ±â¼úÀÌ´Ù. ÀÌ ¹æ½ÄÀº ±â¹Ý Çϵå¿þ¾î·ÎÀÇ °øÀ¯ ¾×¼¼½º¿¡ ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ »ç¿ëÇÏÁö¸¸, °¡»óÈ ÀÎ½Ä Äڵ带 OS·Î ÅëÇÕÇÑ´Ù. (±×¸² 3) ÀÌ ¹æ½ÄÀº ÀçÄÄÆÄÀÏÀ̳ª Æ®·¡ÇÎ(trapping)À» ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. OS ±× ÀÚü·Î °¡»óÈ ÇÁ·Î¼¼½º¿¡ Çù·ÂÇϱ⠶§¹®ÀÌ´Ù.
±×¸² 3. ParavirtualizationÀº ÇÁ·Î¼¼½º¸¦ °Ô½ºÆ® OS¿Í °øÀ¯ÇÑ´Ù.
¾Õ¼ ¾ð±ÞÇß´ø °Íó·³, ParavirtualizationÀº °Ô½ºÆ® OSµéÀÌ ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡ ¸Â°Ô ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀÌ ´ÜÁ¡ÀÌ´Ù. ÇÏÁö¸¸, ParavirtualizationÀº °¡»óÈ µÇÁö ¾ÊÀº ½Ã½ºÅÛ ¼º´É¿¡ °¡±î¿î ¼º´ÉÀ» º¸ÀδÙ. Àüü °¡»óÈ¿Í ¸¶Âù°¡Áö·Î, ¿©·¯ ´Ù¸¥ OSµéÀÌ µ¿½Ã¿¡ Áö¿øµÈ´Ù.
OS ·¹º§ °¡»óÈ
¸¶Áö¸· ±â¼úÀÎ OS ·¹º§ °¡»óÈ´Â Áö±Ý±îÁö ´Ù·ç¾î¿Ô´ø °Í°ú´Â ´Ù¸¥ ±â¼úÀ» »ç¿ëÇÑ´Ù. ÀÌ ±â¼úÀº ±×¸² 4ó·³ OS¿¡¼ ¼¹öµéÀ» °¡»óÈ ÇÑ´Ù. ÀÌ ¹æ½ÄÀº ÇϳªÀÇ OS¸¦ Áö¿øÇÏ°í, ¼¹öµéÀ» ºÐ¸®½ÃŲ´Ù.
±×¸² 4. OS ·¹º§ÀÇ °¡»óÈ´Â ¼¹öµéÀ» ºÐ¸®½ÃŲ´Ù.
OS ·¹º§ °¡»óÈ´Â OS Ä¿³ÎÀ» ¼öÁ¤ÇØ¾ß ÇÏÁö¸¸, ÀåÁ¡Àº ¼º´ÉÀÌ ¿ì¼öÇÏ´Ù´Â Á¡ÀÌ´Ù.
¿Ö °¡»óÈ°¡ Áß¿äÇÑ°¡?
¸®´ª½º¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â °¡»óÈ ¿É¼ÇµéÀ» º¸±â Àü¿¡, °¡»óÈÀÇ ÀåÁ¡ºÎÅÍ »ìÆ캸µµ·Ï ÇÏÀÚ.
ºñÁî´Ï½º °üÁ¡¿¡¼ º¼ ¶§, °¡»óȸ¦ »ç¿ëÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â ¸¹ÀÌ ÀÖ´Ù. ´ë°Ô´Â ¼¹ö ÅëÇÕ(server consolidation)ÀÌ ÁÖ¿äÇÑ ÀÌÀ¯ÀÌ´Ù. »ç¿ëµµ°¡ ³·Àº ¸¹Àº ½Ã½ºÅÛµéÀ» ÇϳªÀÇ ¼¹ö¿¡ °¡»óÈ ÇÒ ¼ö ÀÖ´Ù¸é, ÆÄ¿ö, °ø°£, ³Ã°¢, ¼¹ö °ü¸® µî¿¡¼ ¶Ñ·ÇÇÑ Àý°¨ È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù. ¼¹ö È°¿ëµµ¸¦ °áÁ¤ÇÏ´Â °ÍÀº ¾î·Æ±â ¶§¹®¿¡, °¡»óÈ ±â¼úÀº ¶óÀÌºê ¸¶À̱׷¹À̼Ç(Live migration)À̶ó´Â °ÍÀ» Áö¿øÇÑ´Ù. ¶óÀÌºê ¸¶À̱׷¹À̼ÇÀ¸·Î OS¿Í ¾ÖÇø®ÄÉÀ̼ǵéÀº »õ·Î¿î ¼¹ö·Î ¸¶À̱׷¹ÀÌ¼Ç µÇ¾î °¡¿ë Çϵå¿þ¾î¿¡ ´ëÇØ ·Îµå¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Ù.
°¡»óÈ´Â °³¹ßÀÚ¿¡°Ôµµ Áß¿äÇÏ´Ù. ¸®´ª½º Ä¿³ÎÀº ÇϳªÀÇ ¾îµå·¹½º °ø°£À» Â÷ÁöÇϴµ¥, Ä¿³Î ¶Ç´Â µå¶óÀ̹öÀÇ ¿À·ù°¡ Àüü OS Ãæµ¹À̶ó´Â °á°ú¸¦ °¡Á®¿Ã ¼öµµ ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. °¡»óȸ¦ ÅëÇؼ ¿©·¯ OSµéÀ» ½ÇÇàÇÒ ¼ö ÀÖ°í, ¹ö±×·Î ÀÎÇؼ ÇÑ OS°¡ °íÀåÀÌ ³ª´õ¶óµµ, ÇÏÀÌÆÛ¹ÙÀÌÀú¿Í ´Ù¸¥ OSµéÀº °è¼ÓÇؼ ½ÇÇàµÉ ¼ö ÀÖ´Ù. À̷μ »ç¿ëÀÚ °ø°£(user-space) ¾ÖÇø®ÄÉÀ̼ÇÀ» µð¹ö±ë ÇÏ´Â °Í°ú ºñ½ÁÇÑ Ä¿³Î µð¹ö±ëÀÌ °¡´ÉÇØÁø´Ù.
¸®´ª½º °ü·Ã °¡»óÈ ÇÁ·ÎÁ§Æ®
Ç¥ 1Àº ¸®´ª½º¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â °¡»óÈ ¹æ½Äµé·Î¼ ÁÖ·Î ¿ÀÇ ¼Ò½º ¼Ö·ç¼Ç¿¡ ÃÊÁ¡À» ¸ÂÃß¾ú´Ù.
Ç¥1. ¸®´ª½º °ü·Ã °¡»óÈ ÇÁ·ÎÁ§Æ®
±âŸ ¼Ö·ç¼Ç¿¡ ´ëÇÑ ³»¿ëÀº Âü°íÀÚ·á ¼½¼ÇÀ» ÂüÁ¶Ç϶ó.
Bochs (¿¡¹Ä·¹À̼Ç)
Bochs´Â x86 ÄÄÇ»ÅÍ ½Ã¹Ä·¹ÀÌÅͷμ À̽ļº ÀÖ°í, x86, PowerPC, Alpha, SPARC, MIPS¸¦ Æ÷ÇÔÇÑ ´Ù¾çÇÑ Ç÷§Æû¿¡¼ ½ÇÇàµÈ´Ù. BochsÀÇ ÀåÁ¡Àº ÀÌ°ÍÀÌ ÇÁ·Î¼¼¼¸¸ ½Ã¹Ä·¹ÀÌÆ® ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, Å°º¸µå, ¸¶¿ì½º, ºñµð¿À ±×·¡ÇÈ Çϵå¿þ¾î, ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º Ä«µå(NIC) ÀåÄ¡µé °°Àº ÁÖº¯ ±â±â¸¦ Æ÷ÇÔÇÏ¿© Àüü ÄÄÇ»Å͸¦ ½Ã¹Ä·¹ÀÌÆ® ÇÑ´Ù´Â Á¡ÀÌ´Ù.
Bochs´Â ±¸ Intel¢ç 386À¸·Î¼ ¼³Á¤µÇ°Å³ª, 486, Pentium, Pentium Pro, 64-bit °è¿ÀÇ Èıâ ÇÁ·Î¼¼¼·Î¼ ¼³Á¤µÉ ¼ö ÀÖ´Ù. ½ÉÁö¾î´Â MMX¿Í 3DNow °°Àº ±×·¡ÇÈ ¸í·É¾îµéµµ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù.
Bochs ¿¡¹Ä·¹ÀÌÅ͸¦ »ç¿ëÇÏ¿©, ¸®´ª½º¿¡¼ ¸®´ª½º, Microsoft¢ç Windows¢ç 95/98/NT/2000 (±×¸®°í ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼Ç), Berkeley Software Distribution (BSD) OS(FreeBSD, OpenBSD µî)À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
- ¶óÀ̺귯¸® ·¹º§( Library-level) °¡»óÈ
ÀÌ ±Û¿¡¼´Â ´Ù·çÁö ¾ÊÁö¸¸, ¶óÀ̺귯¸®¸¦ ÅëÇØ OSÀÇ ºÎºÐµéÀ» ¿¡¹Ä·¹ÀÌÆ® ÇÏ´Â °¡»óÈ ¹æ½ÄÀº ¶óÀ̺귯¸® ·¹º§ °¡»óÈÀÌ´Ù. Wine (a partial Win32 API for Linux)°ú LxRun (a partial Linux API for Solaris)ÀÌ ¶óÀ̺귯¸® ·¹º§ °¡»óÈ¿¡ ¼ÓÇÑ´Ù.
QEMU (¿¡¹Ä·¹À̼Ç)
QEMU´Â Bochs¿Í ºñ½ÁÇÑ ¾Ö¹Ä·¹ÀÌÅÍÀÌÁö¸¸, ¸î °¡Áö Â÷ÀÌ°¡ ÀÖ´Ù. QEMU´Â µÎ °³ÀÇ ¿¬»ê ¸ðµå¸¦ Áö¿øÇÑ´Ù. ù ¹ø°´Â Full System Emulation ¸ðµåÀÌ´Ù. ÀÌ ¸ðµå´Â ÇÁ·Î¼¼¼¿Í ÁÖº¯ ±â±â¸¦ Æ÷ÇÔÇÏ¿© Àüü °³Àοë ÄÄÇ»ÅÍ(PC)¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÑ´Ù´Â Á¡¿¡¼ Bochs¿Í ºñ½ÁÇÏ´Ù. ÀÌ ¸ðµå´Â x86, x86_64, ARM, SPARC, PowerPC, MIPS °°Àº ¸¹Àº ÇÁ·Î¼¼¼ ¾ÆÅ°ÅØóµéÀ» ¿¡¹Ä·¹ÀÌÆ®ÇÑ´Ù. µ¿Àû º¯È¯À» »ç¿ëÇϱ⠶§¹®¿¡ ¼Óµµµµ ºü¸£´Ù. ÀÌ ¸ðµå¸¦ »ç¿ëÇϸé Windows OS(XP Æ÷ÇÔ)¿Í Linux on Linux, Solaris, FreeBSD¸¦ ¿¡¹Ä·¹ÀÌÆ® ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ¸¹Àº OS °áÇÕ ¿ª½Ã Áö¿øµÈ´Ù. Âü°íÀÚ·á).
QEMU´Â User Mode Emulation ¸ðµåµµ Áö¿øÇÑ´Ù. ¸®´ª½º¿¡¼¸¸ È£½ºÆà µÉ ¼ö ÀÖ´Â ÀÌ ¸ðµå¿¡¼, ´Ù¸¥ ¾ÆÅ°ÅØó¿ë ¹ÙÀ̳ʸ®µµ ½ÃÀÛµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÌ°ÍÀº MIPS ¾ÆÅ°ÅØó¿ëÀ¸·Î ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®°¡ x86¿¡¼ ½ÇÇàµÇ´Â ¸®´ª½º¿¡¼µµ ½ÇÇàµÉ ¼ö ÀÖ´Ù. ÀÌ ¸ðµå¿¡¼ Áö¿øµÇ´Â ±âŸ ¾ÆÅ°ÅØó·Î´Â ARM, SPARC, PowerPC µîÀÌ ÀÖ°í, ´õ ¸¹Àº °ÍµéÀÌ °³¹ß ÁßÀÌ´Ù.
VMware (Àüü °¡»óÈ)
VMware´Â Àüü °¡»óÈ¿ë »ó¿ë ¼Ö·ç¼ÇÀÌ´Ù. ÇÏÀÌÆÛ¹ÙÀÌÀú´Â Ãß»ó ·¹À̾î(abstraction layer)·Î¼ °Ô½ºÆ® OS¿Í º£¾î Çϵå¿þ¾î »çÀÌ¿¡ ³õÀδÙ. ÀÌ·¯ÇÑ Ãß»ó ·¹À̾¼´Â ´Ù¸¥ °Ô½ºÆ® OS¸¦ ¾ËÁö ¸øÇصµ, ¾î¶² OS¶óµµ Çϵå¿þ¾î »ó¿¡¼ ½ÇÇàµÉ ¼ö ÀÖ´Ù.
VMware´Â ¶ÇÇÑ °¡¿ë I/O Çϵå¿þ¾î¸¦ °¡»óÈ ÇÏ°í, °í¼º´É ÀåÄ¡¿ë µå¶óÀ̹öµéÀ» ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡ ¹èÄ¡ÇÑ´Ù.
Àüü °¡»óÈ µÈ ȯ°æÀº ÆÄÀϷμ ÀúÀåµÇ±â ¶§¹®¿¡, Àüü ½Ã½ºÅÛ(°Ô½ºÆ® OS, VM, °¡»ó Çϵå¿þ¾î)´Â ·Îµå ¹ë·±½ÌÀ» À§ÇØ »õ·Î¿î È£½ºÆ®·Î ½±°í ºü¸£°Ô ¸¶À̱׷¹ÀÌ¼Ç µÉ ¼ö ÀÖ´Ù.
z/VM (Àüü °¡»óÈ)
IBM System z¢â´Â »õ·Î¿î ºê·£µå À̸§ÀÌÁö¸¸, 1960³âºÎÅÍ À¯±¸ÇÑ ÀüÅëÀ» °®°í ÀÖ´Ù. System/360Àº 1965³â¿¡ °¡»ó ¸Ó½ÅµéÀ» »ç¿ëÇÏ´Â °¡»óȸ¦ Áö¿øÇß´Ù. System z´Â ´õ ¿À·¡µÈ System/360 °è¿°ú ¹é¿öµå ȣȯ¼ºµµ °®°í ÀÖ´Ù.
z/VM¢çÀº System z¿ë OS ÇÏÀÌÆÛ¹ÙÀÌÀúÀÌ´Ù. Äھ´Â Control Program (CP)ÀÌ Àִµ¥, ÀÌ°ÍÀº ¸®´ª½º¸¦ Æ÷ÇÔÇÏ¿© °Ô½ºÆ® OS¿¡ ¹°¸®Àû ¸®¼Ò½ºµéÀÇ °¡»óȸ¦ Á¦°øÇÑ´Ù. (±×¸² 5) ÀÌ°ÍÀº ¿©·¯ ÇÁ·Î¼¼¼µé°ú ´Ù¸¥ ¸®¼Ò½ºµéÀÌ ¸¹Àº °Ô½ºÆ® OSµéÀ» À§ÇØ °¡»óÈ µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
±×¸² 5. z/VMÀ» »ç¿ëÇÑ OS ·¹º§ °¡»óÈ
z/VMÀº ¶ÇÇÑ ¼·Î Åë½ÅÀ» ¿øÇÏ´Â °Ô½ºÆ® OSµéÀ» À§ÇØ °¡»óÀ¸·Î °Ô½ºÆ® ·ÎÄà ¿µ¿ª ³×Æ®¿öÅ©(LAN)À» ¿¡¹Ä·¹ÀÌÆ® ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ÇÏÀÌÆÛ¹ÙÀÌÀú¿¡¼ ¿ÏÀüÈ÷ ¿¡¹Ä·¹ÀÌÆ® µÇ¸ç, ¸Å¿ì ¾ÈÀüÇÏ´Ù.
Xen (paravirtualization)
XenÀº XenSourceÀÇ OS ·¹º§ Paravirtualization¿ë ¹«·á ¿ÀÇ ¼Ò½º ¼Ö·ç¼ÇÀÌ´Ù. Paravirtualization¿¡¼´Â ÇÏÀÌÆÛ¹ÙÀÌÀú¿Í OS°¡ °¡»óÈ¿¡¼ Çù¾÷ÇÏ°í, OS´Â º¯ÇØ¾ß ÇÏÁö¸¸, ¼º´ÉÀº ¿ì¼öÇÏ´Ù.
XenÀº Çù¾÷(°Ô½ºÆ® OS¸¦ ¼öÁ¤ÇØ¾ß ÇÑ´Ù) ÀÌ ÇÊ¿äÇÏ°í, ÆÐÄ¡ µÈ OSµé¸¸ÀÌ XenÀ» ÅëÇؼ °¡»óÈ µÉ ¼ö ÀÖ´Ù. Àüü °¡»óÈ º¸´Ù ´õ ³ªÀº ¼º´ÉÀ» º¸À̱⠶§¹®¿¡, ±× ÀÚü°¡ ¿ÀÇ ¼Ò½ºÀÎ ¸®´ª½º °üÁ¡¿¡¼ º¼ ¶§, ÇÕ¸®ÀûÀÎ ÀýÃæ¾ÈÀ¸·Î º¼ ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ´Ù¸¥ ºñ ¿ÀÇ ¼Ò½º OSÀÇ Áö¿ø °°Àº ÀüüÀûÀÎ Áö¿ø °üÁ¡¿¡¼ º¼ ¶§´Â ÀÌ°ÍÀÌ ´ÜÁ¡ÀÌ µÉ ¼ö ÀÖ´Ù.
Xen¿¡¼ Windows¸¦ °Ô½ºÆ®·Î¼ ½ÇÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÏÁö¸¸, Intel Vanderpool ¶Ç´Â AMD Pacifica¸¦ ½ÇÇàÇÏ´Â ½Ã½ºÅÛ¿¡¼¸¸ °¡´ÉÇÏ´Ù. XenÀ» Áö¿øÇÏ´Â ´Ù¸¥ OS·Î´Â Minix, Plan 9, NetBSD, FreeBSD, OpenSolaris µîÀÌ ÀÖ´Ù.
User-mode Linux (paravirtualization)
User-mode Linux (UML)´Â ¸®´ª½º OS°¡ »ç¿ëÀÚ °ø°£¿¡¼ ´Ù¸¥ ¸®´ª½º OS¸¦ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. °¢°¢ÀÇ °Ô½ºÆ® ¸®´ª½º OS´Â È£½ºÆ® OSÀÇ ÇÁ·Î¼¼½º ¾È¿¡ Á¸ÀçÇÑ´Ù. (±×¸² 6) ÀÌ°ÍÀº ¿©·¯ ¸®´ª½º Ä¿³ÎµéÀÌ(°íÀ¯ÀÇ Á¦ÈÞ »ç¿ëÀÚ °ø°£ Æ÷ÇÔ) ÇϳªÀÇ ¸®´ª½º Ä¿³Î Á¤È² ³»¿¡¼ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
±×¸² 6. User-mode Linux¿¡¼ÀÇ ¸®´ª½º È£½ºÆÃ
2.6 ¸®´ª½º Ä¿³ÎºÎÅÍ, UMLÀº ¸ÞÀÎ Ä¿³Î Æ®¸®¿¡ Á¸ÀçÇÏÁö¸¸, »ç¿ëÇÒ ¼ö ÀÖÀ¸·Á¸é ÀçÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ º¯°æ »çÇ×µéÀº ÀåÄ¡ °¡»óȸ¦ Á¦°øÇÏ¿© °Ô½ºÆ® OSµéÀÌ ºí·Ï ÀåÄ¡µé(Ç÷ÎÇÇ, CD-ROM, ÆÄÀÏ ½Ã½ºÅÛ) °°Àº ¹°¸®Àû ÀåÄ¡µéÀ» °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
°Ô½ºÆ® Ä¿³ÎµéÀº ¾ÖÇø®ÄÉÀÌ¼Ç °ø°£¿¡¼ ½ÇÇàµÇ±â ¶§¹®¿¡ Ưº°ÇÏ°Ô ÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù. °á±¹ È£½ºÆ® Ä¿³Î(Çϵå¿þ¾î)°ú °Ô½ºÆ® Ä¿³Î(È£½ºÆ® Ä¿³ÎÀÇ »ç¿ëÀÚ °ø°£¿¡¼ ½ÇÇàµÊ)ÀÌ »ý±â°Ô µÇ¾ú´Ù. ÀÌ·¯ÇÑ Ä¿³ÎµéÀº ½ÉÁö¾î ÁßøµÉ ¼ö ÀÖ°í, °Ô½ºÆ® Ä¿³ÎÀÌ È£½ºÆ® Ä¿³Î¿¡¼ ½ÇÇàµÇ°í ÀÖ´Â ¶Ç ´Ù¸¥ °Ô½ºÆ® Ä¿³Î¿¡¼ ½ÇÇàµÉ ¼ö ÀÖ´Ù.
Linux-VServer (OS ·¹º§ÀÇ °¡»óÈ)
Linux-VServer´Â OS ·¹º§ °¡»óȸ¦ À§ÇÑ ¼Ö·ç¼ÇÀÌ´Ù. Linux-VServer´Â ¸®´ª½º Ä¿³ÎÀ» °¡»óÈ ÇÏ¿© ¿©·¯ »ç¿ëÀÚ °ø°£ ȯ°æµé, Virtual Private Servers (VPS)°¡ ¼·Î¸¦ ÀνÄÇÏÁö ¸øÇÑ Ã¤ µ¶¸³ÀûÀ¸·Î ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. Linux-VServer´Â ¸®´ª½º Ä¿³Î·ÎÀÇ ¼öÁ¤À» ÅëÇؼ »ç¿ëÀÚ °ø°£ °í¸³È¸¦ ÀÌ·èÇÑ´Ù.
»ç¿ëÀÚ °ø°£ÀÇ ºÐ¸®´Â ÄÜÅؽºÆ®ÀÇ °³³äÀ¸·Î ½ÃÀÛÇÑ´Ù. ÄÜÅؽºÆ®(context)´Â VPSÀÇ ÇÁ·Î¼¼½º¿ë ÄÁÅ×À̳ÊÀ̱⠶§¹®¿¡ ps °°Àº ÅøµéÀº VPSÀÇ ÇÁ·Î¼¼½º¿¡ ´ëÇؼ¸¸ ¾È´Ù. Ãʱ⠺ÎÆà µ¿¾È, Ä¿³ÎÀº µðÆúÆ® ÄÜÅؽºÆ®¸¦ Á¤ÀÇÇÑ´Ù. ½ºÆåÅ×ÀÌÅÍ(spectator) ÄÜÅؽºÆ® ¿ª½Ã °ü¸®¿ëÀ¸·Î »ç¿ëµÈ´Ù. (½ÇÇàµÇ´Â ¸ðµç ÇÁ·Î¼¼½ºµéÀ» °¨½ÃÇÑ´Ù.) ¿©·¯ºÐµµ ¾Ë´Ù½ÃÇÇ ÀÌ·¯ÇÑ °¡»óÈ ¹æ½ÄÀ» Áö¿øÇÏ·Á¸é Ä¿³Î°ú ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶µéÀÌ ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù.
Linux-VServer´Â °¢ VPS¿ë ·çÆ® µð·ºÅ丮¸¦ ºÐ¸®½ÃÅ°±â À§ÇØ chrootÀ» »ç¿ëÇÑ´Ù. chrootÀº »õ·Î¿î ·çÆ® µð·ºÅ丮°¡ ÁöÁ¤µÇµµ·Ï ÇÏÁö¸¸, VPS´Â ÀÌ°ÍÀÇ °í¸³µÈ ·çÆ® µð·ºÅ丮¸¦ ºÎ¸ð µð·ºÅ丮·Î »ç¶óÁöÁö ¾Ê°Ô ÇÏ·Á¸é Ãß°¡ ±â´É(Chroot-Barrier)ÀÌ ÇÊ¿äÇÏ´Ù. °í¸³µÈ ·çÆ® µð·ºÅ丮¿¡¼, °¢ VPS´Â °íÀ¯ÀÇ »ç¿ëÀÚ ¸®½ºÆ®¿Í ·çÆ® Æнº¿öµå¸¦ °®´Â´Ù.
Linux-VServer´Â 2.4¿Í 2.6 Ä¿³Î¿¡¼ Áö¿øµÇ°í x86, x86-64, SPARC, MIPS, ARM, PowerPC¸¦ Æ÷ÇÔÇÑ ¸¹Àº Ç÷§Æû¿¡¼ ½ÇÇàµÈ´Ù.
OpenVZ (OS ·¹º§ÀÇ °¡»óÈ)
OpenVZ´Â Linux-VServer¿Í °°Àº ¶Ç ´Ù¸¥ OS ·¹º§ÀÇ °¡»óÈ ¼Ö·ç¼ÇÀÌÁö¸¸, ¸î °¡Áö Àç¹ÌÀÖ´Â Â÷ÀÌ°¡ ÀÖ´Ù. OpenVZ´Â °í¸³µÈ »ç¿ëÀÚ °ø°£ VPS¿Í °ü¸®¿ë »ç¿ëÀÚ ÅøÀ» Áö¿øÇÏ´Â °¡»óÈ ÀνÄ(¼öÁ¤µÈ) Ä¿³ÎÀÌ´Ù. ¿¹¸¦ µé¾î, ¸í·É¾î·Î »õ·Î¿î VPS¸¦ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù.
- Listing 1. ¸í·É¾î·Î VPS »ý¼ºÇϱâ
$ vzctl create 42 --ostemplate fedora-core-4
Creating VPS private area
VPS private area was created
$ vzctl start 42
Starting VPS ...
VPS is mounted
vzlist ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÇöÀç »ý¼ºµÈ VPS¸¦ ¸®½ºÆà ÇÒ ¼ö ÀÖÀ¸¸ç, Ç¥ÁØ ¸®´ª½º ps ¸í·É¾î¿Í ºñ½ÁÇÑ ¹æ½Ä ÀÛµ¿ÇÑ´Ù.
ÇÁ·Î¼¼½º¸¦ ½ºÄÉÁÙ¸µ Çϱâ À§ÇØ, OpenVZ¿¡´Â µÎ ·¹º§ÀÇ CPU ½ºÄÉÁÙ·¯°¡ Æ÷ÇԵȴÙ. ¿ì¼±, ½ºÄÉÁÙ·¯´Â ¾î¶² VPS°¡ CPU¸¦ Â÷ÁöÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. ÀÌ°ÍÀÌ °áÁ¤µÈ ÈÄ¿¡ µÎ ¹ø° ½ºÄÉÁÙ·¯´Â ÇÁ·Î¼¼½º¸¦ ¼±ÅÃÇÏ¿© Ç¥ÁØ ¸®´ª½º ¼Ó¼ºÀ» ½ÇÇàÇÑ´Ù.
OpenVZ¿¡´Â ¶ÇÇÑ beancounters¶ó´Â °Íµµ Æ÷ÇԵȴÙ. beancounter´Â ÁÖ¾îÁø VPS¿¡ ´ëÇÑ ¸®¼Ò½º ºÐ¹è¸¦ Á¤ÀÇÇÏ´Â ¸¹Àº ¸Å°³º¯¼öµé·Î ±¸¼ºµÈ´Ù. ÀÌ°ÍÀº VPS¿¡ ´ëÇÑ Á¦¾î ·¹º§À» Á¦°øÇϸé¼, ¾ó¸¶³ª ¸¸Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö, ¾ó¸¶³ª ¸¹Àº ÀÎÅÍÇÁ·Î¼¼½º(interprocess) Åë½Å(IPC) °´Ã¼µéÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö µîÀ» Á¤ÀÇÇÑ´Ù.
OpenVZÀÇ À¯ÀÏÇÑ ±â´ÉÀº ÇϳªÀÇ ¹°¸®Àû ¼¹ö¿¡¼ ¶Ç ´Ù¸¥ ¼¹ö·Î üũÆ÷ÀÎÆ®(checkpoint) ¹× ¸¶À̱׷¹ÀÌ¼Ç ÇÏ´Â ±â´ÉÀÌ´Ù. üũÆ÷ÀÎÆÃ(Checkpointing)Àº ½ÇÇàÇÏ°í ÀÖ´Â VPSÀÇ »óÅ°¡ µ¿°áµÇ¾î ÆÄÀÏ·Î ÀúÀåµÈ´Ù´Â ÀǹÌÀÌ´Ù. ÀÌ ÆÄÀÏÀº ºä ¼¹ö·Î ¸¶À̱׷¹ÀÌ¼Ç µÉ ¼ö ÀÖ°í, VPS¸¦ ¿Â¶óÀÎÀ¸·Î ºÒ·¯¿Ã ¶§ º¹¿øµÈ´Ù. OpenVZ´Â x86, x86-64, PowerPC µî ¸¹Àº Çϵå¿þ¾î ¾ÆÅ°ÅØó¸¦ Áö¿øÇÑ´Ù.
Àüü °¡»óÈ¿Í Paravirtualization¿¡ ´ëÇÑ Çϵå¿þ¾î Áö¿ø
IA-32 (x86) ¾ÆÅ°ÅØó´Â °¡»óÈ¿Í °ü·ÃÇÏ¿© ¸î °¡Áö ¹®Á¦¸¦ ¸¸µé¾î ³½´Ù. ƯÁ¤ ±ÇÇÑ ¸ðµå ¸í·É¾î´Â Æ®·¡ÇÎÀ» ¼öÇàÇÏÁö ¾Ê°í, ±× ¸ðµå¿¡ ±â¹ÝÇÑ ´Ù¸¥ °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¿¹¸¦ µé¾î, x86 STR ¸í·É¾î´Â º¸¾È »óŸ¦ °Ë»öÇÏÁö¸¸, ¸®ÅÏµÈ °ªÀº ƯÁ¤ ¿äûÀÚÀÇ ±ÇÇÑ ·¹º§¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù. ÀÌ´Â ´Ù¸¥ OSµéÀ» ´Ù¸¥ ·¹º§·Î °¡»óÈ ÇÒ ¶§ ¹®Á¦¸¦ ¸¸µç´Ù. ¿¹¸¦ µé¾î, x86Àº ³× °³ÀÇ º¸È£ ¸µ(protection ring)À» Áö¿øÇϴµ¥, ¿©±â¿¡¼ ·¹º§ 0(°¡Àå ³ôÀº ±ÇÇÑ)Àº ÀϹÝÀûÀ¸·Î OS¸¦ ½ÇÇàÇÏ°í, ·¹º§ 1°ú 2´Â OS ¼ºñ½ºµéÀ» Áö¿øÇÏ°í, ·¹º§ 3(°¡Àå ³·Àº ·¹º§)Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» Áö¿øÇÑ´Ù. Çϵå¿þ¾î º¥´õµéÀº ÀÌ·¯ÇÑ ´ÜÁ¡µéÀ» ÀνÄÇÏ°í, °¡»óȸ¦ Áö¿øÇÏ°í °¡¼ÓÈ ÇÒ ¼ö ÀÖ´Â »õ·Î¿î µðÀÚÀÎÀ» ¸¸µé¾î ³Â´Ù.
IntelÀº x86 (VT-x)°ú Itanium¢ç (VT-i) ¾ÆÅ°ÅØó¿ë ÇÏÀÌÆÛ¹ÙÀÌÀú¸¦ Áö¿øÇÒ »õ·Î¿î °¡»óÈ ±â¼úÀ» ¸¸µé°í ÀÖ´Ù. VT-x´Â µÎ °³ÀÇ »õ·Î¿î ÇüÅÂÀÇ ¿¬»êÀ» Áö¿øÇϴµ¥, Çϳª´Â VMM (root)À» À§ÇÑ °ÍÀÌ°í, Çϳª´Â °Ô½ºÆ® OS(non-root)¸¦ À§ÇÑ °ÍÀÌ´Ù. ·çÆ® ÆûÀº ¿ÏÀüÇÑ ±ÇÇÑÀ» °®Áö¸¸, ºñ ·çÆ®(non-root) ÆûÀº ±ÇÇÑÀÌ ¾ø´Ù. (RING 0¿¡¼µµ ±ÇÇÑÀÌ ¾ø´Ù.) ÀÌ ¾ÆÅ°ÅØó´Â ¶ÇÇÑ VM(°Ô½ºÆ® OS)ÀÌ VMMÀ¸·Î Á¾·áÇÏ¿© ÇÁ·Î¼¼¼ »óŸ¦ ÀúÀåÇϵµ·Ï ÇÏ´Â ¸í·É¾î¸¦ Á¤ÀÇÇÒ ¶§ À¯¿¬¼ºµµ ¹ßÈÖÇϸç, ÀÌ¿¡ ´ëÇÑ Ãß°¡ ±â´É ¶ÇÇÑ Á¦°øÇÑ´Ù. Âü°íÀÚ·á ¼½¼Ç¿¡¼ È®ÀÎÇϱ⠹ٶõ´Ù.
AMD ¿ª½Ã Pacifica¶ó°í ÇÏ´Â Çϵå¿þ¾î¸¦ Áö¿øÇÏ´Â °¡»óÈ ±â¼úÀ» ¸¸µé°í ÀÖ´Ù. ¹«¾ùº¸´Ùµµ, Pacifica´Â Ưº°ÇÑ ¸í·É¾î ½ÇÇà ½Ã ÀúÀåµÈ °Ô½ºÆ® OS¿¡ ´ëÇÑ ÄÁÆ®·Ñ ºí·ÏÀ» °ü¸®ÇÑ´Ù. VMRUN ¸í·É¾î´Â ¶ÇÇÑ °¡»ó ¸Ó½Å(±×¸®°í °ü·Ã °Ô½ºÆ® OS)°¡ VMMÀÌ ÄÁÆ®·ÑÀ» ´Ù½Ã ¾òÀ» ¶§±îÁö ½ÇÇàµÇµµ·Ï ÇÑ´Ù. (ÀÌ°Í ¿ª½Ã ¼³Á¤ °¡´ÉÇÏ´Ù.) VMMÀº °¢ °Ô½ºÆ®µé¿¡ ´ëÇÑ ±ÇÇÑÀ» Ä¿½ºÅ͸¶ÀÌ¡ ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ, Pacifica´Â È£½ºÆ®¿Í °Ô½ºÆ® ¸Þ¸ð¸® °ü¸® ´ÜÀ§(MMU) Å×À̺í·Î ¾îµå·¹½º º¯È¯À» ¼öÁ¤Çß´Ù.
ÀÌ·¯ÇÑ »õ·Î¿î ±â¼úµéÀº ÀÌ ±Û¿¡¼ ¾ð±ÞÇÑ Xen, VMware, User-mode Linux µî ¸¹Àº °¡»óÈ ±â¼úµé¿¡ ÀÇÇؼ »ç¿ëµÉ ¼ö ÀÖ´Ù.
Linux KVM (Kernel Virtual Machine)
°¡Àå ÃÖ±ÙÀÇ ¸®´ª½º ¼Ò½ÄÀº KVMÀÌ ¸®´ª½º Ä¿³Î(2.6.20)·Î ÅëÇյǾú´Ù´Â ³»¿ëÀÏ °ÍÀÌ´Ù. KVMÀº ¸®´ª½º Ä¿³ÎÀ» Ä¿³Î ¸ðµâÀ» »ç¿ëÇÏ´Â ÇÏÀÌÆÛ¹ÙÀÌÀú·Î ÀüȯÇÑ´Ù´Â Á¡¿¡¼ Àüü °¡»óÈ ¼Ö·ç¼ÇÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸ðµâÀº ´Ù¸¥ °Ô½ºÆ® OSµéÀÌ È£½ºÆ® ¸®´ª½º Ä¿³ÎÀÇ »ç¿ëÀÚ °ø°£¿¡¼ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. (±×¸² 7) Ä¿³ÎÀÇ KVM ¸ðµâÀº /dev/kvm ij¸¯ÅÍ ÀåÄ¡¸¦ ÅëÇØ °¡»óÈµÈ Çϵå¿þ¾î¸¦ ³ëÃâÇÑ´Ù. °Ô½ºÆ® OS´Â PC Çϵå¿þ¾î ¿¡¹Ä·¹À̼ǿ¡ ´ëÇÑ ¼öÁ¤µÈ QEMU ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ¿© KVM ¸ðµâ°ú ÀÎÅÍÆäÀÌ½Ì ÇÑ´Ù.
±×¸² 7. Kernel Virtual Machine (KVM)À» ÀÌ¿ëÇÑ °¡»óÈ
KVM ¸ðµâÀº »õ·Î¿î ½ÇÇà ¸ðµå¸¦ Ä¿³Î¿¡ µµÀÔÇß´Ù. ¹Ù´Ò¶ó Ä¿³ÎÀÌ Ä¿³Î ¸ðµå¿Í »ç¿ëÀÚ ¸ðµå¸¦ Áö¿øÇÏ´Â °÷¿¡, KVMÀº °Ô½ºÆ® ¸ðµå¸¦ µµÀÔÇÑ´Ù. °Ô½ºÆ® ¸ðµå´Â ¸ðµç ºñ I/O °Ô½ºÆ® Äڵ带 ½ÇÇàÇϴµ¥ »ç¿ëµÇ°í, ¿©±â¿¡¼ ÀÏ¹Ý »ç¿ëÀÚ ¸ðµå´Â °Ô½ºÆ®¿ë I/O¸¦ Áö¿øÇÑ´Ù.
KVMÀ» µµÀÔÇß´Ù´Â °ÍÀº ¸®´ª½º¿¡ ÀÖ¾î¼ Áß¿äÇÑ Áøº¸ÀÌ´Ù. ù ¹ø° °¡»óÈ ±â¼úÀÌ ÁÖ·ù ¸®´ª½º Ä¿³ÎÀÇ ÀϺΰ¡ µÇ¾úÀ½À» ½Ã»çÇϱ⠶§¹®ÀÌ´Ù. ÀÌ°ÍÀº 2.6.20 Æ®¸®¿¡ Á¸ÀçÇÏÁö¸¸, 2.6.19 Ä¿³Î¿ë Ä¿³Î ¸ðµâ·Î¼ »ç¿ëµÉ ¼ö ÀÖ´Ù. °¡»óȸ¦ Áö¿øÇÏ´Â Çϵå¿þ¾î¿¡¼ ½ÇÇàµÉ ¶§, Linux (32-bit¿Í 64-bit)¿Í Windows (32-bit) °Ô½ºÆ®°¡ Áö¿øµÈ´Ù. KVM¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Âü°íÀÚ·á ¼½¼ÇÀ» ÂüÁ¶Ç϶ó.
¿ä¾à
"»õ·Ó´Ù"´Â °ÍÀÇ Àǹ̰¡ 40³âÀ̳ª ¿À·¡µÈ °Í±îÁö Æ÷°ýÇÒ ¼ö ÀÖ´Ù¸é ¸®´ª½º °¡»óÈ´Â ºÐ¸í »õ·Î¿î °ÍÀÌ´Ù. ±× µ¿¾È ¸¹Àº Á¤È²µé ¼Ó¿¡¼ »ç¿ëµÇ¾úÁö¸¸, ÀÌ ±Û¿¡¼´Â ¼¹ö¿Í OSµéÀÇ °¡»óÈ¿¡ ´ëÇØ ¼³¸íÇß´Ù. ¸®´ª½ºÀÇ °æ¿ì, °¡»óÈ´Â ¼º´É, À̽ļº, À¯¿¬¼º Ãø¸é¿¡¼ ¸¹Àº ¿É¼ÇµéÀ» Á¦°øÇϱ⠶§¹®¿¡ ÀÚ½ÅÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ °¡Àå Àß ¸Â´Â ¹æ½ÄÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.