computer_knowledge_notes/Hardware/Intel/VT-x.md

1.6 KiB
Raw Blame History

简介

Intel的虚拟化技术包含了三方面的虚拟化CPU虚拟化是VT-x或VT-i内存虚拟化是EPT(Extended Page Table)I/O虚拟化是VT-d(Intel Virtualization Technology for Directed I/O)。

VT-x是Intel虚拟化技术的指令集在x86平台上的VT技术被称为VT-x在itanium平台上的VT技术被称为VT-i

intel-vmx

它引入了VMX操作模式有两种VMX操作模式VMX root operation是为VMM/Hypervisor使用的其行为与传统的IA32一样VMX not-root operation则是为Guest使用的是在VMM控制下的IA32环境。Guest是运行在Ring0下的Guest运行的指令一般可以直接控制硬件只有需要执行特殊指令才会切换到VMM。

VMX操作流程

  1. 执行vmxon指令进入VMX操作模式。
  2. 执行vmlaunchvmresume指令产生VMEntry操作进入到Guest OS。
  3. Guest OS执行特权指令导致VMExit操作陷入到VMM。
  4. VMM可以通过vmxoff指令退出VMX操作。

intel-vmcs

VT-x设计了一个Virtual-Machine Control Structure(VMCS)的数据结构CPU在发生VMEntry或VMExit时都会查询和更新VMCS。

  • 03字节VMCS版本标识
  • 47字节VMX中止的原因
  • 8字节end数据区。由3个部分组成控制区域(虚拟执行控制域VMExit控制域VMEntry控制域VMExit信息域)Guest区(寄存器状态,非寄存器状态)Host区(主要是VMM运行时的状态)。

Intel Virtualization Technology for Directed I/O: Architecture Specification