虚拟机监视器(VMM)是一个系统软件,可以维护多个高效的、隔离的程序环境,该环境支持用户直接去访问真实硬件,而这样的程序环境就称为虚拟机。虚拟机是一个真实存在的计算机系统的硬软件副本,其中部分虚拟处理器指令子集以本地(native)方式执行在宿主(host)处理机上,其他部分指令以仿真方式执行。从以上定义可以看出,VMM管理计算机系统的真实资源,为虚拟机提供接口。使用VMM 有以下优点:
a)VMM的实现相比于Linux或Windows这类操作系统的实现要简单很多。因为VMM避免了像TCWIP Sockets和文件系统这类高级抽象,这将有利于安全性和可靠性,也便于扩展和修改。
b)VMM允许系统管理者配置虚拟机运行的环境。虚拟机的各项设置可以与真实机不同,如真实机有512 MB内存,可以设置虚拟机内存64 MB,有利于开发者在各种环境下测试软件。
c)VMM允许在相同硬件上同时执行不同的操作系统,称之为GuestOS。系统管理者可以用这种能力来联合多个使用不充分的分散计算机,为不可信和不安全代码增强了隔离性,同时增强了可靠性,在一个虚拟机中的软件发生故障也不会影响到其他虚拟机。
d)当操作系统升级后,仍然可以在虚拟机中运行早期开发的软件,由此可以降低软件开发成本。同时成本的降低还来源于减少硬件产品的购置。
e)针对拥有10~100个处理器的可扩展计算机,VMM能够方便地开发功能强大、可靠的系统软件。
f)虚拟机控制了程序运行的整个软件环境,包括操作系统和应用软件,因此可以封装程序地址空间和进程状态,然后在不同的硬件上热迁移(hot migration)整个工作环境,由此提高性能和达到负载平衡。