填充Guest与Host寄存器状态
VT是Intel的硬件虚拟化技术,说到VT,就不得不提虚拟机(例如VMWare)。在硬件还没有支持VT前,系统级的虚拟机其实是很难做的,要考虑的东西非常多(主要是效率问题,因为用软件模拟东西资源开销比较大)。VT技术主要就是为了解决这个问题而诞生的,有了VT后,可以减少非常多的资源开销,让虚拟机的速度接近于真机速度。
那么VT到底是个什么技术呢?
首先要说一下VMM(Virtual Machine Monitor),这个是虚拟机的监控器,监控着虚拟机的运行。比如虚拟机想执行一条指令:cpuid,这个时候被VMM捕捉到,然后VMM去模拟执行这条指令,然后返回给虚拟机,完成了一次vm exit。因为VMM需要执行ring0的指令,所以VMM需要运行在ring0下。
而VT使得CPU进入了一个全新的特殊模式(VMX模式),在这个模式下,CPU可以处于VMX root状态或者VMX non-root状态。处于VMX non-root操作状态下的CPU行为受到了某些方面的限制,关键的共享资源必须运行于VMX root操作状态的监控器的控制之下,并且,对于VMX non-root状态中的任何CPU特权都有效(只要处于VMX non-root状态,ring0 - ring3 都被监控)。因此,将VMM运行于VMX root操作状态,可以轻松监控管理客户操作系统(就是安装在虚拟机里面的操作系统)和客户应用程序(虚拟机里面操作系统里面安装的软件)
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
课程大纲