하이퍼바이저 (Hypervisor)란? 가상화의 종류
하이퍼바이저 (Hypervisor)
- 단일 물리적 머신에서 여러 가상 머신을 실행하는 데 사용하는 소프트웨어
- 메모리 및 처리와 같은 단일 호스트 컴퓨터의 리소스를 가상으로 공유하여 호스트 컴퓨터가 여러 게스트 가상 머신을 지원할 수 있도록 함

Type 1 가상화 (베어메탈)
- 호스트의 하드웨어에서 직접 실행
- 하이퍼바이저가 호스트 운영체제를 거치지 않고 여러 가상 머신에 대한 리소스를 직접 관리하고 할당 가능하므로 효율성이 높음
- 자체적인 머신 관리 기능이 없어 관리를 위한 컴퓨터나 콘솔이 필요하므로 사용성이 낮음
- Type 1 가상화는 전가상화와 반가상화로 분류됨

전가상화 (Full-Virtualization)
- 하드웨어를 완전히 가상화하는 방식
- 게스트 OS와 네이티브 하드웨어 사이를 중재하는 하이퍼바이저 사용
- 게스트 OS에서 발생한 하드웨어 접근을 처리하기 위해 기존 OS를 거침
- 게스트 OS가 각각의 언어로 요청하는 명령들을 하이퍼바이저가 번역하여 하드웨어에게 전달
- 게스트 OS의 별다른 수정 없이 사용 가능
- 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 느림
반가상화 (Para-Virtualization)
- 전가상화의 성능 저하를 해소하기 위해 등장
- 모든 하드웨어의 반 정도만 가상화하고 나머지 반은 실제 하드웨어의 기능을 그대로 이용
- 모든 명령을 하이퍼바이저에게 요청하지 않고, 하이퍼콜이라는 인터페이스로 직접 하이퍼바이저에 요청을 날림
- 하이퍼콜을 이용하므로 게스트 OS의 커널 수정 필요
- 오픈소스가 아닌 상용 OS에는 적용 불가 ex) 윈도우
Type 2 가상화 (호스팅)
- 운영체제에서 소프트웨어 계층으로 실행
- 시스템 관리자가 호스트형 하이퍼바이저의 리소스를 할당하고 이를 가상 머신에 배포
- 설치, 구성, 사용이 쉬워 사용성이 높음
- 호스트 운영체제로 인해 가상화 환경에 지연 시간 발생
참고 링크