0 引言
目前,虚拟化技术深入计算机应用各个方面,从服务器到桌面系统都呈现出一片繁荣景象。但是X86平台上的虚拟技术起步较晚,随着X86 平台CPU 性能越来越强,市场应用越来越广泛,X86 平台下的虚拟化技术同样得到了快速发展,特别是支持虚拟化技术的CPU 的出现,X86 平台已经成为虚拟化发挥作用的重要平台之一。
1 虚拟化技术
虚拟化是一个非常广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术VT(Virtualization Technology)可以扩大硬件的容量,简化软件的重新配置过程。
虚拟化目前主要有软件虚拟和硬件辅助虚拟两种方式。传统的软件虚拟方式是利用CPU 的多任务和超线程技术,通过虚拟软件VMM(Virtual Machine Monitor)来实现一台主机模拟多个系统。常用的虚拟软件有微软公司的Virtual PC 和VMware 公司的VMware Workstation 等。虚拟操作系统主要是通过虚拟软件VMM 与硬件进行通信,由虚拟软件VMM 决定其对虚拟操作系统的访问。虚拟操作系统与主机操作系统之间的通信层需要进行二进制转换,以通过提供如CPU、内存、存储器、显卡和网卡等物理资源的接口,模拟硬件环境。这种转换必然会增加系统的复杂性,也降低系统的安全性和稳定性。而硬件辅助的虚拟方式是利用CPU 虚拟化技术,通过硬件来实现一台主机模拟多个系统。CPU 虚拟化技术可以将单个CPU 模拟多个CPU 并行,提供基于芯片的功能,多个系统的应用程序都可以在相互独立的空间内运行而互不影响,并且支持虚拟操作系统直接在硬件上运行,无需进行二进制转换,从而显著提高计算机的工作效率。
早在2005 年,Intel 公司和AMD 公司便在各自的CPU 中加入虚拟化技术的支持。Intel 公司在自己的CPU 中设计了Intel-VT 硬件虚拟化技术,而AMD 公司也在自己的CPU 中设计了AMD-V 硬件虚拟化技术。由于这两个公司的CPU 都是基于相同的X86 构架,因而CPU 硬件虚拟化技术的本质也大致相同。
2 虚拟化技术分析
X86 构架的CPU 指令系统分成Ring 0-3 四个级别。Ring 0 拥有最高的权限,通常系统内核才拥有Ring 0 的权限,可以直接和硬件沟通读取输入输出设备、CPU、内存等数据。其次是Ring 1,往后依次类推,Ring 3 的权限最低。运行于较低级别的指令不能随意调用高级别的指令和访问较高级别的数据,从而对数据进行保护。大部分的操作系统没有用到这四个级别,一般只用了两个级别,如Linux 和Windows操作系统分成特权模式和用户模式两种。系统的内核是特权模式,运行在Ring 0 级别。而系统的应用程序是用户模式,运行在Ring 3 级别。如果用户模式的应用程序需要存取硬件数据时只能使用特权模式的内核所提供的系统调用来存取。
一台主机要同时运行多个操作系统,需要用虚拟软件VMM 来管理多个虚拟操作系统,有直接虚拟和主机虚拟两种软件虚拟方式,以及利用CPU 虚拟化技术的硬件辅助虚拟方式。直接虚拟方式通过直接运行在硬件层上的虚拟软件VMM 来管理虚拟操作系统。在这种方式中,虚拟软件VMM 运行于特权模式Ring 0 级别,虚拟操作系统运行于Ring 1 级别,虚拟应用程序运行于用户模式Ring 3 级别,如图1 所示。这种方式的虚拟操作系统需要通过指令转换将指令交给虚拟软件VMM 执行,这样就降低了系统效率。
主机虚拟方式是通过运行于主机操作系统上的虚拟软件VMM 来管理虚拟操作系统。在这种方式中,主机操作系统运行在特权模式Ring 0 级别,虚拟软件VMM 作为主机操作系统的应用程序,运行在用户模式Ring 3 级别,虚拟操作系统和虚拟应用程序也运行于用户模式Ring 3 级别,如图2 所示。这种方式会耗费系统很多的资源,降低系统的性能。
图1 直接虚拟方式 图2 主机虚拟方式
利用CPU 虚拟化技术的硬件辅助虚拟方式可以解决虚拟操作系统的内核无法处于特权模式Ring 0 级别的问题。这种方式是通过硬件,利用支持虚拟技术的CPU 带有特别优化过的指令集VMX(Virtual Machine Extensions)来实现。在这种方式中,CPU 的操作分成两种不同的操作模式。一种是根虚拟化操作模式VMX root mode,这种操作模式让虚拟软件VMM 在Ring 0 级别以下使用,可以把它当作是Ring -1 级别。另一种是非根虚拟化操作模式VMX non-root mode,这种操作模式可以让虚拟操作系统在Ring 0 级别使用,而虚拟应用程序在Ring 3 级别使用,如图3 所示。
图3 CPU 虚拟化技术硬件辅助虚拟方式
用户使用虚拟操作系统的时候,通过执行VMXON 指令来进入根虚拟化操作模式的虚拟软件VMM,
再执行VMLAUNCH 指令来进入非根虚拟化操作模式的虚拟操作系统。用户退出虚拟操作系统的时候,执
行VMRESUME 指令退出非根虚拟化操作模式,进入根虚拟化操作模式的虚拟软件VMM,再执行VMXOFF
指令退出虚拟软件VMM。CPU 虚拟化技术借助虚拟软件VMM 提供了全新的架构,减少了相关的性能开
销,简化了虚拟软件VMM 的设计,大大提高了虚拟系统的性能。
3 CPU 虚拟化技术的应用
CPU 虚拟化技术在日常应用中可能很少被用到,但在某些应用上却能发挥它的优势,如Windows 7操作系统中的Windows XP 模式就是CPU 虚拟化技术的一个实际应用。
微软公司在Windows 7 操作系统的专业版、企业版和旗舰版中,给用户提供了Windows XP 模式。它是基于微软的Virtual PC 虚拟软件,结合CPU 虚拟化技术,在Windows 7 系统中模拟Windows XP SP3 操作系统环境,保持Windows 操作系统的简洁性和兼容性。
使用Windows 7 操作系统的Windows XP 模式需要CPU支持硬件虚拟化技术,并且在计算机BIOS 中设置为启用状态。用SecurAble 工具可以检测CPU是否支持Intel-VT 或者AMD-V 硬件虚拟化技术,如图4 所示。图中Maximum Bit Length 显示CPU 是32 位的还是64 位的;HardwareD.E.P.(Data Execution Prevention)显示CPU 对硬件数据执行保护的支持。而Hardware Virtualization就显示当前CPU 对硬件虚拟化技术的支持。如果HardwareVirtualization 显示“NO”表示当前CPU 不支持硬件虚拟化技术。如果Hardware Virtualization 显示“Yes”表示当前CPU 支持硬件虚拟化技术。如果HardwareVirtualization 显示“Locked ON”表示CPU 支持硬件虚拟化技术,并且计算机BIOS 已经启用该功能。如果Hardware Virtualization 显示“Locked OFF”表示计算机BIOS 禁用了硬件虚拟化技术,不确定CPU 本身是否支持,可以在计算机BIOS里面查看是否能设置硬件虚拟化技术。
图4 SecurAble 测试CPU 功能
目前,Intel 和AMD 公司的CPU 产品中仍有部分系列产品不支持硬件虚拟化技术,使用这些CPU 的用户就不能使用Windows 7 操作系统中的Windows XP 模式。为此, 微软发布了系统补丁(Windows6.1-KB977206-x86.msu),可以让使用不支持硬件虚拟化技术的CPU 的用户通过补丁程序来使用Windows XP 模式。
用户可以到微软的官方网站http://www.microsoft.com/china/windows/virtual-pc/中免费下载Windows 7 系统的Windows XP 模式。选择好Windows 7 系统的版本和语言后就可以下载对应的Windows XP 模式安装程序WindowsXPMode_zh-cn.exe 和Windows Virtual PC 虚拟软件安装程序Windows6.1-KB958559 -x86.msu。将这两个程序按提示安装好后,在Windows 7 系统的“开始”菜单中的“所有程序”中的“Microsoft VirtualPC”下就有了“Windows XP Mode”。
Windows 7 系统安装好Windows XP 模式后就可以在同一桌面上运行Windows 7 系统的应用程序和Windows XP 系统的应用程序。在Windows XP 系统中的操作不会影响到Windows 7 系统,还可直接调用Windows 7 系统中的硬盘、软件等,让用户可以更好更方便地使用Windows XP 系统来运行与Windows 7系统不兼容的应用程序。
Windows 7 系统的Windows XP 模式因为启用了CPU 虚拟化技术,使得虚拟Windows XP 操作系统工作在Ring 0 级别的特权模式下能直接与硬件通信,所以在某些硬件系统的性能上有了突出的表现。图5是在Windows XP 模式的虚拟Windows XP 系统中,用优化大师进行性能测试得到的主要性能评估值。左边一列值是启动CPU 虚拟化技术后性能测试的分值,右边一列值是在计算机BIOS 中禁用CPU 虚拟化技术,安装补丁程序后,仍在Windows XP 模式相同的Windows XP 系统中,性能测试得到的分值。从这两种情况的性能测试分值比较中可以看出,利用CPU 虚拟化技术的Windows XP 系统的CPU、内存、显卡的性能评估值比禁用CPU 虚拟化技术的Windows XP 系统的评估值有近10%的提高,而硬盘性能评估值却有了近40%的提高。
图5 Windows XP 模式系统性能测试
4 结束语
CPU 虚拟化技术可以在硬件级别上实现计算机的虚拟化工作,利用CPU 虚拟化技术的Windows XP模式能提高虚拟系统的性能,增强Windows 7 系统的兼容性和稳定性。随着CPU 虚拟化技术的逐渐推广和应用,CPU 虚拟化技术在桌面系统安全性和可靠性方面,提高用户体验性方面,提高机器使用效率,以及加强业务整合能力等方面,将会发挥更大的作用。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:CPU 虚拟化技术分析和应用
本文网址:http://www.toberp.com/html/support/11121510195.html