自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

英特爾CPU虛擬化技術(shù)淺談

云計(jì)算 虛擬化
在前不久的IDF春季論壇上,Intel向人們展示了代號(hào)為“Vanderpool”的虛擬化技術(shù)。這項(xiàng)技術(shù)將運(yùn)用在Intel今年遲些時(shí)候推出的桌面CPU、64位ItaniumCPU以及明年推出Xeon服務(wù)器芯片和移動(dòng)CPU上,屆時(shí)Intel的CPU將擁有硬件層次的虛擬化技術(shù)。

在前不久的IDF春季論壇上,Intel向人們展示了代號(hào)為“Vanderpool”的虛擬化技術(shù)。這項(xiàng)技術(shù)將運(yùn)用在Intel今年遲些時(shí)候推出的桌面CPU、64位ItaniumCPU以及明年推出Xeon服務(wù)器芯片和移動(dòng)CPU上,屆時(shí)Intel的CPU將擁有硬件層次的虛擬化技術(shù)。

提到虛擬化技術(shù),大家并不陌生。這項(xiàng)技術(shù)在傳統(tǒng)的大型機(jī)和Unix系統(tǒng)上早已是很普及了,但因?yàn)樽烂鍯PU大都使用的是X86架構(gòu),這決定了在其之上使用硬件級(jí)虛擬化技術(shù)的難度。Intel可謂創(chuàng)造先河,誓將該技術(shù)運(yùn)用到桌面級(jí)產(chǎn)品上,用以提高CPU的性能和降低系統(tǒng)組建開銷。這也在一定程度上符合Intel目前的策略,不再一味追求CPU的速度,而把焦點(diǎn)集中在CPU的效率上來(lái)。本文就將為讀者詳細(xì)介紹Vanderpool Technology技術(shù)(以下簡(jiǎn)稱VT),它是什么、做些什么事、存在的問(wèn)題及解決方法,還有在技術(shù)層面上它是如何運(yùn)作的。

一、什么是虛擬化?它給我們帶來(lái)什么?

虛擬化能使用戶在一臺(tái)服務(wù)器上同時(shí)運(yùn)行多個(gè)操作系統(tǒng),這與“多重任務(wù)處理”技術(shù)有些類似。不過(guò)“多重任務(wù)處理”技術(shù)只允許用戶在同一機(jī)器設(shè)備的同一操作系統(tǒng)中運(yùn)行多個(gè)程序,而虛擬化則可讓用戶在同一機(jī)器設(shè)備中運(yùn)行多個(gè)操作系統(tǒng)。這樣用戶能更靈活高效地配用計(jì)算機(jī)資源,并且有助于提高安全性能。

想象一下,一個(gè)操作系統(tǒng)幾乎不需花任何時(shí)間就可被啟動(dòng),即使它崩潰了,你只需簡(jiǎn)單地將它剔除出去,同時(shí)立即裝載一個(gè)新的。如果你正在同時(shí)運(yùn)行幾個(gè)操作系統(tǒng),當(dāng)你準(zhǔn)備給其中一個(gè)載入新的映像時(shí),你可馬上將它關(guān)閉,并把該系統(tǒng)正在處理的工作分流給其他系統(tǒng)運(yùn)行。如果你有5個(gè)RedHat的副本正在運(yùn)行Apache服務(wù)器軟件,而其中一個(gè)因滿負(fù)荷而停止響應(yīng),沒(méi)問(wèn)題,你只需簡(jiǎn)單地將響應(yīng)請(qǐng)求轉(zhuǎn)交給其他4個(gè)系統(tǒng)處理,同時(shí)重啟那個(gè)停止工作的系統(tǒng)就行了。

如果你已為你正在運(yùn)行的操作系統(tǒng)存儲(chǔ)了一份“快照”,那么每當(dāng)有一些不愉快的事情發(fā)生時(shí)你都可重新啟動(dòng)它,例如被黑客攻擊、感染病毒。從一個(gè)安全的分區(qū)載入映像并修復(fù)好它就行了。虛擬化還可讓用戶毫不費(fèi)時(shí)地重新安裝操作系統(tǒng)而不需像以往使用Ghost那樣去安裝設(shè)備驅(qū)動(dòng)。你可簡(jiǎn)單地就像使用普通程序那樣去載入、卸載和存儲(chǔ)操作系統(tǒng)。

