CPU硬件虚拟化,也就是CPU硬件辅助虚拟化(CPU Hardware Assisted Virtualization)为了实现虚拟化,VMWare走了全虚拟化的道路,而Citrix和微软等走了半虚拟化的道路。全虚拟化因为不需要修改操作系统即可直接使用,所以支持的操作系统很多,但因为中间有一个指令的二进制转译的过程,所以性能比较差一点。半虚拟化则恰好相反,它修改了GuestOS系统,植入了HyperCall,让GuestOS部分指令可以直接运行到Ring 0级别,这样性能得以保存。但是因为要改操作系统,而很多操作系统不愿意被修改(比如微软的Windows),而有些操作系统又无人去修改,所以导致的结果就是支持的操作系统比较少。等到虚拟化很火了,Intel和AMD也坐不住了,他们提出要从CPU的根本架构着手,解决这个全虚拟化和半虚拟化的问题。他们把CPU原来的Ring 0、1、2、3四个级别设定为非Root模式特权级别,然后再增加了一个Root模式特权级别,有人将这个级别称之为Ring -1(负一),可以想见,就是比Ring 0还要底层的权限级别。VMM就运行在Ring -1上,而让GuestOS运行到Ring 0上,这样从Guest OS到VMM就不需要Binary Translation或Paravirtualization了。在Intel公司,这个技术叫Intel VT;ADM公司则叫AMD-V。使用了CPU硬件虚拟化,全虚拟化厂商的性能追上了半虚拟化厂商,而半虚拟化厂商也可以支持不修改内核的操作系统了(例如Windows和绝大多数Linux)