處理器虛擬化——VMX


Intel提供3個層面的虛擬化技術(Intel Virtualization Technology)
  1.基於處理器的虛擬化技術(Intel VT-X) 全稱為 Virtualization Technology for x86
  2.基於PCI總線域設備實現的I/O虛擬化技術(Intel VT-D) 全稱為Virtualization Technology for Directed I/O
  3.基於網絡的虛擬化技術(Intel VT-C) 全稱為Virtualization Technology for Connectify

  VT 是對資源的虛擬化管理的結果
  在CPU端的虛擬化里 實現了VMX(Virtual-Machine Extensions,虛擬機擴展)架構
  包含兩種角色環境 VMM(Virtual Machine Monitor,虛擬機監管者)host
  VM(Virtual Machine,虛擬機)guest
  guest端軟件訪問的資源受到VMM的監管

VMM通過EPT(Extend Page Table,擴展頁表)來實現“guest端物理地址到Host端物理地址”的轉化
使得Guest訪問到其他的物理區域
在開啟EPT機制下 會產生兩個地址概念:GPA(Guest Physical Address) 和 HPA(Host Physical Address)
HPA 真正的物理地址

在VMX架構下 至少需要實現一個“VMXON region” 以及 “VMCS region”的物理區域
VMXON區域對應於VMM VMM使用VMXON區域對一些數據進行記錄和維護
每個VM需要對應自己的VMCS(VIrtual Machine Structure 虛擬機控制結構)
VMM使用VMCS來配置VM的運行環境 以及控制VM的運行


檢測VMX支持
VMX支持 檢測CPUID.01H:ECX[5].VMX位來確定是否支持VMX架構 1表示支持

開啟VMX進入允許
要開啟VMX operation模式 必須先開啟CR4.VMXE控制位 1表示開啟

VMX root operation模式處理器的CPL(Current Privilege Level) 必須為0 VMM運行的環境
VMX non-root operation VM運行的環境

root ----------> non root VM-entry
non-root ---------> root VM-exit


導致VM exit發生的三大類途徑如下。
1) 執行無條件引發VM exit的指令。包括CPUID,GETSEC,INVD與XSETBV指令以及所有的VMX指令(除了VMFUNC指令)
2) 遇到無條件引發VM exit的未被阻塞的事件。例如,INT信號,SIPI消息等。
3) 遇到VMM設置引發VM exit的條件,包括執行某些指令或者遇到某些事件發生。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM