技术学堂:硬件虚拟技术初探

互联网 | 编辑: 杨雪姣 2009-04-16 19:15:00转载

Intel的Yonah处理器即将发布,随后桌面版的Presler处理器也将面世,它们都具有新的VT硬件虚拟技术。而AMD将在今年上半年发布新的处理器也具有类似的硬件虚拟技术。那么什么是硬件虚拟技术?为什么新处理器都支持该技术呢?

虚拟化的浪潮似乎在一夜之间席卷了整个IT业。存储厂商们开始大量谈论存储虚拟化的问题,网络制造商开始宣传各种各样的虚拟网络概念。现在,这股浪潮正在快速的蔓延到PC平台上来。今年Intel和AMD都将拿出他们各自的平台虚拟化解决方案。那么“时髦”的硬件虚拟技术究竟会为我们带来什么?它又如何实现的呢?让我们一起走近硬件虚拟技术吧。

 一、面向未来的硬件虚拟技术

未来的某一天,我正在电脑上兴奋地玩着3D网络游戏,母亲也在卧室的平板电视前轻松地玩着休闲游戏,同时父亲还在客厅津津有味地欣赏电影大片,洗衣机、冰箱和咖啡机都在自动进行着自己的工作。这一切,都是由我这台电脑来统一实现的,它能同时应付多种工作,甚至连操作系统都可以不同。电脑有如此强大的功能,是因为它中了硬件虚拟技术所释放的“魔法”。

尽管硬件虚拟技术已经成为IT界的热门词汇,但许多人都还不了解它究竟能给我们带来什么。硬件虚拟技术允许在单个硬件平台上同时运行多个独立操作系统。通过该技术,我们就能够在一个硬件平台上完成以往需要多个硬件平台才能完成的应用,从而进一步提升硬件的使用效率。

在硬件虚拟技术的帮助下,用户再也不必为系统崩溃而沮丧。有了它,一旦使用中的操作系统崩溃,用户仍然能够瞬间切换到另外一个工作正常的操作系统上,然后继续手上的工作。

对于那些经常要争夺电脑使用权的人来说,硬件虚拟技术也将是他们的一大福音。通过该技术,用户只需要简单地连接多个USB输入设备和多个显示器,就能够让一台PC同时被多个用户所使用。

硬件虚拟技术带来的另一大好处是,组建数字家庭也不一定需要购买专门的服务器了,你只要在年的PC上安装一套服务器版的Guest OS(客户操作系统),所有的网络共享、访问下载等操作都会在后台默默地完成。与此同时,中小企业要实现信息化也不一定需要专门的文件服务器、代理服务器和邮件服务器了。硬件虚拟技术的出现能够让服务器同时在不同的操作系统中运行各种网络服务,这些操作系统相互独立,有着极高的安全性。

毫无疑问,硬件虚拟技术的出现将会彻底改变我们使用电脑的习惯,在它的支持下,我们能够让电脑现实更多更复杂的应用。

二、华而不实的软件虚拟技术

 早在2003年,几款虚拟软件就吸引了大众的目光。以VMware为首的虚拟软件首次让用户见识了在Windows XP平台上运行Linux甚至是Windows Server 2003的奇妙魔法。由于VMware是构建在原有操作系统之上的,因此运行在VMware环境中的操作系统相对的被称作Guest OS。这些Guest OS有着和普通操作系统完全相同的功能。由于Guest OS运行在虚拟机的环境中,因此无论你对Guest OS做什么样的改动,都丝毫不会影响到Host OS(主操作系统)的稳定性和安全性。在你不用Guest OS的时候,更能够像删除普通软件那样随意卸载。可惜初期的虚拟软件大都中看不中用——Guest OS的运行速度非常低,并且十分消耗系统资源,几乎不具备实用价值。

总的来说。软件虚拟技术的性能表现低下,而且无法直接对硬件进行操作,限制了软件的功能。解决虚拟软件遇到的这些难题,单纯依靠软件开发者已经无法解决。硬件厂商必须在硬件上作出一定的改动,才能让软件虚拟运行得更好更快。也正式这个时期,我们迎来了CPU和内存性能的狂飙时代。随着处理器性能的不断提升,内存容量也不断扩大,我们往往会发现,很多应用并不能发挥出PC的全部效能,那么能不能把这些剩余的处理能力用在虚拟技术上呢?

