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操作系统。