x86虚拟化

维基百科,自由的百科全书
跳转至: 导航搜索

虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,簡稱:Guest OS)在一个主操作系统(Host Operating System,簡稱:Host OS)下运行的一种技术。这种技术只要求对客操作系统有很少的修改或甚至根本没有修改。x86处理器架构起先并不满足波佩克与戈德堡虚拟化需求(Popek and Goldberg virtualization requirements),这使得在x86处理器下对普通虚拟机的操作变得十分复杂。在2005年与2006年,英特尔AMD分别在它们的x86架构上解决了这个问题以及其他的虚拟化困难。

软件技术[编辑]

1999年2月8日,VMware展示了它的第一个x86虚拟化产品“VMware虚拟平台”(VMware Virtual Platform),此产品建立在创建者早期在斯坦福大学的研究基础之上。VMware在1998年10月提交了对这一技术的专利申请,并于2002年5月28日被授予美國專利 6,397,242。VMware与类似的x86虚拟化软件必须使用十分复杂的技术来获得并虚拟运行一些指令,这些技术被IBMIBM_System/370以及摩托罗拉MC68020等原生可虚拟化的架构远远超出。

Kevin Lawton启动了Plex86项目(原来叫作“freemware”)来创建应用于x86虚拟化的自由软件。此项目已经改变了原有的目的,现在只支持Linux作为客操作系统;然而在这之前,Lawton发表了一篇论文《使用虚拟化技术在一台IA-32 PC上同时运行多个操作系统》,作出了对x86架构虚拟化困难的分析以及提出了一些解决这些困难的技术。

微软提供了两个基于Windows的x86虚拟化产品:Microsoft Virtual PCMicrosoft Virtual Server,这两个产品都基于微软收购Connectix后获得的技术。

开源的替代品也包括QEMUVirtualBox

硬件支持[编辑]

英特尔与AMD独立地开发出了x86架构的虚拟化扩展。它们并不直接兼容,但是能够做到大部分的功能都相同。这两个扩展都允许在虚拟的性能不出现明显下降时运行一个虚拟机查看器,以运行未经过修改的客操作系统。

英特尔虚拟化技术[编辑]

英特尔虚拟化技术(IVT,Intel Virtualization Technology)是由英特尔开发的一种虚拟化技术,利用IVT可以对在系统上的客操作系统,通过虚拟机查看器(VMM,Virtual Machine Monitor)来虚拟一套硬件设备,以供客操作系统使用。

这些技术以往在VMware与Virtual PC上都通过软件实现,而通过IVT的硬件支持可以加速此类软件的进行。

英特尔在32位64位x86架构下的虚拟化扩展被命名为“IVT”,有时候也用它的开发代号“Vanderpool”来称呼它。32位(IA-32)的IVT扩展叫作“VT-x”。[1]英特尔同时为用于IA-64安腾2)处理器的IVT发布了规格说明,此项IVT被称为“VT-i”;[1]在这之前,IA-64的虚拟化技术的开发代号是“Silverdale”。

英特尔虚拟化技术是在2005年春季英特尔信息技术峰会时由官方发布的。IVT在特定的型号为6x1与6x2的奔腾4[2]型号为9x0的奔腾D[3]型号为3xxx/5xxx/7xxx的至强,除T2300E与T2x50外的酷睿双核[4]以及酷睿2双核[5](除T52x0,T5300,T54x0,步进为“B2”的T5500以及所有的E2xx0,E4x00与E8190的型号外)处理器中可用。在一些操作中,对IVT的支持可能在固件中被关闭;可以通过在特性控制的Model-specific register(MSR)中检查VMX标志是否为启用,来确定这一点。

根据英特尔网站上的文档说明,IVT不仅需要处理器的支持,也需要芯片组BIOS的支持,有时也许还需要软件的支持。[6][7]

Intel还计划在IVT中添加“直接输入/输出虚拟化”(Virtualization for Directed I/O,VT-d)技术。这项技术提供了一种配置传送给独立虚拟机的中断与配置I/O内存单元的方式,以防止虚拟机使用DMA来终止与真实硬件的隔离。

AMD虚拟化[编辑]

AMD虚拟化(AMD Virtualization),缩写为“AMD-V”,是AMD为64位的x86架构提供的虚拟化扩展的名称,但有时仍然会用“Pacifica”(AMD开发这项扩展时的内部项目代码)来指代它。

AMD-V在AMD的步进为“F”与“G”的速龙64以及速龙64 X2处理器,使用Socket S1炫龙64处理器、炫龙64 X2处理器、弈龙处理器,以及全部更新的处理器上可用。

在Linux中,支持虚拟化的AMD处理器会在一个特别文件/proc/cpuinfo中有一个名为“svm”的标志。

AMD为一项名为AMD-V的IO内存管理单元(IOMMU)发布过一份技术规范。这份技术规范提供了一种配置传送给独立虚拟机的中断与配置I/O内存单元的方式,以防止虚拟机使用DMA来终止与真实硬件的隔离。IOMMU在高级的操作系统(如缺席虚拟化,absent virtualization)与AMD的Torrenza架构中起到了重要的作用。

Windows Vista[编辑]

起初Windows Vista的家用入門版与家庭高级版在最终用户许可协议中声明,该系统不能够在一台虚拟机中安装或运行,尽管在技术上并没有障碍使得用户无法这样做。这一条款在2008年1月时被修改了。[8]

參考文獻[编辑]

相关条目[编辑]

外部链接[编辑]