有人能解释一下什么是硬件虚拟化以及为什么大多数 CPS 都将其关闭吗?还有硬件如何确保我们可以在虚拟模式下使用操作系统?
答案1
硬件虚拟化是指一组 CPU 指令和功能,它允许 CPU 直接执行任务,从而使 OS 虚拟化 [ 涉及 VMWare、Xen、KVM、Hyper-V 等虚拟机管理程序的虚拟化 ] 任务变得更简单/更快,否则需要虚拟机管理程序做大量的工作。特定的命令和功能包括 VMMEntry\VMMExit(处理 CPU 上的 VM 上下文切换)和二级地址转换和页表影子(如英特尔的 EPT、AMD 的 RVI)等功能。它不仅仅是一项功能,尽管人们通常将其称为一项功能,并且它不断扩展以涵盖内存管理和 IO 虚拟化等其他领域,因此早期系统(如原始双核 Xeon)中的 vTX 功能不如较新的 CPU 中的功能有效。
至于为什么默认关闭它 - 我怀疑是因为它在最初出现时并不常用,而且有人担心恶意软件会利用它进行无法检测到的 root kit 类型的攻击。不管这是否属实,在安全隐患问题得到解决后,网上一度出现了很多关于它的负面评论。
这里有一篇技术入门文章英特尔的 vTX简要说明了它是如何演变的以及正在开发哪些新功能\特性。