同樣,它也允許你在同一臺(tái)機(jī)器上使用多個(gè)不同的操作系統(tǒng)。如果你是一名程序員,需要編寫代碼使它們?cè)赪indows 95/98/Me/2000/XP上都能運(yùn)行,你可在你的辦公桌上準(zhǔn)備5臺(tái)機(jī)器或是1臺(tái)運(yùn)行了5種虛擬化操作系統(tǒng)的電腦。同時(shí),作為程序員的你需在每個(gè)瀏覽器的每個(gè)版本上校驗(yàn)這些代碼,很明顯微軟不會(huì)讓你在一個(gè)已擁有高版本IE的情況下去安裝更低版本的IE去做這些事,但你可一個(gè)個(gè)地安裝舊的操作系統(tǒng)或采取更好一些的解決方法——讓它們同時(shí)運(yùn)行。

二、現(xiàn)有虛擬化技術(shù)及缺陷

是不是一切都很簡(jiǎn)單和完美?然而在虛擬化世界并非一切都是盡善盡美的。最顯而易見(jiàn)的就是那么多的副本操作系統(tǒng)(上面例子中的操作系統(tǒng)副本多嗎?你可以想象一個(gè)網(wǎng)絡(luò)主機(jī)公司,20個(gè)、50個(gè)都是有可能的)同時(shí)運(yùn)行在一臺(tái)計(jì)算機(jī)上需要占據(jù)很多的資源并導(dǎo)致更昂貴的服務(wù)器開銷。數(shù)據(jù)傳輸在任何情況下都變得更難,因?yàn)樵蕉鄸|西被載入,需要的存儲(chǔ)器容量也就越多。

是的,真正的殺手就是系統(tǒng)開銷。目前在計(jì)算機(jī)虛擬化方面有幾項(xiàng)技術(shù),但它們都伴有不同程度降低系統(tǒng)性能方面的問(wèn)題。單就CPU而言,其占用率可以從10%到超過(guò)40%。

很顯然,我們需要新的技術(shù)來(lái)解決這些問(wèn)題。Intel所要采用的VT技術(shù)背后的思想就是降低虛擬化時(shí)的系統(tǒng)開銷。在我們深入了解它如何工作之前,我們有必要了解一下虛擬化技術(shù)到底是如何實(shí)現(xiàn)不同的操作系統(tǒng)工作在同一CPU上的。

目前主要存在有3種類型的虛擬化技術(shù):Paravirtualisation、二元碼轉(zhuǎn)譯和模擬器。大家最為熟悉可能就是模擬器了。你可以讓一個(gè)超級(jí)任天堂的模擬器在Windows XP的一個(gè)窗口中運(yùn)行,同時(shí)還可有另一個(gè)PS模擬器。這些都可看作是虛擬化的最基本形式。模擬器需耗費(fèi)巨大的CPU開銷,如果你非要去模擬硬件裝置的每一個(gè)Bit位,你將花費(fèi)大量的時(shí)間和精力。比較好的方法是跳過(guò)其中的某些部分,我們使用的模擬器就是這樣,它工作得也還過(guò)的去。

這個(gè)領(lǐng)域的另一端就是目前較流行的并被業(yè)界認(rèn)可的“Paravirtualisation”(以下簡(jiǎn)稱PV)技術(shù)。按字面意思理解,是編程序模擬的意思。它讓主機(jī)操作系統(tǒng)知道它們正工作在一個(gè)虛擬化的環(huán)境中,通過(guò)修改它們以使之工作得更好。因此操作系統(tǒng)需針對(duì)這種方法進(jìn)行修改和調(diào)整,它們必須來(lái)回于操作系統(tǒng)的編寫人員和編寫虛擬化軟件人員之間。從這個(gè)角度來(lái)看,它并非是完全的虛擬化,因?yàn)榇嬖谶@種合作的關(guān)系。

