CPU硬件虛擬化
傳統(tǒng)處理器
傳統(tǒng)的處理器通過選擇不同的運(yùn)行(Ring 特權(quán))模式词顾,來選擇指令集的范圍,內(nèi)存的尋址方式牙咏,中斷發(fā)生方式等操作早直。
硬件虛擬化處理器
在原有的Ring特權(quán)等級(jí)的基礎(chǔ)上,處理器的硬件虛擬化技術(shù)帶來了一個(gè)新的運(yùn)行模 式:Guest模式[1]沉填,來實(shí)現(xiàn)指令集的虛擬化疗隶。當(dāng)切換到Guest模式時(shí),處理器提供了先前完整的特權(quán)等級(jí)翼闹,讓Guest操作系統(tǒng)可以不加修改的運(yùn)行在物理的處理器上斑鼻。Guest與Host模式的處理器上下文完全由硬件進(jìn)行保存與切換。此時(shí)猎荠,虛擬機(jī)監(jiān)視器(Virtual Machine Monitor)通過一個(gè)位于內(nèi)存的數(shù)據(jù)結(jié)構(gòu)(Intel稱為VMCS, AMD稱為VMCB)來控制Guest系統(tǒng)同Host系統(tǒng)的交互卵沉,以完成整個(gè)平臺(tái)的虛擬化。
IO虛擬化
傳統(tǒng)的IO操作
傳統(tǒng)的操作系統(tǒng)通過硬件MMU完成虛擬地址到物理地址的映射法牲。
虛擬化傳統(tǒng)IO實(shí)現(xiàn)
在虛擬化環(huán)境中史汗,Guest的虛擬地址需要更多一層的轉(zhuǎn)換,才能放到地址總線上:
Guest虛擬地址 -> Guest物理地址 -> Host物理地址
^ ^
| |
MMU1 MMU2
其中MMU1可以由軟件模擬(Shadow paging中的vTLB)或者硬件實(shí)現(xiàn)(Intel EPT拒垃、AMD NPT)停撞。MMU2由硬件提供。
IO虛擬化技術(shù)
系統(tǒng)的IO虛擬化技術(shù)悼瓮,通常是VMM捕捉Guest的IO請(qǐng)求戈毒,通過軟件模擬的傳統(tǒng)設(shè)備將其請(qǐng)求傳遞給物理設(shè)備。一些新的支持虛擬化技術(shù)的設(shè)備横堡,通過硬件技術(shù)(如Intel VT-d)埋市,可以將其直接分配給Guest操作系統(tǒng),避免軟件開銷命贴。
[1]X86處理器的生產(chǎn)廠商有自己的稱謂道宅,比如英特爾將Guest模式稱為non-root operation,與之相對(duì)的是root operation胸蛛,本文稱為host模式污茵。