여러 역할이 분담된 MSA로 구성되어 있다.
VMX Root Mode=(Host mode) / VMX Non-Root Mode(=Guest Mdoe)
- Intel, AMD의 가상화 기술(VT-x)이 지원하는 CPU의 동작 상태
- VMX Root Mode=(Host mode)
- CPU의 모든 권한을 가진다
- 물리적 하드웨어를 직접 제어한다.
- Non-Root Mode(VM)를 생성, 시작, 멈출 수 있는 관리자 권한이 있다.
- VM이 위험하거나 허용되지 않는 작업을 하려고 할 때(VM Exit), 이를 넘겨받아 처리한다.
- VMX Non-Root Mode(=Guest Mdoe)
- VM은 자신이 물리 하드웨어를 독점하고 있다고 착각하며 실행된다.
- 대부분의 명령어는 CPU에서 직접 빠르게 실행되지만, 중요한 시스템 변경이나 하드웨어 접근 권한은 제한된다.
- 제한된 명령을 실행하려고 하면 CPU가 이를 감지하여 강제로 멈추고(VM Exit) Root Mode로 제어권을 넘긴다.
/dev/kvm 이라는 캐릭터 디바이스 인터페이스를 제공한다. 사용자 공간의 프로그램은 ioctl() 시스템 콜을 통해 이 장치를 제어한다.qemu-kvm 프로세스로 실행된다.open("/dev/kvm") 시스템 콜을 호출하여 KVM 커널 모듈에 접근한다.ioctl(KVM_CREATE_VM) : KVM에 새로운 가상 머신 컨텍스트 생성을 요청ioctl(KVM_CREATE_VCPU) : 정의된 vCPU 개수만큼 가상 CPU 컨텍스트를 생성한다.ioctl(KVM_SET_USER_MEMORY_REGION)을 통해 KVM에게 게스트의 물리 메모리로 등록한다.ioctl(KVM_RUN)을 호출하여 제어권을 커널(KVM)로 넘긴다.ioctl(KVM_RUN)을 호출하여 VM 실행을 재개한다.