cpu虚拟化有三种方式:
全虚拟化、半虚拟化、硬件辅助虚拟化
1.全虚拟化:
Guest OS发布特权指令,产生越权操作,触发vmm获取Guest OS发的特权指令,进行翻译后执行,并反馈给Guest OS,让Guest OS以为自己就处于ring 0的地位。这种的vmm获取、翻译、反馈效率太低。
2:半虚拟化:
将Guest OS针对特权指令进行修改,调整为通过调用函数的方式去执行,让vmm直接去执行。但是效率还是低。
3:硬件辅助虚拟化:
cpu出现两个模式:root模式-host os运行在该模式;非root模式-guest os运行在该模式,通过中断机制,实现cpu在两种模式的切换。此情况下guest os可直接下发特权指令,交由硬件去执行。此种需硬件支持:amd-v、vt-x