天天看点

虚拟机软件简介

1. 背景

在软件开发过程中,通常需要对不同的系统平台进行测试,而不同的系统平台,大多需要安装不同的操作系统,例如win32的windows系统家族以及基于unix/linux的操作系统。如果将这些操作系统安装在不同的机器上,或者将其安装在一台机器上,很多时候无法进行并行的测试。

虚拟机软件是现在在同一个操作系统中运行多种操作系统的功能。这里的虚拟机软件是指操作系统级别的虚拟机软件,当然还有应用程序级别的虚拟机软件,例如Java虚拟机等等。

本文主要介绍了几种常见的虚拟机软件,包括了开源的虚拟机软件以及商用的虚拟机软件。首先将每种虚拟机软件进行简要的功能说明,然后纵向的比较这几种虚拟机软件。

2. VMWare

确切的说,应该是VMWare Workstation。这是笔者最开始接触到的一个虚拟机软件,主要使用该软件进行多系统的并行测试。

VMWare Workstation只是VMWare产品家族中的桌面产品一种。其他一些产品诸如VMWare vSphere(数据中心产品),VMPlayer(免费的虚拟机使用软件-不可以创建虚拟机)等。

通过注册,可以免费获取VMWare Workstation的30天试用版本,超过30天后,软件将不能再使用。但是VMPlayer一样可以运行VMWare Workstation创建的虚拟机。当然,VMWare的功能相对有很多限制。

[tip:运行VMWare软件的操作系统叫做host system,VMWare里面运行的操作系统叫做guest system]

VMWare可以运行多种主流的操作系统。例如对于windows操作系统,涵盖了windows 3.1,95,98,me,NT,2000 pro/server/advance server, xp home/pro, vista, server2003 standard/enterprise, server2008等版本以及对应的64bit版本(如果存在的话)。对于Linux操作系统,包含了RedHat 2/3/4/5, SUSE, Novell, Sun java desktop system, Mandrake,Ubuntu以及未列出的Linux2.2/2.4/2.6内核的操作系统及对应的64bit操作系统(如果存在的话)。当然还包括Novell Netware,Sun Solaris,DOS,BSD*操作系统。

在创建操作系统时,可以指定操作系统(虚拟的)运行的虚拟硬件环境,如下图所示:

例如内存,硬盘,光驱,网卡,USB控制器,声卡以及处理器个数等等。

同时,对于虚拟操作系统(guest系统),可以设置和主机的共享目录,设置网络连接方式(无网络,只和host系统连接,访问internet等),对虚拟操作系统进行某一时刻的snapshot,对运行的guest系统进行录像/捕捉屏幕/保存状态/暂停/重启,在host/guest操作系统之间进行全屏幕的切换等等个性化的设置。

同时,对于虚拟操作系统,可以通过安装VMWareTools进行网络,显卡控制器,鼠标,键盘等进行驱动的安装,从而保持guest操作系统的可用性。

开发team中的一个用户设置好虚拟机之后,可以通过clone的功能,分发给team内的其他成员使用,以保证环境的一致性。

虚拟机软件简介

下图显示了一个运行在windows操作系统中的RedHat Linux操作系统。

虚拟机软件简介

VMWare Workstation的优点是作为商用软件的稳定性和安全性,同时功能相对强大,并且提供了多平台的版本(Windows/Linux),而guest操作系统也是多平台的操作系统。

缺点自然就是它不是Free软件或者开源软件。并且不提供Community的版本。几百美元对于普通的开发人员还是有些昂贵。

VMware Workstation 6.5 for Windows/Linux: $189.00

VMware Workstation 6.5 for Windows/Linux 5 Pack: $899.00

VMware Workstation 6.5 for Windows/Linux 10 Pack: $1,690.00

3. Sun xVM

对于Sun的VirtualBox的介绍,就对其官方的介绍文档进行一下翻译吧。

无论是对于个人还是企业,VirtualBox都是功能强大的x86/AMD64/Intel64虚拟产品,它不仅仅对于企业来说性能丰富,性能高效,对于个人用户来说,也是开源的唯一专业软件。

目前,VirtualBox运行于Windows,Linux,Mac以及OpenSolaris系统,同时支持非常多的guest操作系统,例如Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris, and OpenBSD等等。

VirtualBox被持续的开发,连续的发布带有新的功能的版本。VirtualBox是community产品,同时由Sun公司来保证其专业性。

下图显示了一个运行于Sun VirtualBox中的CentOS操作系统。

虚拟机软件简介

(Windows上的CentOS)

虚拟机软件简介

(Fedora上的Ubuntu)

VirtualBox同样可以在设置guest系统运行的硬件环境,host/guest操作系统之间进行全屏幕/无缝/自动调整屏幕,进行快照操作,设置共享目录,随时insert/release CDROM,安装各种驱动程序,设置网络连接模式,其支持的guest操作系统的分类比VMWare更加的详细主要体现在Linux和Solaris操作系统,设置硬盘分区的个数等等。

VirtualBox最大的优点还是在于其开源性,用户不仅可以使用免费的软件,设置可以通过svn获取整个项目的source:svn co http://www.virtualbox.org/svn/vbox/trunk vbox。

其次,多平台,多guest操作系统平台,丰富的虚拟机功能也是其优点。

4. Microsoft VirualPC

微软公司的VirtualPC是一款guest操作系统只能为windows操作系统的虚拟机软件。对于创建的guest操作系统,可以进行的设置选项包括:内存,硬盘,CD/DVD-ROM,COM接口,LPT接口,网络服务,声卡,鼠标,共享目录,显示模式等。和其他的虚拟机软件不同的是,Microsoft Virtual PC可以设置多个虚拟机网络适配器,相当于有多块虚拟网卡。

