我正在尝试了解 UEFI(统一可扩展固件接口),但我并不完全清楚这对虚拟机有何影响。
因此,这个问题分为三个部分:
- UEFI 是否是硬件支持虚拟化的进步?
- 在其他所有条件相同的情况下,配备 UEFI 的机器是否比不配备 UEFI 的机器更有可能更高效地运行虚拟机,或者 UEFI 是否会导致性能下降,从而抵消虚拟机的任何速度提升?
- 执行上的差异对于在虚拟机中运行的代码来说是可见的吗?(理论上不应该,但实际上呢?)
答案1
UEFI 本身不应增加任何效率,因为 BIOS 和 UEFI 的作用是将系统从裸 CPU 引导到操作系统,并在启动后在操作系统和硬件之间提供转换层。UEFI 在这方面具有更多功能。
VMWare(以及其他 VM 供应商)完全有可能开发直接从 UEFI 运行的虚拟机管理程序。目前,它启动虚拟机管理程序的方式与启动普通操作系统的方式相同。直接在 UEFI 中运行会更高效吗?有可能,但可能不会高效很多。
答案2
如果您想了解 UEFI 固件如何支持虚拟机,开源 UEFI 参考实现 EDK II 中有一个项目:开放虚拟机固件 (OVMF)。包含用于 QEMU 和 KVM 的示例 UEFI 固件。
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF