가상화 개념
what is virtualization ???
virtualization / emulation
virtualization -> same architecture ( cpu )
emulation -> CPU(hw) emulation ( ex : x86 -> arm )
virtualization이 emulation 보다 빠르다.
암튼 이렇게 emulation과 차이가 있다.
virtualization 을 구현한 것이 hypervisor 이다.
hypervisor는 type 1 과 type 2로 구분된다.
type 1 : bare-metal hypervisor
type 2 : hosted hypervisor
type 1 은 실제 hw 자원 위에서 이를 가상화하여 게스트에게 분배하는 역할만 한다.
type 2 는 host OS가 존재하고, 그 위에 가상머신이 올라가는 구조이다.
type 1 이 type 2 보다 빠르다.
type 1 은 hypervisor 가 os 처럼 설치되는 형태인데, vmware의 ESXI와 KVM(나중에 다룰거지만 애매함), microsoft hyper-v 가 있다.
( type 1이 보통 type 2 보다 비싸다)
type 2 는 vmware 의 workstation, virtual box, qemu 등이 있다.
가상화 방식도 2가지로 나뉜다
full virtualization : 하드웨어를 모두 시뮬레이션해서, 게스트는 지가 게스트인지 모르는 상태로 구동하는 방식
하드웨어 인터렉션이 필요하면 결국 매번 하이퍼바이저를 찾아와야 하기에 오버헤드가 크다
paravirtualization : 반가상화라고도 함. guest os가 특수하게 수정된 경우이다.(보통 커널 수정하거나 PV driver 설치해서 구현)
guest os 도 스스로가 guest임을 인지하고, virtio 등의 방식으로 host와 효율적으로 통신한다.
paravirtualization 이 더 빠르다. ( 속도를 위한거니까... )
최근에는 이 두개를 모두 사용해서 hybrid 방식이 대중화되어 사용되고 있다.
근데 가상화를 하더라도 CPU를 어떻게 가상화 할 것인지가 관건이다.
그래서 CPU 도움을 좀 받는다.
ia set에 intel은 vt-x, amd는 svm이라는 가상화 전용 명령어가 존재한다.
이는 이후 메모리와도 밀접한 관련이 있는 파트이니, 뒤에서 더 다루도록 한다.
'apple silicon' 카테고리의 다른 글
zeroday in KVM ( arm linux kernel ) - How to report (1) (0) | 2025.09.05 |
---|---|
hypervisor virtio (0) | 2025.09.05 |
what is KVM? (0) | 2025.09.05 |