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的條件,包括執行某些指令或者遇到某些事件發生。
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的條件,包括執行某些指令或者遇到某些事件發生。