PV技術(shù)在開源代碼的操作系統(tǒng)中工作得不錯(cuò),Linux,、xBSD都是很合適的PV工作平臺(tái)的候選者,你可在這些系統(tǒng)中任意調(diào)整所需調(diào)整的地方,使PV能工作得更好。而Windows則不行,這大概能解釋最近為什么眾多IT巨頭吹捧開源虛擬化技術(shù)Xen了。

而“二元碼轉(zhuǎn)譯”(以下簡(jiǎn)稱BT)技術(shù)可說(shuō)是較折衷的方法了。它所要做的取決于操作系統(tǒng)將要做些什么,并在不知不覺(jué)中改變它。假如操作系統(tǒng)試圖去執(zhí)行指令A(yù),但該指令A(yù)會(huì)給虛擬化引擎帶來(lái)某些問(wèn)題,那么BT將把它轉(zhuǎn)換成某些更合適的指令并偽造指令A(yù)應(yīng)該返回的結(jié)果。這是一項(xiàng)欺騙工作,且占用大量CPU資源,另外用許多代碼取代一條代碼也不會(huì)使事情運(yùn)作得快些。

當(dāng)你了解這些后,你會(huì)感到頭痛。純粹致命的缺陷的確沒(méi)有,但都沒(méi)有一個(gè)簡(jiǎn)單的解決方案。這些虛擬化的技術(shù)仍在繼續(xù)運(yùn)用,只是人們都在盡量使其處在一個(gè)較低程度的缺陷范圍內(nèi)工作罷了。是什么造成這樣的呢?

(圖04,傳統(tǒng)的軟件虛擬化技術(shù))

三、什么問(wèn)題困擾著我們?

對(duì)于X86系統(tǒng)架構(gòu)的CPU而言,至少在32位領(lǐng)域,有太多讓人頭痛的條條框框,但作為一條總則,它們都包含有環(huán)轉(zhuǎn)換器(Ring Transitions)和有關(guān)指令。從概念意義上說(shuō),環(huán)是一種劃分系統(tǒng)特權(quán)級(jí)別的方法(因此“Ring”也稱作特權(quán)環(huán))。你可讓操作系統(tǒng)運(yùn)行在一個(gè)特權(quán)級(jí)別上而不會(huì)使之被用戶程序更改。這樣即使你的程序出了問(wèn)題,它也不會(huì)導(dǎo)致系統(tǒng)崩潰,而操作系統(tǒng)能取得控制權(quán),關(guān)閉出毛病的程序。這些環(huán)強(qiáng)行控制系統(tǒng)的不同部分。

Intel公司的X86系列CPU(包括80386、80486、Pentium、Pentium Pro、Pentium Ⅱ、Pentium Ⅲ以及現(xiàn)在的Pentium 4CPU),提供4個(gè)特權(quán)級(jí)別R0、R1、R2和R3。較大的數(shù)字表示較低的特權(quán),我們可簡(jiǎn)單理解為運(yùn)行在某一級(jí)別的程序無(wú)法改變運(yùn)行在較小數(shù)字級(jí)別上的程序,但較低數(shù)字級(jí)別上的程序可干擾甚至控制運(yùn)行在較高數(shù)字級(jí)別的程序。

在實(shí)際運(yùn)用中,被經(jīng)常用到的只有R0和R3,即最高級(jí)別和最低級(jí)別。操作系統(tǒng)運(yùn)行在R0上,而用戶程序運(yùn)行在R3上。X86架構(gòu)在向64位擴(kuò)展時(shí),采用的方法之一就是通過(guò)去掉中間的特權(quán)級(jí)別——R1和R2。幾乎沒(méi)有人注意到它們消失了,除了那些使用虛擬化技術(shù)的特定人群。

像VMware這類軟件模式的虛擬化機(jī)(Virtual Machines,以下簡(jiǎn)稱VM)顯然必須運(yùn)行在R0級(jí)別上,但如它們要想保持完全控制權(quán),就必須使操作系統(tǒng)在這個(gè)級(jí)別之外。最顯而易見(jiàn)的解決辦法是強(qiáng)迫主機(jī)操作系統(tǒng)運(yùn)行在一個(gè)較低級(jí)別的環(huán)中,如R1。它們的部分代碼原先被設(shè)定為從R0到R3,而不是R1到R3。雖然在PV環(huán)境中,你能修改操作系統(tǒng)從而使它工作得很好,但如果你要找到一個(gè)圓滿的解決方法,就必須使操作系統(tǒng)工作在R1級(jí)別中。

