실제 물리자원을 가상화하고 이를 가상머신이 사용할 수 있도록 중간에서 매개체 역할을 하는 소프트웨어
하이퍼바이저는 호스트OS 필요 여부에 따라 타입1과 타입2로 구분할 수 있다.
하이퍼바이저와 하드웨어가 직접 상호작용 하는 것이 특징이다.
즉 호스트OS 상에 하이퍼바이저가 올라가지 않고 직접 하드웨어를 제어할 수 있다.
ex ) KVM/QEMU. XEN 등
호스트 운영체제 위에서 하이퍼바이저가 동작한다.
ex ) VMWare Fusion, VMWare Workstation, Parallels Workstation, VirtualBox 등
컴퓨터 시스템에서 계층 별로 보호 권한을 구분한 구조.
시스템 자원 접근에 대한 메커니즘을 의미한다.
호스트 OS위에서 하드웨어를 에뮬레이팅 함으로써 자원을 가상화하고, 가상화된 자원을 VM에 할당한다.
따라서 하이퍼바이저는 Ring0에 위치하고, VM은 Ring1에서 동작하게 된다.
전가상화와 반가상화 여부에 따라 링 계층에서 상주하는 위치가 달라진다.
전가상화는 하드웨어를 에뮬레이트 하기 위해 이진 변환(Binary Translation) 방식을 사용하는 하이퍼바이저이다.
VM이 하드웨어를 제어하기 위해 하이퍼바이저에 바이너리 형태로 명령어를 전달하면 이 명령어를 해석하고, 그 결과를 토대로 하드웨어를 제어하게 되는데, 이 과정을 이진 변환 과정이라고 한다.
위와 같이 게스트 OS는 Ring1에 위치하게 되며 하이퍼바이저에 하드웨어 제어를 요청함으로써 가상화된 하드웨어를 사용할 수 있다.
하이퍼바이저가 별도의 가상화 계층에 위치한다.
링 구조에서 Ring-1계층에 있다고도 하는데, 이 구조에서 게스트 OS는 Ring0에 위치하게 된다.
하이퍼바이저가 하드웨어를 직접 제어할 수 있는 API를 제공하고 게스트 OS의 수정된 커널이 이 API를 통해 하드웨어에 접근하는 작업을 수행한다.
이렇게 수정된 게스트 OS의 커널이 직접 시스템 콜 하는 방식을 하이퍼 콜이라고 부른다.
전가상화 방식에 비해 이진 변환하는 에뮬레이트 절차가 없기 때문에 상대적으로 성능 오버헤드가 적다.
Reference
https://itguava.tistory.com/77