Virtual Machine이란?
Virtual Machine(가상머신, VM)은 컴퓨팅 환경을 소프트웨어로 구현한 것으로서,
다시말해 컴퓨터를 에뮬레이션하는 소프트웨어라고 할 수 있습니다.
가상 머신의 종류
가상 머신은 시스템 가상 머신과 프로세스 가상 머신의 두 가지 종류로 나눌 수 있는데,
전자는 완전한 시스템 플랫폼을 제공하는, 즉 완전한 운영체제(OS)실행을 지원합니다.
반면 후자는 하나의 단일 프로세스를 실행하기 위해 만들어져 있는데, 다시 말해 단일 프로세스를 지원합니다.
VM은 CPU, RAM, 하드디스크 등 컴퓨터 주요 부품들을 가상으로 만들어서 구동하는 식으로 동작합니다.
이를 위해서는 각 부품들의 기능을 소프트웨어적으로 구현해야 합니다.
이때 사용되는 개념으로 에뮬레이션, 전가상화, 반가상화가 있습니다.
에뮬레이션(Emulation)
에뮬레이션은 모든 부품의 기능을 소프트웨어적으로 구현하는 방식이며,
정의 상 가장 속도가 떨어지는 방식이지만, 범용성이 가장 뛰어나다는 장점이 있습니다.
전가상화(Full-virtualization)
반면, CPU등 주요 부품의 구현에서 하드웨어의 기능 지원을 받는 것을 '전가상화'라고 합니다.
이러한 전가상화는 에뮬레이션에 비해 상대적으로 속도가 빠르다는 장점이 있으나,
해당 하드웨어 기능에 크게 종속되기 때문에 범용성은 상대적으로 떨어집니다.
반가상화(Para-virtualization)
위의 완전한 에뮬레이션/전가상화를 포기하고, 가상머신 내에 설치될 OS에 수정을 가하거나
전용 드라이버를 사용하여 하드웨어에 직접 접근하는 방안을 별도로 마련하는 방법을 '반가상화'라고 합니다.
반가상화는 다른 두 방법에 비해 속도는 가장 빠르지만, 하드웨어 기능 뿐만 아니라 운영체제 및 드라이버에도
종속성이 생기기 때문에 범용성은 셋 중에서 가장 떨어집니다.
하이퍼바이저(hypervisor)
끝으로, 가상화에는 하이퍼바이저(hypervisor)라는 플랫폼이 사용되는데,
이는 하드웨어에서 가상 머신의 리소스를 분리하고, 적절히 프로비저닝하여 VM에서 사용할 수 있도록 해줍니다.
가상화 머신 모니터(Virtual Machine Monitor)또는 가상화 머신 매니저(Virtual Machine Manage), 줄여서 VMM이라고도 부릅니다.
가상 머신은 다른 기능을 가지고 있는 여러 종류의 머신들이 있으며, Oracle VirtualBox, VMware등이 있습니다.
'Computer Science' 카테고리의 다른 글
URL과 URI의 차이 (0) | 2021.01.05 |
---|---|
하드 링크와 심볼릭 링크 (0) | 2020.11.07 |
8086CPU의 20bit물리 주소 지정 방법 (0) | 2020.09.18 |
Memory의 종류와 역사 (0) | 2020.09.12 |
Hardware Abstraction Layer(HAL, 하드웨어 추상화 계층) (0) | 2020.09.12 |