硬件虛擬化較純軟件虛擬化的優(yōu)勢(shì)

CPU硬件虛擬化

傳統(tǒng)處理器

傳統(tǒng)的處理器通過(guò)選擇不同的運(yùn)行(Ring 特權(quán))模式,來(lái)選擇指令集的范圍,內(nèi)存的尋址方式,中斷發(fā)生方式等操作。

硬件虛擬化處理器

在原有的Ring特權(quán)等級(jí)的基礎(chǔ)上,處理器的硬件虛擬化技術(shù)帶來(lái)了一個(gè)新的運(yùn)行模 式:Guest模式[1],來(lái)實(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)通過(guò)一個(gè)位于內(nèi)存的數(shù)據(jù)結(jié)構(gòu)(Intel稱為VMCS, AMD稱為VMCB)來(lái)控制Guest系統(tǒng)同Host系統(tǒng)的交互,以完成整個(gè)平臺(tái)的虛擬化。

IO虛擬化

傳統(tǒng)的IO操作

傳統(tǒng)的操作系統(tǒng)通過(guò)硬件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)求,通過(guò)軟件模擬的傳統(tǒng)設(shè)備將其請(qǐng)求傳遞給物理設(shè)備。一些新的支持虛擬化技術(shù)的設(shè)備,通過(guò)硬件技術(shù)(如Intel VT-d),可以將其直接分配給Guest操作系統(tǒng),避免軟件開銷。

[1]X86處理器的生產(chǎn)廠商有自己的稱謂,比如英特爾將Guest模式稱為non-root operation,與之相對(duì)的是root operation,本文稱為host模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容