電腦cpu的vt是什么意思
電腦cpu的vt是什么意思
大家誰知道電腦CPU的VT是什么意思啊?我們來了解看看。下面是學(xué)習(xí)啦小編給大家整理的電腦cpu的vt是什么意思,供大家參閱!
電腦cpu的vt是什么意思
被稱為Vanderpool的虛擬技術(shù)簡稱VT,是英特爾公司處理器市場策略的一部分,英特爾公司的策略是向用戶提供的實(shí)用功能而不是增長的性能。VT能夠使用戶在他們的個(gè)人電腦上建立多套虛擬的運(yùn)行環(huán)境以便能夠使同一臺(tái)個(gè)人電腦上能夠運(yùn)行不同的操作系統(tǒng)。VT還能夠允許IT技術(shù)管理員下載系統(tǒng)補(bǔ)丁或者升級個(gè)人電腦的一部分的同時(shí),用戶能夠在另一個(gè)虛擬環(huán)境中運(yùn)行他們的應(yīng)用程序。
VT技術(shù)存在的問題
在采用英特爾® 架構(gòu)(IA)的系統(tǒng)上,虛擬化是一種純軟件解決方案。Microsoft Virtual Server* 、Virtual PC*、VMware ESX* 和 Workstation* 等產(chǎn)品(稱為“虛擬機(jī)* ”(VMM*))可處理英特爾架構(gòu)系統(tǒng)的所有虛擬化問題。由于 VMM 必須創(chuàng)建一種規(guī)則,使主機(jī)操作系統(tǒng)直接與硬件進(jìn)行通信,因此它必須采取一些措施。虛擬機(jī)主要采用以下兩種方法:
半虛擬化:此項(xiàng)技術(shù)要求更改操作系統(tǒng)、特別是內(nèi)核的源代碼,以便其能夠在指定的 VMM 上運(yùn)行。此方法類似于大型機(jī)方法,其中定制操作系統(tǒng)擴(kuò)展與硬件配合密切。當(dāng)然,半虛擬化將不能與商業(yè)化操作系統(tǒng)協(xié)作。
二進(jìn)制譯碼:VMM 在操作系統(tǒng)二進(jìn)制代碼加載到虛擬機(jī)時(shí)對其進(jìn)行更改。這一方法在支持英特爾架構(gòu)的商業(yè)產(chǎn)品中十分常見,唯一的限制是只能安裝特定版本的操作系統(tǒng),而新版本的操作系統(tǒng)均需要測試和驗(yàn)證,并可能要求對 VMM 軟件進(jìn)行升級。
兩款解決方案共同的問題在于軟件無法與基礎(chǔ)硬件協(xié)同工作,因此必須采用一些復(fù)雜的方案向軟件模擬某些硬件特性,同時(shí)讓主機(jī)操作系統(tǒng)誤認(rèn)為該虛擬機(jī)是另一個(gè)應(yīng)用。此外,VMM 還面臨著其它技術(shù)挑戰(zhàn)。
VT技術(shù)的作用
VT的目的是在盡可能最小化程序員痛苦的同時(shí)盡可能多的增加“virtualization holes”(虛擬化孔)。這種解決方案中,VT-X針對X86而VT-i針對Itanium,分別引入了一種新的模式針對不同的CPU.這里我們主要來看看VT-X,實(shí)際上VT-i的功能與VT-X有很多相同的地方。
這種新的模式被稱為VMX,并且引入了一個(gè)虛擬化機(jī)監(jiān)控器VMM運(yùn)行于其中。它被設(shè)定在R0級別下,你可以認(rèn)為是R-1級或者看成是在環(huán)的旁邊運(yùn)行。主機(jī)操作系統(tǒng)和所有的程序在VMX模式中運(yùn)行,與此同時(shí)VMM運(yùn)行在VMX根模式中。
任何一個(gè)運(yùn)行在VMX模式下的操作系統(tǒng),都擁有所有運(yùn)行于非VT系統(tǒng)中的一般操作系統(tǒng)的功能和特性。它也處在R0級別中,與平常一樣有權(quán)利處理每一件事情,而且并不知道有什么東西正在它的旁邊運(yùn)行。當(dāng)情況得到授權(quán),CPU進(jìn)入VMX根模式,VMM就可以切換到其他一個(gè)運(yùn)行在另一VMX實(shí)例的操作系統(tǒng)。這些切換被稱做VM登錄和VM退出。
VT技術(shù)所表現(xiàn)出來的不可思議的地方就在于它將從VMX模式到VMX根模式(或從VMX根模式到VMX模式)的登錄和退出處理易于操作。一旦主機(jī)操作系統(tǒng)被涉及到,那它一定是獨(dú)自處在自己的世界里的,你必須保存虛擬化世界的完整狀態(tài)并當(dāng)你返回時(shí)重新載入它。雖然在VT里還有很多事物要去處理,但它被設(shè)計(jì)為一項(xiàng)任務(wù),所以客觀地說它實(shí)際是一個(gè)簡單而并不費(fèi)力的進(jìn)程。
因?yàn)槊恳粋€(gè)操作系統(tǒng)實(shí)例都在正確的位置運(yùn)行,所以前面所提到的4個(gè)問題也就不存在了。相關(guān)聯(lián)的工作區(qū)也不再需要,與此有關(guān)的系統(tǒng)開銷沒有了。這些能有效提高速度。但這些并非免費(fèi),只是付出的代價(jià)要少很多。
啟動(dòng)一個(gè)新的主機(jī)操作系統(tǒng),你需為其留出一塊4kB的存儲(chǔ)區(qū)并將它傳遞給一個(gè)VMPTLRD指令。這塊區(qū)域?qū)⒂脕泶鎯?chǔ)該系統(tǒng)實(shí)例不被激活時(shí)的所有狀態(tài)和重要Bit位。只要該操作系統(tǒng)實(shí)例存在,則這塊區(qū)域一直有效,直到在其上運(yùn)行一條VMCLEAR指令。這樣就設(shè)立了一個(gè)虛擬化機(jī)實(shí)例。
如果你想要把控制權(quán)交給虛擬化機(jī),你要么登錄VMX非根模式或簡單一點(diǎn),運(yùn)行VMX模式即可。這些提到的VM登錄指令就是VMLAUNCH和VMRESUME,兩者并沒有太大的區(qū)別。VMRESUME指令只是簡單地從剛開始已經(jīng)初始化的4kB存儲(chǔ)區(qū)里載入CPU狀態(tài),并把控制權(quán)交給主機(jī)操作系統(tǒng)。VMLAUNCH做的也是同樣的工作,但它會(huì)啟動(dòng)一個(gè)虛擬化機(jī)控制構(gòu)件VMCS,它包含一些設(shè)立VM的現(xiàn)場背后的記錄,因?yàn)檫@需花費(fèi)一些時(shí)間,所以人們盡量避免在并發(fā)登錄時(shí)使用VMLAUNCH.
從這一點(diǎn)來看,主機(jī)操作系統(tǒng)開始了它的愉快之旅,盡可能地運(yùn)轉(zhuǎn),毫無察覺是否有其他東西正在它的一旁運(yùn)行。正如過去所計(jì)劃的一樣,它存在于自己的世界里,全速運(yùn)行,或接近全速。唯一的問題是你如何打破這一切美好的景象而將它關(guān)閉到一邊,以使得機(jī)器里的其他操作系統(tǒng)能真正運(yùn)行。這就是VT技術(shù)所體現(xiàn)出來的復(fù)雜的一面——VMCS中一些特別的位映像。
這些位映像是一些32位的字段,每一個(gè)Bit位標(biāo)志一個(gè)事件。如果某個(gè)事件被觸發(fā),則對應(yīng)的Bit位被置位,CPU觸發(fā)一條VM退出指令,并將控制權(quán)返還給運(yùn)行在VMX根模式下的VMM.VMM可做任何想做的事,然后將VMRESUME指令傳遞給下一個(gè)操作系統(tǒng),或剛離開的那個(gè)操作系統(tǒng)。這個(gè)被啟動(dòng)的操作系統(tǒng)同樣很好地運(yùn)行著,直到觸發(fā)另一條VM退出指令。如此這樣以每秒上千次的速度重復(fù)著。
什么能觸發(fā)這些指令呢?它們可以是引腳信號、CPU、異常和頁面錯(cuò)誤這些平臺(tái)事件,所有這些都會(huì)觸發(fā)VM退出指令。VT技術(shù)的完美之處在于它有很強(qiáng)的適應(yīng)性,另一個(gè)與此類似之處就是在調(diào)試程序中設(shè)置斷點(diǎn),你可在每個(gè)事件上都設(shè)置一個(gè),或者一個(gè)也不設(shè)置,這都取決于你自己。
引腳信號事件要做的是當(dāng)有一個(gè)內(nèi)部中斷或一個(gè)不可屏蔽中斷發(fā)生時(shí),則觸發(fā)退出指令。而CPU事件,則是當(dāng)你設(shè)置任意Bit位在某一字段,當(dāng)相應(yīng)的CPU狀態(tài)接收到它時(shí),則觸發(fā)退出指令。雖然大多數(shù)指令需要去設(shè)置,但也有一些指令無條件地引發(fā)VM退出指令。這是在一個(gè)非常細(xì)小的層面上控制VM,允許每當(dāng)你需要時(shí)登錄和退出。
異常位映像也是一些32位的字段,每個(gè)Bit位標(biāo)志每個(gè)32位指令地址的異常情況。如果Bit位被設(shè)定并有一個(gè)異常被拋出,它就會(huì)引發(fā)VM退出指令。如果Bit位是空的或沒有異常,那么主機(jī)操作系統(tǒng)則繼續(xù)它的快樂之旅,與平常一樣。這是一種從VMX模式退出而進(jìn)入VMX根模式的系統(tǒng)開銷非常低的方法。
最后還有頁面錯(cuò)誤退出,它與異常退出十分相像,只不過它用兩個(gè)32位字段來控制。這些字段內(nèi)的Bit位對每一個(gè)可能出問題的頁面錯(cuò)誤代碼進(jìn)行映像,因此你可細(xì)心地從中挑選從哪里退出。同樣,它也是基于很細(xì)小的層面,系統(tǒng)開銷也很低。
在計(jì)算機(jī)里,VT工作在一個(gè)比傳統(tǒng)的R0環(huán)更有特權(quán)的級別中。任何一個(gè)主機(jī)操作系統(tǒng)都可在沒有改變的舊有架構(gòu)下運(yùn)行,并且不知道一個(gè)控制程序在控制它們。當(dāng)遭遇到某些用戶設(shè)置的觸發(fā)器,控制權(quán)將被轉(zhuǎn)交給運(yùn)行在更高級別的VMX根模式上的VMM.因?yàn)檫@是一種被動(dòng)觸發(fā)事件,而不需被積極監(jiān)視,因此系統(tǒng)開銷降到了最低限。
VT技術(shù)使得安裝和卸載那些比以往VM模式更穩(wěn)定的運(yùn)行環(huán)境變得簡單。如果你需運(yùn)行虛擬化系統(tǒng),沒有理由不用一個(gè)擁有Vanderpool功能的CPU去實(shí)現(xiàn)它,而軟件虛擬化機(jī)會(huì)逐漸不被人關(guān)注。
這也許不錯(cuò),但必須記得,這必須付出代價(jià)。每一次登錄意味著建立4kB的存儲(chǔ)區(qū)域,每一次退出要向這4kB存儲(chǔ)區(qū)內(nèi)寫入數(shù)據(jù)。這看上去有些耗費(fèi)過多,可與那些較老的方式比較,它的速度驚人地快。
看過電腦cpu的vt是什么意思的人還看了: