第一型與第二型超管理器(type-1 vs type-2 hypervisor)
超管理器有兩種口味,差別很單純:什麼東西直接坐在裸硬體上?第一型(裸機型)超管理器「就是」坐在硬體上的那個東西——它最先啟動、擁有整台機器,客體作業系統跑在它之上。第二型(托管型)超管理器只是跑在一個普通作業系統裡的程式——你正常開機進 Windows、macOS 或 Linux,然後像啟動任何其他應用程式那樣啟動超管理器,再由「它」去跑客體。一個取代了底層的作業系統;另一個則騎在一個作業系統之上。
第一型的例子有 Xen、VMware ESXi 與微軟的 Hyper-V;這些是資料中心與雲端供應商所用的,因為它們精簡、快速,且底下沒有一個拖慢速度、擴大攻擊面的通用作業系統,可信任基礎很小。第二型的例子有 VirtualBox 與 VMware Workstation,開發者在桌機上跑它,在一個視窗裡開一台測試用 VM。Linux KVM 是那個著名的中間情形:它是一個核心模組,把正在執行的 Linux 核心本身變成第一型風格的超管理器,所以人們會爭論它到底算哪一型。誠實的答案是:教科書上那種「分兩桶」的切法是個有用的簡化,而 KVM 顯示這兩個桶會漏:因為 Linux 核心在裸機上啟動、再透過硬體支援直接托管客體,KVM 的行為像第一型,即使旁邊還跑著一整套 Linux。
為何這個區分在實務上重要:第一型在原始效能與「可信任程式碼之小」這兩點上通常勝出(你客體底下的程式碼行數越少,能破壞隔離的臭蟲就越少),這正是它主宰伺服器與雲端部署的原因。第二型勝在方便——你保留平常的桌面環境,需要時才跑一台 VM——代價是客體與硬體之間多了一層軟體(主機作業系統)。
ESXi 直接從伺服器的磁碟啟動,底下沒有 Windows 或 Linux——這是第一型。VirtualBox 是在一個已經跑起來的 Windows 桌面裡被雙擊、開出一台 Linux VM 視窗——這是第二型。
第一型在裸硬體上啟動;第二型作為應用程式跑在主機作業系統裡。
乾淨的第一型/第二型切分是個簡化:KVM 把它模糊了,因為它把一個普通的 Linux 核心變成裸機風格的超管理器。要看「實際上是什麼最先擁有硬體」,而不是看行銷標籤。