可如此一來(lái)又出現(xiàn)問(wèn)題了,有些指令只有當(dāng)它們從R0級(jí)里發(fā)出或發(fā)往R0級(jí)時(shí)才會(huì)工作,如果不在正確的環(huán)中,這些指令會(huì)運(yùn)作得很古怪。如果你試圖這么去做,會(huì)有很不好的后果。讓代碼在正確的環(huán)中執(zhí)行確實(shí)能防止操作系統(tǒng)破壞VM,同時(shí)也防止運(yùn)行在主機(jī)操作系統(tǒng)上的軟件破壞操作系統(tǒng)自身。這就是所謂的“0/1/3”模式。

還有一種模式被稱為“0/3”模式。這種模式將VM放入R0級(jí)別中運(yùn)行,而將操作系統(tǒng)和用戶程序都放入R3級(jí)別中。但從本質(zhì)上而言,它還是像“0/1/3”模式一樣去處理其他事情。在R3級(jí)別里,有特權(quán)的操作系統(tǒng)能更輕松地執(zhí)行用戶程序,由于不存在環(huán)的阻隔,也使它運(yùn)行的更快一些,但系統(tǒng)穩(wěn)定性不佳。

另外一個(gè)方式去使用“0/3”模式,就是讓CPU保有兩份運(yùn)行于R0級(jí)別中的事物的頁(yè)表。一份為操作系統(tǒng),另一份為運(yùn)行在R3級(jí)別中的老程序。這樣可擁有一份完整的存儲(chǔ)器保護(hù)集,用來(lái)把用戶程序隔離到操作系統(tǒng)空間之外。當(dāng)然,這同樣需要消耗性能,只是以不同的方式罷了。

概括來(lái)說(shuō),在“0/1/3”模式中,系統(tǒng)安全性更高一些,但從R3到R1、R3到R0或R1到R0轉(zhuǎn)換時(shí)性能會(huì)受到一些影響,反過(guò)來(lái)也是。在“0/3”模式中,只存在R0與R3之間的轉(zhuǎn)換,所以它潛在的比一個(gè)非主機(jī)操作系統(tǒng)運(yùn)行得更快一些。但如你碰到一個(gè)問(wèn)題,“0/3”模式比“0/1/3”模式更容易出現(xiàn)藍(lán)屏。盡管未來(lái)將廣泛使用“0/3”模式,主要是因?yàn)樯衔奈覀兲岬较蛟?4位擴(kuò)展時(shí)已去掉了R1和R2,所以你必須被迫使用“0/3”模式。對(duì)計(jì)算機(jī)而言,這被稱作是進(jìn)步,同樣,毀滅性的崩潰被認(rèn)為是“古怪”行為。

理論上,如果你可忍受一點(diǎn)不穩(wěn)定性,或者在“0/1/3”模式中犧牲一點(diǎn)速度,那么應(yīng)該說(shuō)的很完美的??伤鼈?cè)谀承┓矫娲_實(shí)還存在一些缺陷,主要存在以下4點(diǎn)。首先是那些檢驗(yàn)指令自己所在環(huán)的指令,另外是那些處在錯(cuò)誤的環(huán)中卻沒(méi)有正確保護(hù)CPU現(xiàn)場(chǎng)的指令。最后兩點(diǎn)是截然相反的,就是那些應(yīng)引發(fā)錯(cuò)誤卻沒(méi)有導(dǎo)致錯(cuò)誤的指令,以及那些本不該導(dǎo)致錯(cuò)誤卻引發(fā)許多錯(cuò)誤的指令。所有這些都讓編寫VM的天才程序員們活得不輕松。