三、IA架构的硬件虚拟化解决之道

 软件虚拟技术的效率低下,原因在于它会把很多CPU的处理能力消耗在虚拟操作上。对于所有运行在x86处理器的程序来说,根据程序的重要性会被分为Ring 0~3共4个线程执行权限,其中Ring 0被称作内核模式,而Ring 3被称作用户模式,Ring后面的数字越小,权限越大。通常操作系统是运行在Ring 0权限的,但为了避免Guest OS破坏Host OS,Guest OS必须运行在低于Ring 0的权限上(如Ring 1权限)。问题随之而来,为了让Guest OS实现完整的功能,又必须让它发出的线程是Ring 0级的。于是虚拟软件就要不断协调Guest OS和Host OS之的线程的优先级,CPU和内存的处理能力就在这样的协调中被大量耗费了。

要为用户提供高速、稳定的虚拟技术,就必须对原有的x86 CPU体系进行改进,通过提供一套针对虚拟化应用的专门指令来实现硬件级的虚拟化支持。因此在2003年IDF论坛上,Intel就提出了处理器4T战略,这其中就包含了CPU虚拟技术——代号为Vanderpool的Intel硬件虚拟技术(Intel Virtualization Technology,简称VT)。随后AMD也正式公布了代号为Pacifica的硬件虚拟激素后,准备与Intel一争高下。今天,几乎所有主要的CPU供应商都计划在半年内让旗下的CPU产品对硬件虚拟技术提供支持,包括IBM、SUN等高端服务器/工作站大厂。

无论是Intel还是AMD,他们基于x86 CPU的硬件虚拟技术的本质都大致相同,就是为Guest OS提供专门的执行区域,避免虚拟软件的频繁协调操作,从而提升稳定性和性能。下面我们就以Intel的VT技术为例,来看看硬件虚拟技术的执行方法。

Intel首先为CPU增加了一种新的VMX执行模式。在这个模式下,CPU将提供一个虚拟机监视器(Virtual Machine Monitor,简称VMM),通过它我们能够随意控制Guest OS。同时,VMM工作在VMX根模式下(VMX Root Mode),该模式和Ring 0权限大致相同,这样就能保证VMM对Guest OS的完整控制和安全性。与之相对应的,AMD把这种执行模式称作VMRUN,把虚拟机监控器称作Hypervisor。VMRUN根模式命名为SVM(Security and Virtual Machine)。

在开打VT技术后,所有的Guest OS都将运行在VMX模式下。VMM将对Guest OS发出的指令进行管理,虚拟软件再也不必频繁地协调Guest OS和Host OS之间的冲突了。对于AMD K8系列CPU来说,由于CPU内部整合了内存控制器,因此在SVM模式下,VMM还有着相应的内存访问控制机制,更进一步提升了Guest OS的运行性能。

在很多情况下,我们往往需要同时运行多个Guest OS。因此在VMX模式下,Intel还引入了各个VMX模式的切换机制,并把这个切换功能称作VM登陆/退出。在需要的使用,系统 轻易快速地在VMM根模式和VMM普通模式之间快速切换,这样就意味着多个不同的Guest OS能够被高效地同时执行。而且在快速切换执行的同时,VT技术依然能够保证各自Guest OS的稳定运行。

在对Guest OS的管理方面,VT技术会为每个Guest OS保留4KB的状态存储区,这个区域被称作VMCS(Virtual-Machine Control Data Structure,虚拟机数据控制架构)。这个区域将会被用来存储Guest OS的状态,Guest OS就能被用户自由地打开、关闭和切换。

可以预料,硬件虚拟技术的采用能够使各种虚拟软件更简单、更快更好地运行。对于所有需要运行虚拟软件的用户来说,硬件虚拟技术都充满了吸引力。

结语:尽管单核心x86 CPU都能实现对硬件虚拟技术的支持,但是在双核心、多核心时代,硬件虚拟技术所展现的魅力才更为惊人。由于主流软件不可能都为双核心CPU优化,因此在双核心CPU平台上通过硬件虚拟技术运行多套操作系统,这样就能最大限度地“压榨”出双核心CPU的潜力。

从Intel和AMD宣布支持硬件虚拟技术的那一刻起,它就开始走进千家万户的普及之路。随着双核心、多核心CPU的普及,PC平台的处理能力不断增强,硬件虚拟技术必将会快速成为我们电脑中不可或缺的一部分。(微型计算机 王翔、刘泽申)

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