如下图所示,一般网络的设置包括(不使用网络,仅本地连接,仅访问主机的网络,Internet网络,共享网络等几种)。

虚拟机软件简介

同样,VirtualPC也包含全屏幕切换,加载光驱,安装guest操作系统的设备驱动等功能,但是相对前面介绍的两种,其功能相对较少一些。

虚拟机软件简介

由于本身只能运行于Windows操作系统中,所以软件的兼容性很好,鼠标的集成(在host和guest系统中跨跃时的连续性等)也比较好。

但是相对于VMWare和VirtualBox,VirtualPC只能运行于Windows操作系统,并且其guest操作系统只能为windows操作系统,所以应该说是为windows软件开发人员设计的虚拟机软件。同时,作为商业软件,普及到一半用户的几率相对较小。

5. Xen

“Xen采用开放式的开发模型,支持工业标准的管理API;同时我们与安全社区建立了紧密的关系,确保hypervisor的安全性。这使得Xen继续领先于那些封闭开发的私有hypervisor产品。” - Ian Pratt,Xen创始者与Xen.org奠基人

提高服务器利用效率、整合服务器资源、降低管理复杂性和整体拥有成本(TCO – Total Cost of Ownership),是企业选择服务器虚拟化的主要推动因素。Xen® hypervisor是当前最快和最安全的整体架构虚拟化解决方案,它支持主流的客户机操作系统,例如Windows®、Linux®、Solaris® ,以及BSD操作系统的不同版本。

在Xen虚拟化架构中,一个纤薄的软件层(Xen hypervisor)取代了原有运行在服务器和桌面机上的操作系统。这个软件层很好地抽象了物理资源,有效地将操作系统(以及运行其上的应用程序)和下面的物理服务器剥离开,从而允许一台物理服务器上同时运行一个或多个虚拟服务器。

Xen hypervisor是一项独一无二的开源技术,由Xen开源社区和来自于50多个公司的工程师共同开发。这些公司提供富有创新性的数据中心解决方案,包括AMD、Citrix、Dell、Fujitsu、HP、IBM、Intel、NEC、Novell、Red Hat、Samsung、SGI、Sun、Unisys和许多其它的业界领先者。Xen采用了GNU通用公共许可证(GPL2),在源代码和目标格式的使用上不需要付费。Xen将来也会一直采用开源模式,继续整合业界和Xen相关资源,加速虚拟化技术在企业中的普及。

Xen的设计理念结构如下(其实也是虚拟机系统的通用理念):

虚拟机软件简介

[笔者按:真是惭愧,Xen开源社区和50多个公司,那些公司中有美国,欧洲,日本,韩国,唯独没有中国的企业,不知道中国的IT巨头们在想什么。提起这个,笔者还有一点气,就是在现在开源软件的时候,或者大型的Linux开源操作系统时,一般主站都会分布镜像站点,中国多数时候只有北京或者上海交通大学有那么一个镜像站点(校内网/人人网还有个Apache的镜像呢!),而仅仅一个台湾省差不多有点名气的大学都会有镜像站点。日本的镜像站点也很多,很多时候一找Asia,就只能找到日韩和中国的台湾省了,不知道中国的相关信息产业委员会的满脑子浆糊的人在想什么]

另外就是Xen大会将于2009年在中国上海召开,点击这里更多信息。

虚拟机软件简介

由于笔者手头没有Linux的整机操作系统(虚拟机倒是一大堆,但是虚拟机里面再套虚拟机,内存如果有8G,我就做一个),关于Xen的图片从网上贴一个吧:

虚拟机软件简介

6. 比较

比较项目 VMWare Sun VirtualBox Microsoft VPC Xen
开源? X X
跨平台? X X (仅Linux)
虚拟机文件个数 多个文件 单一文件(vdi) 两个文件(配置+vhd)
获得某一时刻的快照 X X X
guest系统种类 L/W/S L/W/S/I L/W/S
安装虚拟机工具(设备驱动程序) X X X X
host/guest的平滑切换 X X X X

自定义的

CTRL+ALT+DELETE

(guest:windows)

X X X

L: Linux, W: Windows, S: Solaris, I: IBM OS/2

7. 小结

本文主要介绍了VMWare,Sun VirtualBox,Microsoft VirtualPC以及Xen等虚拟机软件,当然还有一些没有介绍的虚拟机软件(商业的/非商业的),之所以介绍VMWare和MPC这两种商业软件,是因为它们都有使用版本可以使用,如果只做短期的测试,是可以使用的。

IBM,HP自己有操作系统(z Series system, s Seriers system, HP-UX...)也有各自操作系统的虚拟机,但是都是商业的虚拟机。

另外,还有一种提供使用版本的是Parrallels虚拟机系统。但是其试用期非常短,只有14天,笔者申请的激活码如下:

Your trial activation key is listed below:

PRODUCT : Parallels Desktop 4 for Windows and Linux

ACTIVATION KEY : GW8KX2-ENJN1P-C02H11-M8DYGK-TMVFE0

START DATE : 2009/10/19

END DATE : 2009/11/01

To download Parallels Desktop 4 for Windows and Linux, please visit Parallels Download Center at

详细的虚拟机软件(OS级别) 请参考虚拟机软件比较。

x.参考资料

VMWare: http://www.vmware.com/

Microsoft VPC: http://www.microsoft.com/windows/virtual-pc/default.aspx

Sun VirtualBox: http://www.virtualbox.org/

Xen: http://www.xen.org/

Xen Intro by creator: http://www.xen.org/files/Marketing/XenBrochure_Q12009_chn.pdf

VirtualMache Wiki: http://en.wikipedia.org/wiki/Virtual_machine

VM comparison Wiki:

http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

继续阅读