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