其中第一點(diǎn)是顯而易見(jiàn)的。如果你給予操作系統(tǒng)R1級(jí)別的特權(quán),當(dāng)它檢驗(yàn)自己運(yùn)行所處的環(huán)時(shí),它會(huì)返回1而不是0。如果此時(shí)運(yùn)行于該系統(tǒng)的一段程序期望自己應(yīng)該處在R0環(huán)時(shí),那么它會(huì)因?yàn)榈玫降氖荝1而導(dǎo)致錯(cuò)誤。這會(huì)導(dǎo)致藍(lán)屏的出現(xiàn),存儲(chǔ)器清除或另一些不理想的后果。二元碼轉(zhuǎn)譯技術(shù)可捕捉到這種錯(cuò)誤,并把返回值偽裝成0,但這意味著需要幾十上百條指令來(lái)完成這一工作,顯然速度受到極大影響。

保護(hù)現(xiàn)場(chǎng)是一個(gè)潛在的更糟糕的問(wèn)題,有些CPU里的東西在上下文開關(guān)程序中并不是很容易被保存的。那些隱藏的段寄存器狀態(tài)就是一個(gè)很好的例子。一旦它們被載入主存,其中一部分無(wú)法被保存,導(dǎo)致內(nèi)存常駐部分和CPU中實(shí)際值間的不同而引起意外中斷。當(dāng)然我們可為它們?cè)O(shè)立工作區(qū),但這樣做極為復(fù)雜且需付出很高的代價(jià)使之表現(xiàn)得聰明一些。

那些本該引起某些問(wèn)題卻沒(méi)有導(dǎo)致這些問(wèn)題的指令也是擺在我們眼前的一道難題。如果你期望一條指令應(yīng)在你后面的設(shè)計(jì)的中斷陷阱中造成錯(cuò)誤,但卻沒(méi)有,這一點(diǎn)也不會(huì)讓人因?yàn)闆](méi)有錯(cuò)誤而高興。與此相反的情況也極為常見(jiàn),如果不在正確的環(huán)中向CR0和CR4寫入,則會(huì)產(chǎn)生錯(cuò)誤,導(dǎo)致系統(tǒng)崩潰。雖然這兩種錯(cuò)誤在你不注意時(shí)可被修正,但卻造成很多性能損失。

整個(gè)所涉及到的虛擬化技術(shù)就是要將操作系統(tǒng)放在一個(gè)它本不應(yīng)該在的地方,不斷地運(yùn)轉(zhuǎn)去嘗試解決所有撲來(lái)的問(wèn)題。存在許多問(wèn)題,這些問(wèn)題也不斷的發(fā)生,所以性能損失也就沒(méi)什么奇怪的了。

#p#

四、解決之道

Intel的VT技術(shù)能解決這些困擾。VT的目的是在盡可能最小化程序員痛苦的同時(shí)盡可能多的增加“virtualization holes”(虛擬化孔)。這種解決方案中,VT-X針對(duì)X86而VT-i針對(duì)Itanium,分別引入了一種新的模式針對(duì)不同的CPU。這里我們主要來(lái)看看VT-X,實(shí)際上VT-i的功能與VT-X有很多相同的地方。

這種新的模式被稱為VMX,并且引入了一個(gè)虛擬化機(jī)監(jiān)控器VMM運(yùn)行于其中。它被設(shè)定在R0級(jí)別下,你可以認(rèn)為是R-1級(jí)或者看成是在環(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級(jí)別中,與平常一樣有權(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)出來(lái)的不可思議的地方就在于它將從VMX模式到VMX根模式(或從VMX根模式到VMX模式)的登錄和退出處理易于操作。一旦主機(jī)操作系統(tǒng)被涉及到,那它一定是獨(dú)自處在自己的世界里的,你必須保存虛擬化世界的完整狀態(tài)并當(dāng)你返回時(shí)重新載入它。雖然在VT里還有很多事物要去處理,但它被設(shè)計(jì)為一項(xiàng)任務(wù),所以客觀地說(shuō)它實(shí)際是一個(gè)簡(jiǎn)單而并不費(fèi)力的進(jìn)程。

因?yàn)槊恳粋€(gè)操作系統(tǒng)實(shí)例都在正確的位置運(yùn)行,所以前面所提到的4個(gè)問(wèn)題也就不存在了。相關(guān)聯(lián)的工作區(qū)也不再需要,與此有關(guān)的系統(tǒng)開銷沒(méi)有了。這些能有效提高速度。但這些并非免費(fèi),只是付出的代價(jià)要少很多。

