NetBSD 專案開發人員
NVMM 包括一個在系統核心層級運行並協調對硬體虛擬化機制的存取的驅動程序,以及在用戶空間中運行的 Libnvmm 堆疊。內核元件和使用者空間之間的交互作用是透過IOCTL進行的。 NVMM 有別於 KVM 等虛擬機器管理程式的一個特性是
然而,Libnvmm 本身不包含模擬器功能,僅提供一個 API,可讓您將 NVMM 支援整合到現有模擬器中,例如 QEMU。此API涵蓋了建立和啟動虛擬機器、為客戶系統分配記憶體以及分配VCPU等功能。為了提高安全性並減少可能的攻擊媒介,libnvmm 僅提供明確請求的函數 - 預設情況下,不會自動呼叫複雜的處理程序,如果可以避免,則可能根本不會使用它們。 NVMM 試圖讓事情變得簡單,不會變得太複雜,並允許您控制工作的盡可能多的方面。
NVMM 的核心級部分與 NetBSD 核心緊密整合,並透過減少來賓作業系統和主機環境之間的上下文切換次數來提高效能。在使用者空間方面,libnvmm 會嘗試聚合常見的 I/O 操作並避免進行不必要的系統呼叫。記憶體分配系統基於 pmap 子系統,它允許您在系統記憶體不足的情況下將訪客記憶體頁面移出到交換分區。 NVMM 沒有全域鎖,且可擴充性良好,可讓您同時使用不同的 CPU 核心來執行不同的來賓虛擬機器。
基於QEMU的解決方案已經準備好,使用NVMM來啟用硬體虛擬化機制。將準備好的修補程式納入 QEMU 主要結構中的工作正在進行中。 QEMU+NVMM組合已經
來源: opennet.ru