CPU硬件虛擬化
?
CPU硬件虛擬化,也就是CPU硬件輔助虛擬化(CPU Hardware Assisted Virtualization)
為了實(shí)現(xiàn)虛擬化,VMWare走了全虛擬化的道路,而Citrix和微軟等走了半虛擬化的道路。全虛擬化因?yàn)椴恍枰薷牟僮飨到y(tǒng)即可直接使用,所以支持的操作系統(tǒng)很多,但因?yàn)橹虚g有一個(gè)指令的二進(jìn)制轉(zhuǎn)譯的過程,所以性能比較差一點(diǎn)。半虛擬化則恰好相反,它修改了GuestOS系統(tǒng),植入了HyperCall,讓GuestOS部分指令可以直接運(yùn)行到Ring 0級(jí)別,這樣性能得以保存。但是因?yàn)橐牟僮飨到y(tǒng),而很多操作系統(tǒng)不愿意被修改(比如微軟的Windows),而有些操作系統(tǒng)又無人去修改,所以導(dǎo)致的結(jié)果就是支持的操作系統(tǒng)比較少。
等到虛擬化很火了,Intel和AMD也坐不住了,他們提出要從CPU的根本架構(gòu)著手,解決這個(gè)全虛擬化和半虛擬化的問題。他們把CPU原來的Ring 0、1、2、3四個(gè)級(jí)別設(shè)定為非Root模式特權(quán)級(jí)別,然后再增加了一個(gè)Root模式特權(quán)級(jí)別,有人將這個(gè)級(jí)別稱之為Ring -1(負(fù)一),可以想見,就是比Ring 0還要底層的權(quán)限級(jí)別。VMM就運(yùn)行在Ring -1上,而讓GuestOS運(yùn)行到Ring 0上,這樣從Guest OS到VMM就不需要Binary Translation或Paravirtualization了。
在Intel公司,這個(gè)技術(shù)叫Intel VT;ADM公司則叫AMD-V。
使用了CPU硬件虛擬化,全虛擬化廠商的性能追上了半虛擬化廠商,而半虛擬化廠商也可以支持不修改內(nèi)核的操作系統(tǒng)了(例如Windows和絕大多數(shù)Linux)
?
本文屬于“洪哥筆記”原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明來源地址:CPU硬件虛擬化