我在这里说说自己对这款部分的看法。小小的总结一下:intel VT技术中有很多当类别,而VT-x技术说的通俗点就是硬件对于CPU虚拟化的支持,在没有VT技术之前我们有很多的软件技术来支持虚拟化,比如二进制代码转换,影子页表等等,但是不可否认的是,这些技术上总有一些瑕疵,比如二进制转化会影响效率,比如影子页表的实现很复杂,于是有了硬件虚辅助虚拟化技术。来解决以前棘手当问题。
VT-X技术:
1、VMX操作模式,这个操作模式下分为两种,root和non-root模式,顾名思义一种叫根模式一种叫非根模式,根模式是VMM运行当层级,而非根模式是guest OS运行的层级。在这两种模式之间有一个叫VMCS(Virtual-Machine Control Structure)的东西,来保存两种模式下当状态。而在我们实际运行的时候,VMX就在这两种模式下进行着切换。从non-root到root模式称为陷入,也就是当使用者出发特权指令的时候会发生这个行为。从root到non-root叫调度,也就是VMM处理完特权指令,将控制权交给Guest来执行当的时候。
VMCS在干什么?
VMCS存储一下6大信息
1、客户机状态域。
2、宿主机状态域。
3、VM-enter控制域:控制VM-enter行为。
4、VM-exit控制域:控制VM-exit行为。
5、VM-Execution.
6、VM-exit信息域。
这六部分组成。
在根模式和非根模式切换当时候,这个VMCS会保存寄存器CR-、0,CR3,CR4, DR7,CS,SS,CD,ES,FS,GS,以及影子页表等一系列东西。
以上基本就是VT-X的大体工作流程。
阅读(8486) | 评论(0) | 转发(1) |