认识虚拟机第1章虚拟机(VirtualMachine)就是虚拟出来的计算机,它是用软件实现的一项虚拟功能。虚拟机的设计目的是供硬件和软件实验时使用,如使用IE浏览器访问危险的网站、测试病毒和黑客软件、安装第三方应用软件,看看其中是否捆绑恶意插件、安装各种操作系统、测试各种外接设备、组建各种网络环境。除此之外,用户也可以使用虚拟机进行一些日常应用,如浏览网站、发送邮件等。无论使用虚拟机进行怎样的危险测试,虚拟机都可以保证毫发无伤,并可以瞬间恢复如初,这就是虚拟机最大的魅力所在,也是为什么虚拟机能够拥有越来越多用户的主要原因!一台电脑学网管1.1走进虚拟世界一言以蔽之,虚拟机就是利用软件的方法在一台机器里模拟出多台计算机,这些虚拟的计算机看起来和真实的机器几乎一模一样。虚拟机有自己的BIOS,有一套完整的硬件设备,包括内存、硬盘、光驱、网卡、声卡、显卡等,可以有自己的操作系统和第三方应用软件。更神奇的是——所有的虚拟机可以通过虚拟网卡连接起来,就这样轻松组建了一个网络。虽然是虚拟的网络,但是在操作应用方法上和真实的网络并无不同之处。1.1.1初识虚拟机俗话说得好:耳听为虚,眼见为实,让我们来看一下如图1-1所示的虚拟机软件界面,这里按从左到右的顺序可以看到有WindowsServer2003、Windows2000、WindowsXPSP2和WindowsVISTA这几台虚拟机(选项卡)。图1-1虚拟机界面显然,在一款虚拟机软件中允许创建多台虚拟机,并可以自由地切换到某“台”虚拟机中。上图中共有四台虚拟机,加上本机(宿主机)就有五台计算机,组建一个小型网络的需求已经完全可以满足了。所谓“宿主机”就是指安装了虚拟机软件(如VMware)的机器,其全称为“宿主计算机”(HostComputer),宿主机里的操作系统称为“宿主操作系统”(HostOperatingSystem),在虚拟机里运行的操作系统称为客户操作系统(GuestOperatingSystem)。宿主机和虚拟机的结构关系如图1-2所示。图1-2结构示意如果打开如图1-3所示的虚拟机属性页面,那么,在这里可以看到虚拟机的硬件设备信息。在这里可以看出每台虚拟机都配备了内存、光驱、软驱、硬盘、显卡、USB端口、网卡等硬件设备。图1-3属性页面这些设备虽然是虚拟出来的,但却能够发挥出和物理设备一样的性能。需要说明的是,虚拟机使用的CPU、键盘、鼠标和宿主机是一样的,无法手工进行指定(更为详细的解释请见1.1.3小节的内容)。1.1.2虚拟机的作用为什么要使用虚拟机?这是因为虚拟机可以第1章认识虚拟机带给我们很多实实在在的帮助,比方说如下这些方面:1.全面的实验功能由于虚拟机具备完整的硬件功能,所以,无论是硬件、网络、安全或是应用软件实验,都可以在虚拟机中进行。以测试操作系统为例,不管是最新的WindowsServer2008,还是十几年前的DOS,或是Linux、FreeBSD这样的非微软操作系统,都可以在虚拟机中进行安装、测试。如果在宿主机中进行这样的测试,往往需要对某个分区的数据进行转移、备份,对分区进行普通或特殊的格式化、整理碎片等操作。这一切在虚拟机中,只需选择要安装的操作系统类型就可以了,如图1-4所示。我们无需对宿主机进行复杂的设置。图1-4指定操作系统类型特别是在测试“危险”的黑客程序时,虚拟机的作用尤其让人爱不释手,不管是多么利害的病毒,也不会影响到宿主机系统的正常运行,我们尽管隔岸观火便是。2.强大的学习功能探索和学习新的知识是IT人士必不可少的,以学习网络知识为例,IT人士面临的尴尬问题是:单位里的机器因为有专业的网管,不允许进行实验。家里的机器数量不够试验,因为往往只有一台计算机,想买台新的计算机,往往囊中羞涩。通过使用虚拟机,可以彻底解决这个问题——只要硬盘够大,我们就可以虚拟出N台虚拟机,要测试路由、网桥、域……等网络功能,尽管一一试来。特别是在硬盘、内存已是白菜价的今天,随便配个双核CPU就能在宿主机中创建出十台八台的虚拟机了,而且每台虚拟机中安装的操作系统还可以不一样,这就为多台计算机、多种操作系统的网络环境测试提供了坚实的实验平台。尽管去放心大胆的探测网络知识的奥妙吧,即使出现错误也只需要使用快照(SnapShot)功能,即可在几秒钟内让虚拟机恢复如初,如图1-5所示。图1-5恢复功能1.1.3虚拟原理要创建虚拟计算机,必须具备相应的软件。这样的软件有VMwareWorkstation、VirtualPC2008等。在本书中,使用的是VMwareWorkstation这款出色的PC虚拟软件,它是由VMware公司开发,该公司虚拟机产品线的成员有:VMwareWorkstation、VMwareGSXServer(已经更名为VMwareServer)、VMwareESX等。其中,Server产品是虚拟机的服务器版本,而本书将要着重介绍的VMwareWorkstation则属于桌面版的虚拟机一台电脑学网管工具。VMware利用其专业的VMware虚拟层(VirtualizationLayer)技术,可以把宿主机的物理硬件资源映射成为虚拟机的资源,所以,每个虚拟机都能有自己的CPU、内存、磁盘、I/O设备,每个虚拟机可以拥有彼此独立的操作系统和应用程序,如图1-6所示。图1-6虚拟架构由于每台虚拟计算机都运行在一个受保护的内存地址空间里,所以,它们彼此之间能够保持良好关系,互不干涉。一旦某台虚拟机在实验时崩溃了,也不会连累宿主机器和其他的虚拟机。也就是说,宿主机和虚拟机在运行上是互不影响的两个独立部分。对虚拟机的添加、删除、修改等操作,对宿主机的影响仅仅是硬盘的可用空间有了相应的减少或增加。在硬件性能影响方面,宿主机的性能越好,越不会有明显的“迟缓”现象。也就是说,宿主机中可以同时运行的虚拟机数量,要根据宿主机的性能而定,不能指望在一台“老迈”的宿主机上同时运行多台虚拟机。下面,对虚拟机模拟的每个硬件做一个简介:CPU:和宿主机使用一样的CPU。因此,虚拟机在运行时会对宿主机的CPU产生占用率,如图1-7所示。图1-7VMware的CPU动态占用率主板:使用了北桥为Intel82443BX/ZX的主板,虽然已经严重过时,但是在虚拟机中还能够用,如图1-8所示就显示了使用Everest这款程序检测主板时的信息。图1-8使用的主板类型BIOS:PhoenixBIOS4.0第6版(VESABIOS),在如图1-9所示中显示了使用“eSupportBIOSAgentVersion3.66”检测得到的BIOS信息。图1-9检测信息第1章认识虚拟机5内存:最多可以使用5988MB的内存,但通常是使用默认值即可,如图1-10所示。图1-10内存设置显卡:使用了VMwareSVGAⅡ显卡,但是大多数时候,必须安装VMwareTools才可以正常工作,如图1-11所示。图1-11设备管理器声卡:CreativeAudioPCI,不支持MIDI、游戏控制器、游戏手柄。网卡:VMwareAcceleratedAMDPCnetAdapter,即使宿主机没有网卡,VMware也可以具有虚拟网卡,用来和宿主机进行通信,但是这种情况下,虚拟机不能和外部网络进行通信。软驱:宿主机上必须有软驱,否则虚拟机中无法正常使用软驱。键盘鼠标:不管你的鼠标是什么接口,VMware虚拟机一律使用PS/2鼠标。同时采用104-keyWindows95/98增强型键盘。磁盘:IDE硬盘或者Mylex(BusLogic)BT-958SCSI硬盘,不过WindowsXP/WindowsServer2003不带BusLogicSCSI设备驱动程序,必须到VMware的网站去下载。TIPS不管宿主机采用什么样的硬件配置,VMware虚拟机总是模拟几乎一样的硬件设备,唯一例外的就是CPU,虚拟机模拟的CPU和宿主机完全一样。1.2安装VMwareWorkStationVMwareWorkStation的安装稍微有点儿的复杂,其安装过程为:下载安装程序→申请试用许可证号→执行安装。在本小节中,将讲解VMware-workstation-6.5.1-126130.exe这个版本的安装过程。1.2.1基本要求本例使用的VMwareWorkstation版本为6.5.1-126130,此版本的功能十分强大,但同时它对于软硬件系统的要求也相当高。因此,在下载完成并执行安装之前,建议适当了解一下VMwareWorkstation对软硬件环境的需求,如表1-1所示。表1-1VMwareWorkstation对硬件环境的要求CPU至少1200MHz,推荐使用支持64位的双核CPU。一台电脑学网管6内存至少384MB内存,推荐2GB。如果需要利用VMwareWorkstation做有关路由、Windows域等网络实验,则最好需要512MB、乃至1GB以上的物理内存,因为这些网络实验需要同时启动多个虚拟机。硬盘安装VMwareWorkstation需要1GB左右的磁盘空间,同时每个虚拟机中安装的操作系统还需要大量的空间,推荐硬盘160GB以上。每个虚拟机的硬盘空间需求,和真实计算机的硬盘空间需求基本一样,例如在虚拟机里完全安装RedHatLinux9.0,至少需要约4.8GB硬盘空间。显示器至少支持1024×768分辨率,推荐1280×1024或以上需要做进一步说明的是,虚拟机的虚拟磁盘有两种模式:一是直接使用宿主机上的磁盘分区。虚拟机的磁盘性能直接取决于物理磁盘的性能,要远远好于使用映像文件。笔者做过一个实验,直接使用物理磁盘作为虚拟机磁盘时完全安装RedHatLinux9.0,只需35分钟,而采用映像文件,则需要将近80分钟!但是由于虚拟机直接可以存取物理磁盘,这可能会导致数据在安全性、灵活性等方面不够好。二是使用存放在物理硬盘上的映像文件,扩展名是vmdk,如图1-12所示。图1-12文件后缀名可以说这两者各有利弊,直接使用磁盘分区作为虚拟磁盘则读取速度快,而使用vmdk映像文件作为虚拟磁盘,其优势是虚拟磁盘的容量大小可以随着实际需要而变化,同时安全性比较好,因为虚拟机只能访问映像文件,而不会破坏宿主机的文件。同时,灵活性也显得比较好,例如安装Linux的时候,我们不需要另外为Linux划分专门的分区,直接可以使用Windows分区上的vmdk映像文件即可。使用vmdk映像文件作为虚拟磁盘,唯一的缺点就是存取速度比较慢。在软件环境的要求上,需要注意VMwareWorkstation必须安装、运行在以下具有NT内核的Windows系统上:*WindowsServer2003WebEdition、WindowsServer2003StandardEdition、WindowsServer2003EnterpriseEdition*WindowsXPProfessional(含64位版本)和WindowsXPHomeEdition*Windows2000Professional、Windows2000Server、Windows2000AdvancedServer*WindowsNTWorkstation4.0ServicePack6a,WindowsNTServer4.0ServicePack6a,WindowsNT4.0TerminalServerEditionServicePack6,这里注意必须带ServicePack6(a)1.2.2申请序列号首先,需要在VMware的官方网站(或国内的一些网站)中下载VMwareWorkStation,大小约为500MB,下载网址为:我们应该经常到VMware的网站看看是否有最新版本公布出来,通常来说,新版本可以解决老版本的一些Bug,同时可能获得更高的性能。第1章认识虚拟机7由于VMwareWorkstation是一个商业软件,价格不菲,所以,通常都是先申请一