2008年(8065)
分类: 服务器与存储
2008-07-07 10:28:18
回想一下 IA-32(x86)体系结构在进行时会产生的一些。特定的特权模式指令无法捕获,基于所的模式还可能返回不同的结果。例如,x86STR
指令可以检索状态,但是所返回的值要取决于请求者特定的特权级别。在尝试在不同的层次对不同的进行虚拟化时,这会出现问题。例如,x86 支持 4 环保护,其中级别 0 (最高特权)通常运行操作系统,级别 1 和 2 支持操作系统服务,级别 3(最低级别)支持程序。不过硬件供应商已经认识到了这种缺陷(以及其他一些问题),并且已经开发了一些支持并加速虚拟化的新设计。
Intel 正在开发新虚拟化,能在 x86(VT-x)和 Itanium®(VT-i)体系架构上支持 hypervisor。VT-x 支持两种格式的操作,一种用于 VMM(root),另外一种用于客户操作系统(非 root)。root 格式完全是特权级的,而非 root 格式是非特权级的(即使对环 0 来说也是如此)。这种体系架构支持定义指令来使 VM(客户操作系统)退出到 VMM 和保存处理器状态。此外还添加了许多其他的功能,请参看参考资料部分。
AMD 也开发了硬件辅助虚拟化技术,称为 Pacifica。除了其他一些特性之外,Pacifica 还为在特殊指令执行时保存的客户操作系统维护了一个控制块。VMRUN
指令允许虚拟机(及其相关的客户操作系统)一直运行,直到 VMM 重新获得控制权为止(这也是可配置的)。这种可配置能力允许 CMM 为每个客户操作系统定制特权指令。Pacifica 还可以使用宿主和客户内存单元(MMU)表来进行地址转换。
这些新技术也可以应用到此处讨论的很多其他虚拟化技术中,包括 Xen、VMware、User-mode 等。