第二型超管理器(type 2 hypervisor)
第二型超管理器(type 2 hypervisor)以普通應用程式的身分,跑在一套正常的作業系統之上,就和文書處理軟體一樣。把它想成一間已經有人住的房子,屋主在其中一個房間裡布置出一間客房給訪客:房子(主機作業系統)先在那裡,客房是後來在裡頭加裝的。這就是第二型(寄居)超管理器——你照常使用你慣用的 Windows 或 macOS,而超管理器只是你想在視窗裡跑另一套作業系統時,多開的一支程式。
因為它住在主機作業系統之上,第二型超管理器是向主機要資源,而不是直接擁有硬體:當客體想讀取虛擬磁碟時,這個請求最終會穿過主機自己的檔案系統與驅動程式。現代的第二型超管理器仍會用 CPU 的硬體虛擬化功能來扛重活,所以客體指令能跑得快,但凡是觸及真實裝置的動作都得繞遠路經過主機。常見的例子有 Oracle VirtualBox 與 VMware Workstation,正是人們用來在 Windows 筆電上試 Linux、或在 Mac 上跑 Windows 應用程式的工具。
它的魅力在於方便:你像裝任何應用程式一樣安裝它,不必把整台機器奉獻給虛擬化,還能在客體旁邊照常使用你平常的桌面。代價是比第一型超管理器更多的額外負擔、較弱的效能與隔離,因為路徑中有一整套主機作業系統,而超管理器只是它眾多程式之一。對個人電腦上快速開一台測試虛擬機器來說這很理想;要拿來經營資料中心就不適合。
一位學生在自己的 Windows 筆電上安裝 VirtualBox,下載一個 Ubuntu 映像檔,按下「啟動」。Ubuntu 在一個視窗裡開機,底下的 Windows 照常運作——他們可以拖動那個視窗、關掉它,而 Windows 一拍都不漏。
寄居超管理器把客體作業系統當成你日常桌面上的又一支應用程式來執行。
第一型/第二型之分講的是超管理器坐在哪裡,而非它能跑多快:使用硬體虛擬化的第二型超管理器,跑受 CPU 限制的客體程式碼也能接近原生速度。真正的差別出現在裝置輸入輸出與隔離上,那一層額外的主機作業系統會讓你付出代價。