Hypervisor 是介於硬體與作業系統間的一層抽象。
它的工作是:
對 Guest OS 而言一切是透明的。它不會知道自己跑在借來的硬體上,他會認為自己擁有獨立的硬體資源。
來源: https://vgyan.in/type-1-and-type-2-hypervisor/
Native Hypervisor(Type 1, 裸機型)
直接運行在硬體上。
由 Hypervisor 自行管理 CPU、記憶體、中斷等資源。
如:KVM。
Hosted Hypervisor(Type 2, 宿主型)
運行在作業系統上,像一個應用程式。
依賴宿主提供的硬體抽象。
如: VMware Workstation
如果要從零開始探索 Hypervisor,就必須處理 Intel VMX 的細節,從 BIOS 初始化一路走到 VM-entry/exit,這對於 30 天計畫應該是不夠的。
因此,作為 30 天計畫的起手點,我想從 KVM 開始:
利用 KVM,我們可避免在「trap-and-emulate」的細節上踩坑,將精力集中於 VM-exit 的攔截與處理策略設計。