原文链接:kvm: the Linux Virtual Machine Monitor
Abstract
KVM是一种子系统(subsystem),他可以帮助Linux系统进行虚拟化扩展,并添加VMM功能。
x86架构扩展
- x86是臭名昭著的难以虚拟化
- 一些指令不会被捕获,也就不会形成“trap”
- 基于上述问题,x86提供商对该结构进行了扩展,这些扩展使得该架构更容易虚拟化,虽然这些扩展彼此不兼容,但是他们实质上是相似的,包括:
- 新的guestOS模式:处理器可以转成客户机模式,该模式具有正常操作模式的所有常规特权级别,除了系统软件可以选择性地请求捕获某些指令或某些寄存器访问外
- 硬件状态转换:在guest模式切换的时候,硬件到切换控制寄存器(CR),CR可以影响处理器和段寄存器,和指令指针。CR可以控制传输生效。
- 退出原因报告:从guest‘模式切换回host模式时,硬件会报告切换原因,以便软件可以采取适当的措施