虚拟机软件或桌面虚拟化是虚拟计算的最终用户执行,在此,桌面应用程序(而不是服务器)被用来模拟一台PC。这其中的关键在于要像与本地电脑一样与虚拟机进行直接互动,而不是单纯为了基于服务器的应用程序而进行计算能力的模拟。
实际应用
虚拟机软件的一些常见的用途包括:
软件测试/沙箱。为了确保生产系统或者数据不受损坏, 用户可能会希望在一个独立的模式下尝试运行某个软件。在此之前,这可能涉及设置一个完全独立的物理机来进行测试,或者在同一台机器上建立一个单独的操作系统实例(通过一个多启动系统进行访问)。一台虚拟机可以运行软件——一个单一的程序、一个完整的操作系统或者两者兼而有之——这样任何活动都可以限制在虚拟机上进行。
虚拟设备。很多服务器端应用程序都有虚拟设备版本。这些虚拟机镜像包括一个操作系统(通常是Linux)和一个预先载入的应用程序副本。这样,只用启动虚拟机然后将它连接至网络就可以部署和运行所有的事情了。这类应用程序有WordPress、SugarCRM、Joomla!和Drupal,所有这些产品都拥有虚拟设备版本。
向后兼容性。一些针对当前某种操作系统编写的应用程序可能不能在早期的操作系统中运行,反之亦然。在虚拟机上运行应用程序可以让它找到相应的操作系统。Windows 7的XP模式下的做法是,在一台虚拟机上运行一个完整的Windows XP副本,这样你就可以使用之前不能在Windows 7上运行的应用程序和设备了。
#p#
软件
在过去的数十年中,由于进行虚拟化所需的硬件成本逐步下降,终端/桌面虚拟机程序的数量也就得到了相应的增加。以下软件是最常见并被广泛使用的,此外,附带一些关于它们功能的论述。(这里不包括服务器水平上的虚拟机子系统,比如Xen。)
VMware。它是最早也是最为广泛认可的虚拟机解决方案,从服务器虚拟化系统到各种针对不同用户设计的桌面版本无所不有。VMware Player是最基础的版本,可以让你创建并运行虚拟机,不论是新创建的还是预先打包的虚拟机镜像。而且,对于大多数人而言,它的功能都可以足够胜任。
高端产品VMware Workstation增加了一些专业特点:三维图形,支持更多的处理器(虚拟的或者物理的),为软件开发者设置的机内调试,机器状态快照等等。Player可以免费使用,Workstation的价格是189美元。
VirtualBox。甲骨文(原先Sun的)个人虚拟机解决方案拥有很多VMware Workstation的功能。但是,它是在一个自由使用/开源的执行状态下运行并托管多个操作系统。在某些方面它并不如VMware做得那么细致,但是每个后续的修复版本都会添加新的功能(比如,多核用户)、改进的本地兼容性,同时拥有多个操作系统。在它的免费使用版本中还包括一系列VMware Player所没有的功能,比如状态快照。在VirtualBox可用的加载项和扩展项里有一个用PHP编写的网页界面,可以远程控制无外设服务器。
Virtual PC。这是最初由Connectic为个人电脑和Mac开发的与VMware相似的应用程序。之后它被微软收购,然后就不再以独立的产品形式出现在市面上了。它目前作为一个Windows 7的加载项来强化Windows XP模式,只对Windows 7的高端SKU用户可用。
Parallels。这家公司以他的Mac产品Parallels桌面著称——Windows最常见的运行方式是在Mac上进行的模拟——但是他们同样为相同的程序开发Windows和Linux版本。它的功能不像VMware和VirtualBox那么复杂——例如,它不支持多个CPU的模拟。
QEMU/DOSBox/Bochs。这是一个自主编写的开源虚拟机和机器模拟应用程序,不过它们的主要使用者是相关领域的专家。QEMU模拟了所有不同的处理器架构——不仅仅是全部x86家族产品,还有诸如ARM、PowerPC和其它很多种类的构架。DOSBox则是用来运行传统的DOS应用程序——通常是游戏,但是也适用于从来没有移植到其它平台上的商业软件。Bochs可以模拟所有典型PC上所发现的x86指令和设备,主要用来在开发期间调试新的操作系统,而不是运行终端用户应用程序。
#p#
硬件要求
使用一台虚拟机需要主机拥有足够可供虚拟机使用的备用内存和磁盘空间。如果你想创建一台拥有1GB内存和200GB硬盘的虚拟机,你的主机上就至少需要有相应多可供随意使用的内存和存储空间。这就是为什么直到最近桌面虚拟化才开始普及起来的主要原因。因为现在内存和存储的价格非常便宜,所以即便是在中端PC上实现虚拟化也成为了可能。
虚拟机解决方案受益于相关的硬件辅助。这就意味着用户通过选择某些类型的处理来运行虚拟机的时候可以得到***效果,这些处理器的运行指令都是为虚拟化而设计的。英特尔处理器支持VT-x扩展和AMD芯片。并非所有当今的CPU都包括这些扩展,所以任何人在执行虚拟化的时候都应该确认自己的处理器包括这些这些扩展。
#p#
虚拟机的扩展
虚拟机的设计是为了在不做修改的情况下运行大多数操作系统。用户通常可以在启动安装媒体之后安装操作系统,就像在实际电脑上所做的那样。这就是说,在安装完毕之后,用户同样可以安装一系列工具(事实上是一个设备驱动包),这样可以帮助他们更好整合客户操作系统和它们的主机。
这些工具对在VirtualBox和VMware下运行的Windows和Linux可用,功能包括双向剪贴板共享、增强图形(包括支持主机的3D硬件加速功能)以及更加紧密集成的网络等等。不过这些加载项都无关大碍,因为即便是没有它们,客户操作系统依然能够顺利地运行。但是它们确实有助于用户的日常使用,特别是会让一些工作变得更加简单。例如,客户和主机之间网络集成让两者之间文档复制变得十分便捷。
#p#
未来趋势
由于虚拟化已经成为今天IT界的基础技术,特别是在服务器领域,它的发展势必会影响任何其它领域的计算技术。以下列出几个值得我们关注的未来发展趋势。
现在的虚拟化的运作大多受操作系统和硬件的支持。虚拟化所面临的下一步将是成为系统默认值——作为所有在管理程序之下运行的操作系统的标准行为,或者让操作系统本身使用一种类似的区分模式,来保证不同用户之间内容的分离。无论是使用何种硬件或者操作系统,所涉及的硬件和操作系统都将会通过一个行业标准设置界面进行相互交流。
另一方面则是更紧密集成的I/O密集型资源,比如网络或者磁盘硬件。在这方面的进步需要与硬件厂商进行密切合作。不过出于对未来利益的考虑,他们会开发出能够很好地胜任虚拟化的硬件,这些硬件可以在虚拟环境下表现得非常出色,能够提供虚拟化环境下所必须的功能,而这些功能在非虚拟化的环境下则不能实现。比如,在两台或者更多的虚拟化操作系统之间自动创建同一物理磁盘的不同版本。
这也就意味着不同程度的虚拟化解决方案将无处不在。不仅仅在服务器中,而且存在于桌面之上——特别是当桌面上拥有足够的存储、内存和CPU能力来支持虚拟化解决方案的时候。现在我们还不清楚本地支持的未来桌面系统将会提供提供何种形式的虚拟化(Windows 7的XP模式是我们首先想到的***步)。在移动设备上的虚拟化也不容忽视,特别是随着类似VMware MVP这类产品的问世,多个移动操作系统就可以通过虚拟机并存于一台设备之内。
***,软件开发者应该开始考虑把虚拟化看作是一种计算环境中的常见元素,这一点变得越来越重要,就像他们此前不得不去思考和计划使用多核技术一样。
原文名: Desktop Virtualization, Virtual PCs: Apps and Trends 作者:Serdar Yegulalp
【编辑推荐】