英特尔已经发布了七款支持VT(Virtualization Technology,虚拟化技术)技术的处理器——奔腾4 672,662,奔腾D920,930,940,950奔腾EE 955。Intel Virtualization Technology就是以前众所周知的“Vanderpool”技术,这种技术让可以让一个CPU工作起来就像多个CPU并行运行,从而使得在一部电脑内同时运行多个操作系统成为可能。
这种VT技术并不是一个新鲜事物,市面上已经有一些软件可以达到虚拟多系统的目的,比如VMware workstation、Virtual PC等,使用这种技术就可以单CPU模拟多CPU并行,可以实现单机同时运行多操作系统。
virtualization技术和多任务(multitasking)、HyperThreading超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟技术中,你可以拥有多个操作系统同时运行,每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。而HyperThreading超线程只是在SMP系统(Symmetric Multi Processing)中单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
当然了,如果一个CPU同时支持HyperThreading和Virtualization技术的话,每一个虚拟CPU在各自的操作系统中都被看成是两个对称多任务处理的CPU。
虚拟技术可能让人联想到早期CPU上的“Virtual 8086”技术,这种V86模式技术是用来兼容早期的8086/8088处理器而设计的,最早出现在386机器上。使用V86模式你可以创建好几个并行虚拟8086计算机来运行多个DOS程序,同样道理,使用VT技术你也可以创建几个完整的虚拟电脑来运行几个完整的操作系统。
可是既然已经有VMware等这种可以达到虚拟目的的软件,为什么我们还要努力来实现硬件CPU内部的虚拟技术呢?这是因为硬件CPU的虚拟技术有许多优势。支持虚拟技术的CPU带有多余的指令集来控制虚拟过程,通过这些指令集,控制软件VMV(Virtual Machine Monitor)会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。
工作原理
带有虚拟技术的处理器具有额外的指令集,叫做Virtual Machine Extensions,简称VMX。VMX给CPU带来了10个新的虚拟专用指令:VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUCH, VMRESUME, VMXOFF and VMXON。
在虚拟状态下有两种工作模式:root操作和非root操作。通常只有虚拟操作软件——Virtual Machine Monitor (VMM)能够运行在root操作模式下,而操作系统在虚拟机的顶层运行在非root操作模式下。运行在虚拟机顶层的软件同时也叫做“guest software”。
要进入虚拟模式,VMM需要执行VMXON指令来调入VMM软件,VMM软件使用VMLAUNCH指令来进入每一个虚拟机,使用VMRESUME指令来退出。如果想要退出虚拟模式,可以使用VMM运行VMXOFF指令。在图中的每个guest系统可以是不同的操作系统,同时运行自身的软件。
实际使用中如何实现
根据intel的资料,intel虚拟技术的实现需要同时具有处理器、芯片组、BIOS、VMM软件的支持,这些特定的平台软件必须全部到位。同时性能方面要视不同的硬件和软件平台而定,intel虚拟技术支持的BIOS和VMM程序现在正在开发之中。
据我们所知,现在还没有支持虚拟技术的VMM软件,所以即使你买了一款支持VT技术的CPU,你还要等待Intel放出VMM软件才能使用上VT技术。同时还要等主板厂商放出VMM支持的BIOS(或者保证使得现有的主板BIOS支持虚拟技术)。
现在未知的就是,至关重要的虚拟技术VMM软件intel将是免费放出还是需要交费才可以。定价如何才合适呢?类似的软件虚拟技术,VMware Workstation 5价格为189~199美元之间,所以我们希望intel即使不免费提供VMM软件也会比这个价格要少很多。
intel虚拟技术承诺比VMWare软件虚拟技术性能要高的多,这个我们要等到VT VMM软件可用的时候才能够看个究竟了。