x86硬件辅助虚拟化之虚拟机与VMM(1)(4)
x86体系虚拟化遭遇ISA set缺陷
Popek和Goldberg在1974年发表的那篇论文中给出了一个真正的VMM必须满足的三个条件:高效性、资源控制和同质性。高效性是指所有的安全指令都可以在本地硬件上直接运行而不需要VMM的干预或仿真,资源控制是指任何客户机软件都不能改变它可用的系统资源分配,同质性是指抛开性能略微下降的因素,虚拟机上执行的任何程序的行为必须和在本地机器上运行一样。这里面我们之所以重点关注高效性,是因为x86指令集系统本身存在问题——有少部分指令不能在以前的虚拟化环节中进行正常VMM陷入,导致指令执行失败,使得这个条件难以满足。要理解其中的问题,我们首先要了解CPU虚拟化的基本原理、特权级别和敏感指令。
VMM通常分为三种类型