啟動(dòng)一個(gè)新的主機(jī)操作系統(tǒng),你需為其留出一塊4kB的存儲(chǔ)區(qū)并將它傳遞給一個(gè)VMPTLRD指令。這塊區(qū)域?qū)⒂脕?lái)存儲(chǔ)該系統(tǒng)實(shí)例不被激活時(shí)的所有狀態(tài)和重要Bit位。只要該操作系統(tǒng)實(shí)例存在,則這塊區(qū)域一直有效,直到在其上運(yùn)行一條VMCLEAR指令。這樣就設(shè)立了一個(gè)虛擬化機(jī)實(shí)例。

如果你想要把控制權(quán)交給虛擬化機(jī),你要么登錄VMX非根模式或簡(jiǎn)單一點(diǎn),運(yùn)行VMX模式即可。這些提到的VM登錄指令就是VMLAUNCH和VMRESUME,兩者并沒(méi)有太大的區(qū)別。VMRESUME指令只是簡(jiǎn)單地從剛開始已經(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)場(chǎng)背后的記錄,因?yàn)檫@需花費(fèi)一些時(shí)間,所以人們盡量避免在并發(fā)登錄時(shí)使用VMLAUNCH。

從這一點(diǎn)來(lái)看,主機(jī)操作系統(tǒng)開始了它的愉快之旅,盡可能地運(yùn)轉(zhuǎn),毫無(wú)察覺(jué)是否有其他東西正在它的一旁運(yùn)行。正如過(guò)去所計(jì)劃的一樣,它存在于自己的世界里,全速運(yùn)行,或接近全速。唯一的問(wèn)題是你如何打破這一切美好的景象而將它關(guān)閉到一邊,以使得機(jī)器里的其他操作系統(tǒng)能真正運(yùn)行。這就是VT技術(shù)所體現(xiàn)出來(lái)的復(fù)雜的一面——VMCS中一些特別的位映像。

這些位映像是一些32位的字段,每一個(gè)Bit位標(biāo)志一個(gè)事件。如果某個(gè)事件被觸發(fā),則對(duì)應(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ā)這些指令呢?它們可以是引腳信號(hào)、CPU、異常和頁(yè)面錯(cuò)誤這些平臺(tái)事件,所有這些都會(huì)觸發(fā)VM退出指令。VT技術(shù)的完美之處在于它有很強(qiáng)的適應(yīng)性,另一個(gè)與此類似之處就是在調(diào)試程序中設(shè)置斷點(diǎn),你可在每個(gè)事件上都設(shè)置一個(gè),或者一個(gè)也不設(shè)置,這都取決于你自己。

引腳信號(hào)事件要做的是當(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è)置,但也有一些指令無(wú)條件地引發(fā)VM退出指令。這是在一個(gè)非常細(xì)小的層面上控制VM,允許每當(dāng)你需要時(shí)登錄和退出。

異常位映像也是一些32位的字段,每個(gè)Bit位標(biāo)志每個(gè)32位指令地址的異常情況。如果Bit位被設(shè)定并有一個(gè)異常被拋出,它就會(huì)引發(fā)VM退出指令。如果Bit位是空的或沒(méi)有異常,那么主機(jī)操作系統(tǒng)則繼續(xù)它的快樂(lè)之旅,與平常一樣。這是一種從VMX模式退出而進(jìn)入VMX根模式的系統(tǒng)開銷非常低的方法。

最后還有頁(yè)面錯(cuò)誤退出,它與異常退出十分相像,只不過(guò)它用兩個(gè)32位字段來(lái)控制。這些字段內(nèi)的Bit位對(duì)每一個(gè)可能出問(wèn)題的頁(yè)面錯(cuò)誤代碼進(jìn)行映像,因此你可細(xì)心地從中挑選從哪里退出。同樣,它也是基于很細(xì)小的層面,系統(tǒng)開銷也很低。

在計(jì)算機(jī)里,VT工作在一個(gè)比傳統(tǒng)的R0環(huán)更有特權(quán)的級(jí)別中。任何一個(gè)主機(jī)操作系統(tǒng)都可在沒(méi)有改變的舊有架構(gòu)下運(yùn)行,并且不知道一個(gè)控制程序在控制它們。當(dāng)遭遇到某些用戶設(shè)置的觸發(fā)器,控制權(quán)將被轉(zhuǎn)交給運(yùn)行在更高級(jí)別的VMX根模式上的VMM。因?yàn)檫@是一種被動(dòng)觸發(fā)事件,而不需被積極監(jiān)視,因此系統(tǒng)開銷降到了最低限。

