截至本周,Oracle最新的VirtualBox开发代码已开始支持Linux原生KVM后端。长期以来,业界一直期待VirtualBox能够兼容KVM或其他原生操作系统管理程序,如今这一愿景终于成为现实。
早在2024年,Cyberus Technology就曾独立开发过VirtualBox的KVM实验性实现。如今到2026年,最新的VirtualBox上游代码终于能够以"基本可用的形态"与KVM协同工作,当用户选择使用最新代码或VirtualBox自身内核驱动无法正常运行时,即可启用此功能。该支持特性现已在最新的VirtualBox Git版本及VirtualBox.org的Linux测试版本中提供。
关于KVM与VirtualBox协同工作的技术细节,可通过GitHub上的此工单查阅。预计距离支持此功能的下一个VirtualBox主要版本发布尚需时日。
尽管KVM现已能与VirtualBox兼容,但Oracle工程师Alexander Eichner指出VirtualBox自有管理程序实现的优势包括:
1. 我们的内核驱动提供更先进的网络模式,若采用其他方案则需繁琐配置
2. 我们的管理程序为旧版客户机提供更精准的模拟,例如为依赖A20门机制的DOS系统(在1MB处进行内存回绕)提供正确模拟,而KVM不具备此功能
3. 管理程序核心的额外优化,例如允许在ring 0层级处理部分设备模拟以提升性能,这对使用老旧客户机的场景尤为重要。对于采用高效设备的现代工作负载则影响较小
4. 我们的管理程序通过优化虚拟机退出机制来减少退出次数,例如当两次虚拟机退出(如MMIO退出或I/O端口访问)间隔极短且频繁执行时,我们的方案不会强制返回客户机进行耗时的状态同步,而是直接在首次退出后模拟后续指令
5. 我们的指令模拟器远比KVM提供的方案先进,例如能够模拟通常不用于MMIO的指令触发的MMIO退出
第2至5项优势主要针对老旧或特殊客户机场景,大多数现代工作负载可能不会感知明显差异,特别是在客户机系统知晓自身运行于虚拟机环境并相应调整行为的情况下。
尽管如此,这项让上游VirtualBox与KVM实现良好协作的工作仍具有重要意义。此次变更紧随VMware将Workstation迁移至Linux KVM架构的举措之后。