一、虚拟机的概念 所谓虚拟机,顾名思义,就是指一台虚拟的计算机。它的虚拟的含义,是相对于我们日常使用的物理计算机来讲的。物理计算机我们摸得到,看得见,CPU、硬盘、内存等等,这些设备我们都可以实实在在地接触到。而虚拟机,则是一种被虚拟化的技术,虚拟机中的CPU、内存等硬件设备我们都看不见,但是我们可以使用它们,可以使用虚拟机中的硬盘来存储数据,使用虚拟机中的网卡来连接网络,其实这些功能都是由程序模拟出来的,但是我们在使用过程中,并没有感觉到和真实的计算机有什么不同,这就是神奇的虚拟机技术。
而虚拟机技术最直接的应用,就是虚拟机软件。其最大的作用就是在一台普通计算机上模拟出另外一台乃至数台能够单独运行的操作系统,甚至还可以将这几个操作系统连成一个虚拟的局域网络。
二、虚拟机技术的几种应用 1.JAVA 虚拟机技术
众所周知,JAVA语言是一种跨平台的语言,JAVA语言编写的程序可以在Windows、Linux、UNIX等多种平台上运行,号称“一次编译,到处运行” 。那么是什么神奇的技术使其有这么强大的功能呢?其实这都是虚拟机技术的功劳,而JAVA虚拟机则叫做JVM (JAVA Virtual Machine)。JVM处于操作系统和JAVA语言之间,负责将高级语言JAVA转换成操作系统能够理解的语言,如图1。
![请添加描述](/ncre/Files/2007-8/23/134719504.jpg)
图1 JVM所处于的位置
当JAVA语言在各个操作系统平台运行之前,需要安装相应的JVM程序,然后再将其语言进行编译,就可以运行在该操作系统上了。
2.虚拟机在杀毒软件中的应用
虚拟机在杀毒软件中也有着极为重要的应用,这主要表现在虚拟机脱壳上。壳是一种加密手段,病毒程序通过加壳来改变自身特征码,以躲避杀毒软件的查杀。较常见的壳有“UPX”、“NsPack”、“PePack”、“PECompact”、“ASPack”等。病毒加壳,就好比穿上“马甲”一样,而脱壳技术,就好比一把照妖镜,可以将加壳病毒显现原形。因此,杀毒软件都需要具有脱壳能力,其脱壳能力的好坏,直接影响着杀毒效果。目前在杀毒软件中,脱壳技术主要有两种,一种是靠程序脱壳,即针对每一种壳,都编写相应的脱壳程序,杀毒时先将加壳的程序脱壳后,再进行特征码匹配杀毒,这种方法的优点是脱壳速度很快,节省系统资源,但是当遇到新壳时,就无能为力了。因此又出现了虚拟机脱壳技术。
虚拟机脱壳技术,就是在杀毒软件内部,虚拟出来一个环境,让病毒在其中运行,等病毒脱掉它的“马甲”之后,在进行特征码的匹配杀毒。虽然现在的技术还无法在杀毒软件中完全虚拟出来一个真实的硬件环境,但是随着技术的进步,相信在不远的将来,虚拟机杀毒技术将是杀毒软件领域的新突破。
3. 商用虚拟机软件
目前,最为成功的商用虚拟机软件,无疑要数VMware 和 Virtual PC了,下面就简单介绍一下VMware这款优秀的虚拟机软件。
VMware可以虚拟出各种主流操作系统,如图2。
![请添加描述](/ncre/Files/2007-8/23/134717237.jpg)
图2 VMware 能虚拟出各种主流操作系统