VT技術(shù)使得安裝和卸載那些比以往VM模式更穩(wěn)定的運(yùn)行環(huán)境變得簡(jiǎn)單。如果你需運(yùn)行虛擬化系統(tǒng),沒(méi)有理由不用一個(gè)擁有Vanderpool功能的CPU去實(shí)現(xiàn)它,而軟件虛擬化機(jī)會(huì)逐漸不被人關(guān)注。

這也許不錯(cuò),但必須記得,這必須付出代價(jià)。每一次登錄意味著建立4kB的存儲(chǔ)區(qū)域,每一次退出要向這4kB存儲(chǔ)區(qū)內(nèi)寫入數(shù)據(jù)。這看上去有些耗費(fèi)過(guò)多,可與那些較老的方式比較,它的速度驚人地快。

總結(jié)

Intel的VT技術(shù)給人們帶來(lái)了驚喜,它讓我們可在硬件級(jí)別上完成計(jì)算機(jī)的虛擬化工作。目前時(shí)機(jī)成熟了,Intel將首先在其桌面CPU中引入該技術(shù),最新的Pentium 4 6系列CPU就支持VT,這讓更多的用戶都能涉足到新技術(shù)的應(yīng)用,大大提高了用戶使用CPU的效率,編寫VMM不再那么困難了。

不過(guò)我們也要清醒地認(rèn)識(shí)到,現(xiàn)有的虛擬化技術(shù)不會(huì)馬上消失,相反它們會(huì)變得更為普遍且系統(tǒng)開銷問(wèn)題也正得到改善,而大型服務(wù)器提供商們也不會(huì)在現(xiàn)有的技術(shù)上發(fā)生巨大的變化,畢竟目前還用得過(guò)去。加上AMD公司也發(fā)布了在其64位CPU上使用Pacifica虛擬化技術(shù),因此VT想要取代現(xiàn)有的計(jì)算機(jī)虛擬化技術(shù)或得到人們的認(rèn)同還需一段時(shí)間??晌覀兿嘈庞布?jí)別的虛擬化技術(shù)毋庸置疑的是未來(lái)計(jì)算機(jī)發(fā)展的方向,有著燦爛的前途。

【編輯推薦】

  1. LG李國(guó)政:利用虛擬化技術(shù)搭建安全研發(fā)中心
  2. 微軟虛擬化解決方案與實(shí)例剖析
  3. 2008年度產(chǎn)品創(chuàng)新獎(jiǎng)-思科 NEXUS 網(wǎng)絡(luò)設(shè)備虛擬化技術(shù)
責(zé)任編輯:符甲 來(lái)源: watchstor.com
相關(guān)推薦

2016-04-22 10:16:03

深信服虛擬化英特爾

2023-11-20 13:06:52

2009-01-27 09:35:00

服務(wù)器虛擬化VMware

2009-04-16 18:56:19

Vmware服務(wù)器虛擬化AMD

2012-08-30 09:29:55

英特爾

2011-03-09 14:19:42

2009-07-24 14:00:48

2010-10-26 10:32:06

ARM英特爾CPU

2012-09-19 10:28:47

英特爾服務(wù)器CPU開發(fā)

2011-11-17 01:55:08

虛擬化虛擬化平臺(tái)263

2009-02-03 17:21:52

服務(wù)器虛擬化英特爾

2013-12-19 10:06:18

英特爾Hadoop

2013-03-15 17:37:33

Hadoop英特爾CPU

2009-12-03 16:58:25

虛擬化技術(shù)微軟英特爾

2009-06-17 17:43:16

英特爾nehalem超線程

2009-09-04 11:26:00

英特爾虛擬化

2012-07-24 09:26:16

虛擬化英特爾

2009-06-25 18:51:18

云計(jì)算虛擬化英特爾

2014-04-03 14:23:02

英特爾統(tǒng)一固件管理套件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)