MGI NetBSD项目开发人员 最近 宣布创建新的管理程序 及其相关的虚拟化堆栈, 已包含在NetBSD-current的实验分支中 并将以稳定版本的NetBSD 9提供。
NVMM 还是 限于支持x86_64体系结构 并提供了两种版本的硬件虚拟化机制。
其中之一是x86-SVM,它支持AMD CPU虚拟化,并且支持Intel CPU的x86-VMX扩展。
在当前形式下,主机上最多可以引导128个虚拟机,每个磁盘最多可分配256个虚拟处理器内核(VCPU)和128 GB RAM。
关于NVMM虚拟机管理程序
在此管理程序的演示中,NetBSD项目的开发人员解释说: NVMM包含一个在系统内核级别运行的驱动程序。
那也 协调对基于硬件的虚拟化机制和Libnvmm堆栈的访问,它在用户空间中运行。
内核组件和用户空间的交互是通过IOCTL完成的。
NVMM与KVM,HAXM和Bhyve等虚拟机管理程序的不同之处在于,在内核级别,仅执行了最低限度的一组硬件虚拟化机制,并且在用户空间上从内核中删除了所有计算机仿真代码。
这种方法 减少以提升的特权执行的代码量并降低风险 在管理程序中的漏洞受到攻击的情况下,整个系统都会受到损害。
此外,大大简化了调试和混淆项目的过程。
同时,Libnvmm本身不包含仿真器功能,而仅提供一个API,该API允许在现有仿真器(例如QEMU)中集成NVMM支持。
虚拟化API
该API涵盖了诸如创建和运行虚拟机,为来宾系统分配内存以及分配VCPU之类的功能。
为了提高安全性并减少可能的攻击媒介,libnvmm仅提供显式请求的功能。
默认情况下,复杂的控制器不会自动调用,如果没有它们,也无法使用。
NVMM尝试提供简单的解决方案,而不会陷入麻烦 并让自己能够控制工作的各个方面。
NVMM的内核级别部分已与NetBSD内核很好地集成在一起 并通过减少来宾操作系统和主机环境之间的上下文切换次数来提高性能。
在用户空间中,libnvmm尝试添加典型的I / O操作,而无需这样做,因此不求助于系统调用。
性能
与其他跨平台伪内核驱动程序相反,例如VirtualBox或HAXM, NVMM已很好地集成到NetBSD内核中 这个 允许优化更改 来宾和主机之间的上下文关系,以避免在某些情况下进行昂贵的操作。
安全
内存分配系统 基于pmap子系统, 该 允许您将页面从来宾内存移动到交换分区 如果系统内存不足。
NVMM没有锁和全局范围,使您可以同时使用不同的CPU内核来运行不同的来宾虚拟机。
基于QEMU,使用NVMM编写了一个解决方案以启用硬件虚拟化机制。
正在将准备好的补丁整合到主要QEMU设备中的工作.
埃尔帕克特 QEMU + NVMM已经允许您成功使用FreeBSD,OpenBSD,Linux,Windows运行来宾系统 XP / 7 / 8.1 / 10以及其他带AMD和Intel处理器的x86_64系统上的操作系统(NVMM本身不依赖于特定的体系结构)。
后端将能够在ARM64系统上工作。 在其他应用程序区域中,NVMM还着眼于各个应用程序测试区域中的隔离。
数据来源: http://blog.netbsd.org