4.1.3 리눅스 가상 시스템의 구조
호스트(host), 호스트 시스템(host system)은 가상 시스템을 운영하는 물리적인 시스템을 의미합니다. 게스트(guest), 가상 게스트(virtual guest)는 호스트 시스템에서 운영되는 가상 장치를 의미합니다. 이 책에서는 혼란을 겪지 않도록 각각을 ‘호스트 시스템’과 ‘가상 게스트’로 표현하고 있습니다.
잠깐만요 ≣
네트워크 세계에서 ‘네트워크에 연결된 장치’를 호스트라고 합니다. 가상 기술에서 말하는 ‘호스트 시스템’은 ‘가상 게스트’를 운영하는 실제 시스템을 의미하는 개념이므로 혼동하지 않도록 주의해야 합니다.
가상 게스트는 호스트 시스템과 독립된 환경으로 각각 다른 운영체제로 동작할 수 있습니다. 이를테면 우분투 위에 윈도와 우분투를 동시에 운영할 수 있습니다. 가상 게스트가 이렇게 동작할 수 있는 이유는 가상 시스템에서 사용하는 하이퍼바이저와 에뮬레이터 때문입니다(그림 4-4).
호스트 시스템과 다른 환경에서 가상 게스트가 동작하려면 가상 게스트의 명령을 호스트 시스템이 이해할 수 있는 명령으로 바꾸어 주는 에뮬레이터가 필요합니다. 빠른 에뮬레이터(Quick EMUlator, QEMU)는 KVM이 사용하는 에뮬레이터로, 가상 게스트에서 호스트 시스템의 하드웨어를 제어할 수 있게 명령을 변환합니다. 그림 4-4는 리눅스 가상 시스템이 동작하는 방식을 보여 줍니다.