李霞
虛擬機(jī)技術(shù)是計(jì)算機(jī)科學(xué)近年來最激動(dòng)人心的成就之一[19]。雖然虛擬機(jī)技術(shù)早在上世紀(jì) 60年代就已在 IBM大型機(jī)中得到實(shí)現(xiàn)[14],但近年來虛擬機(jī)通過和個(gè)人計(jì)算機(jī)的結(jié)合使其重新煥發(fā)了強(qiáng)大的生命力,具有了全新的內(nèi)涵。虛擬機(jī)也從最初的一種補(bǔ)充性技術(shù)發(fā)展成為重要的基礎(chǔ)性平臺(tái),并使得現(xiàn)代計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)、應(yīng)用模式產(chǎn)生了重大變革[14]。
虛擬機(jī)系統(tǒng)的結(jié)構(gòu)如圖1所示。虛擬機(jī)系統(tǒng)在傳統(tǒng)計(jì)算機(jī)的硬件和操作系統(tǒng)(OS: Operating System)中間加入了一個(gè)新的軟件層,稱為虛擬機(jī)監(jiān)視器(VMM:Virtual Machine Monitor,也稱為Hypervisor)。VMM可以模擬多個(gè)虛擬機(jī)(VM: Virtual Machine),在每個(gè)VM上可以安裝運(yùn)行不同的操作系統(tǒng),通常把這些OS稱為Guest OS,以和傳統(tǒng)的、直接運(yùn)行于硬件之上的OS相區(qū)別。VMM可以為VM提供保證服務(wù)質(zhì)量的資源(如CPU時(shí)間、內(nèi)存、網(wǎng)絡(luò)帶寬等),VM 之間完全隔離,這種服務(wù)質(zhì)量保障和安全隔離能力是虛擬機(jī)系統(tǒng)具有強(qiáng)大生命力的根本原因之一。
VMM的主要功能是實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的虛擬化,即處理器、內(nèi)存和I/O設(shè)備的虛擬化。在基于x86架構(gòu)的計(jì)算機(jī)系統(tǒng)上設(shè)計(jì)VMM面臨許多挑戰(zhàn)。本文將對(duì)這些問題依次進(jìn)行分析,并比較總結(jié)已有研究成果。
圖1 虛擬機(jī)系統(tǒng)結(jié)構(gòu)
Goldberg研究指出,VMM的設(shè)計(jì)應(yīng)滿足三個(gè)特性[24]:1) 所有在VMM上運(yùn)行的程序必須像在原始硬件上運(yùn)行的效果一樣,確保對(duì)操作系統(tǒng)的透明性;
2) 大多數(shù)的指令必須直接在真實(shí)的處理器上運(yùn)行,而不需要解釋執(zhí)行,確保虛擬機(jī)系統(tǒng)的性能;
3) VMM必須完全控制硬件,任何VM不能穿越VMM直接訪問硬件,確保虛擬機(jī)之間安全隔離。
現(xiàn)代計(jì)算機(jī)系統(tǒng)基于特權(quán)級(jí)和特權(quán)指令機(jī)制來實(shí)現(xiàn)進(jìn)程和 OS之間的隔離保護(hù),OS總是處于最高特權(quán)級(jí)并可執(zhí)行特權(quán)指令;進(jìn)程運(yùn)行于較低特權(quán)級(jí),不允許執(zhí)行特權(quán)指令。在虛擬機(jī)系統(tǒng)中,VMM取代了傳統(tǒng)OS的地位處于最高特權(quán)級(jí),而Guest OS只能運(yùn)行于較低特權(quán)級(jí)。IBM 370主機(jī)中基于處理器的支持,采用“Trap and Emulation”方法來滿足這些特性[14],既處于非特權(quán)級(jí)的操作系統(tǒng)執(zhí)行特權(quán)指令時(shí)處理器將產(chǎn)生陷入,然后由VMM來模擬這些指令。
傳統(tǒng)的 x86處理器在設(shè)計(jì)時(shí)并未考慮對(duì)虛擬化的支持,在實(shí)現(xiàn)虛擬化時(shí)面臨諸多挑戰(zhàn)[11]。x86 處理器中有一些能夠顯示或修改處理器狀態(tài)信息(如特權(quán)級(jí))的非特權(quán)指令,稱之為敏感指令。根據(jù)對(duì)敏感指令處理方式的不同,虛擬機(jī)實(shí)現(xiàn)方式可分為兩類:全虛擬化和準(zhǔn)虛擬化。
全虛擬化方式完全滿足Goldberg所提出的3個(gè)特性。目前虛擬機(jī)系統(tǒng)中主要采用二進(jìn)制翻譯技術(shù)來實(shí)現(xiàn)全虛擬化:在VM的代碼運(yùn)行之前,VMM分析將要執(zhí)行的二進(jìn)制代碼,將敏感指令替換成功能相同但非敏感的指令或調(diào)用VMM程序的指令。如果為后者,則當(dāng)VM執(zhí)行敏感指令時(shí)將陷入 VMM,由 VMM 來模擬執(zhí)行這些指令。VMWare、Virtual PC就是采用二進(jìn)制翻譯技術(shù)來實(shí)現(xiàn)x86處理器的虛擬化[21-31]?;诙?jí)制翻譯技術(shù)的全虛擬化方式具有良好的兼容性,其缺點(diǎn)在于技術(shù)復(fù)雜,而且分析二級(jí)制代碼和替換敏感指令也會(huì)導(dǎo)致較大的開銷。為了優(yōu)化性能,可以會(huì)將這些已經(jīng)處理過的指令塊進(jìn)行緩存,則當(dāng)再次執(zhí)行時(shí)就不需要再進(jìn)行掃描和替換[20]。
解決x86處理器敏感指令的另外一個(gè)方法,就是不再保持 Goldberg所提的特性,而是直接修改操作系統(tǒng)源代碼,不再使用這些敏感指令。這種方法也稱為準(zhǔn)虛擬化,xen[5]、Denali[34]則是其典型代表。準(zhǔn)虛擬化方式的優(yōu)點(diǎn)在于技術(shù)相對(duì)簡單,易于實(shí)現(xiàn);操作系統(tǒng)和VMM之間可以相互配合,從而到達(dá)更優(yōu)的性能。其缺點(diǎn)則在于兼容性差,限制了其適用范圍。
近年來虛擬化技術(shù)受到處理器廠商的高度重視,Intel和AMD都分別提出了相應(yīng)的虛擬化方案以簡化虛擬機(jī)的實(shí)現(xiàn),如VT-x、 VT-i [30]和Pacific[2]。這些方案基本類似。本文僅簡要介紹VT-x。
VT-x增加了兩種CPU工作模式:root和non-root,擴(kuò)展了一些指令用以實(shí)現(xiàn)兩種模式間的轉(zhuǎn)換。每種模式仍然保留了原來IA-32的所有特性,包括4個(gè)特權(quán)級(jí)以及所有指令。Non-root模式特權(quán)級(jí)低于root模式,該模式下每個(gè)VM有一個(gè)數(shù)據(jù)結(jié)構(gòu)VMCS保存其狀態(tài),并控制VM在哪些條件下陷入到root模式。Guest OS運(yùn)行于non-root模式的ring 0優(yōu)先級(jí),當(dāng)Guest OS執(zhí)行特權(quán)指令時(shí),CPU將自動(dòng)陷入到VMM運(yùn)行的root模式,從而可以模擬執(zhí)行特權(quán)指令。VT-x顯著簡化了虛擬機(jī)的設(shè)計(jì),無需采用二進(jìn)制翻譯就能實(shí)現(xiàn)全虛擬化。
現(xiàn)代計(jì)算機(jī)系統(tǒng)采用虛擬內(nèi)存以支持多進(jìn)程并實(shí)現(xiàn)進(jìn)程間的隔離保護(hù)。進(jìn)程根據(jù)虛擬地址(VA: Virtual Address),進(jìn)程訪問內(nèi)存時(shí)內(nèi)存管理單元MMU把根據(jù)頁表把虛擬地址轉(zhuǎn)換為物理地址(PA: Physical Address),并根據(jù)PA來訪問物理內(nèi)存。物理內(nèi)存的地址從0x0開始并且連續(xù),OS負(fù)責(zé)物理內(nèi)存的管理調(diào)度。
引入VMM后,內(nèi)存由VMM來管理和調(diào)度,并由多個(gè)Guest OS共享,Guest OS不再擁有對(duì)內(nèi)存的最終管理權(quán)限。為了把真實(shí)機(jī)器上的內(nèi)存和Guest OS“看到”的物理內(nèi)存相區(qū)別,把機(jī)器內(nèi)存的地址稱為機(jī)器地址(MA:Machine Address)。至此在虛擬機(jī)系統(tǒng)中存在3種地址:進(jìn)程使用的虛擬地址VA、操作系統(tǒng)使用的物理地址PA、VMM使用的機(jī)器地址MA;從而需要執(zhí)行2個(gè)地址翻譯過程:操作系統(tǒng)將 VA翻譯為 PA,VMM將 PA翻譯為MA。
為了實(shí)現(xiàn)上述翻譯過程,VMM在Guest OS構(gòu)造的頁表(稱為 GPT:Guest Page Table)的基礎(chǔ)上,構(gòu)造一個(gè)VA到MA翻譯的頁表,這個(gè)頁表也稱為影子頁表(SPT:Shadow Page Table)。處理器實(shí)際使用的就是VMM構(gòu)造的SPT,而不再是OS建立的GPT。
影子頁表的構(gòu)造在準(zhǔn)虛擬化和全虛擬化方式中有所不同。在準(zhǔn)虛擬化方式下, Guest OS修改頁表時(shí)可主動(dòng)調(diào)用VMM的程序來同步影子頁表的更新[5]。但在全虛擬化系統(tǒng)中,VMM 只能在Guest OS加載新頁表時(shí)(既寫x86 CR3寄存器,為特權(quán)操作)截獲該操作并構(gòu)造影子頁表;并將存放Guest OS頁表的內(nèi)存頁面屬性設(shè)置為只讀,則當(dāng)Guest OS修改頁表內(nèi)容時(shí)VMM就能截獲該操作并同步影子頁表[33]。
有效的內(nèi)存管理和調(diào)度對(duì)于保證虛擬機(jī)系統(tǒng)的性能至關(guān)重要。Guest OS可以獲知每個(gè)頁面的用途(代碼、數(shù)據(jù)或緩存等)以及每個(gè)頁面的訪問情況,從而可以制定有效的回收策略。但VMM無法像OS一樣獲得每個(gè)頁面的使用情況,難以實(shí)現(xiàn)有效的頁面調(diào)度。為解決該問題,VMWare提出了Balloon Process的方法[33]。Balloon Process是運(yùn)行在 Guest OS上的一個(gè)進(jìn)程,可利用私有通道和VMM通信。當(dāng)VMM需要從一個(gè)VM回收內(nèi)存時(shí),就通知Balloon Process,讓其從OS申請(qǐng)物理內(nèi)存,然后將這些內(nèi)存的物理地址告訴VMM,VMM就可以回收并重新使用這些內(nèi)存。
當(dāng)多個(gè)虛擬機(jī)運(yùn)行上相同的OS時(shí),就存在OS映象的多個(gè)拷貝。由于OS代碼龐大,多個(gè)映象必然占用大量內(nèi)存。如果讓不同虛擬機(jī)上的OS共享只讀代碼段,就可在計(jì)算機(jī)上同時(shí)運(yùn)行更多的虛擬機(jī)。VMWare虛擬機(jī)中比較不同VM頁面的內(nèi)容,如果內(nèi)容相同就讓它們共享同一個(gè)頁面;如果一個(gè)虛擬機(jī)要修改共享頁,則使用寫時(shí)拷貝技術(shù)為其分配獨(dú)立的頁面[33]。
虛擬機(jī)系統(tǒng)中每次Guest OS修改頁表時(shí)都需要陷入到VMM以同步影子頁表,這種處理嚴(yán)重影響虛擬機(jī)系統(tǒng)的性能。為解決該問題,Intel和AMD分別提出了Extended Page Tables (EPT)和 Nested Page Tables (NPT)的 MMU 虛擬化方法[2]。這些方法定義了由處理器支持的2級(jí)頁表,分別完成VA到PA、PA到MA的翻譯,VMM不再需要維護(hù)影子頁表,從而有效提高虛擬機(jī)系統(tǒng)的性能。
目前虛擬機(jī)中存 I/O 虛擬化的實(shí)現(xiàn)可分為VMM-based I/O、Host-based I/O、和Direct I/O等多種方式。
該模型的結(jié)構(gòu)如圖2(a)所示。該模型中由VMM實(shí)現(xiàn)對(duì)物理I/O設(shè)備的驅(qū)動(dòng)。與此同時(shí),VMM為每個(gè)VM模擬一個(gè)獨(dú)享的設(shè)備,該模擬設(shè)備和物理設(shè)備可以不同。當(dāng)VM訪問模擬I/O設(shè)備時(shí)會(huì)陷入VMM。VMM根據(jù)模擬設(shè)備的狀態(tài)執(zhí)行相關(guān)指令。當(dāng)一個(gè)完整的操作能夠執(zhí)行時(shí),比如已設(shè)置好模擬網(wǎng)卡的相關(guān)寄存器并啟動(dòng)發(fā)送網(wǎng)絡(luò)包時(shí),VMM將在真實(shí)的I/O設(shè)備執(zhí)行該操作。雖然這種模型性能優(yōu)異,但由于計(jì)算機(jī)系統(tǒng)中I/O設(shè)備的多樣性和復(fù)雜性,為其開發(fā)驅(qū)動(dòng)是一個(gè)極其繁重的工作,因此這種模型一般在面向服務(wù)器的虛擬機(jī)系統(tǒng)如VMWare ESX 中使用[20],而在面向個(gè)人計(jì)算機(jī)的虛擬機(jī)中更多使用Host-based I/O模型。
現(xiàn)代操作系統(tǒng)對(duì)各種I/O設(shè)備已提供了完善的支持,利用已有操作系統(tǒng)中的驅(qū)動(dòng)程序來訪問I/O設(shè)備可以顯著簡化虛擬機(jī)的設(shè)計(jì)。這種模型的結(jié)構(gòu)如圖2(b)所示。
圖2 虛擬機(jī)I/O實(shí)現(xiàn)模型
該模型中用一個(gè)定制的、運(yùn)行在VM上的OS完成I/O設(shè)備驅(qū)動(dòng)功能,并在OS上運(yùn)行I/O設(shè)備模擬程序,這個(gè)OS也稱為Host OS。當(dāng)Guest OS訪問I/O設(shè)備時(shí)VMM將I/O請(qǐng)求轉(zhuǎn)交給運(yùn)行在Host OS上的設(shè)備模擬程序,模擬程序再調(diào)用OS 的系統(tǒng)調(diào)用來完成對(duì)物理I/O設(shè)備的訪問。很顯然,這種簡化I/O驅(qū)動(dòng)開發(fā)的代價(jià)是顯著增加了I/O訪問路徑的長度,降低了I/O吞吐量。虛擬機(jī)Xen中利用Host OS和Guest OS之間共享頁面來減少數(shù)據(jù)拷貝的次數(shù),并采用批處理方式一次發(fā)送多個(gè)I/O請(qǐng)求來減少處理開銷。這些優(yōu)化獲得顯著效果,使得Guest OS訪問I/O設(shè)備的性能可以接近于Host OS的性能[18]。筆者提出了一種適用于全虛擬化系統(tǒng)的I/O優(yōu)化方法,該方法將模擬I/O設(shè)備的狀態(tài)保存在VMM中,而實(shí)現(xiàn)模擬設(shè)備功能的代碼仍然運(yùn)行在Host OS 中,在不改變VMM結(jié)構(gòu)的前提下顯著提高了I/O吞吐量[35]。
虛擬機(jī)的Host-based I/O模型和VMM-based I/O模型難以滿足高性能計(jì)算的需求。為了減少通信延遲,可借鑒OS-Bypass的思想[4],讓運(yùn)行在OS上的應(yīng)用程序繞過OS和VMM直接訪問I/O設(shè)備,這種方式稱為Direct I/O。這種模型的實(shí)現(xiàn)需要I/O設(shè)備的支持,文獻(xiàn)[16]對(duì)這種模型進(jìn)行了研究,獲得了良好的結(jié)果,這種模型在高性能計(jì)算領(lǐng)域具有良好應(yīng)用前景。
基于軟件方式實(shí)現(xiàn)I/O虛擬化存在安全隔離和性能兩方面的問題:虛擬機(jī)系統(tǒng)中一個(gè) VM 可通過 I/O設(shè)備的DMA操作訪問到其它VM的空間,因此無法實(shí)現(xiàn)徹底隔離;另一方面,Guest OS對(duì)設(shè)備的訪問都要經(jīng)過VMM,影響了I/O性能。通過硬件方式實(shí)現(xiàn)I/O虛擬化則可以有效解決這些問題。目前工業(yè)界對(duì)I/O設(shè)備虛擬化的支持分為2個(gè)階段:IOMMU和PCI-SIG,后者的標(biāo)準(zhǔn)仍在制定之中[23]。Intel和AMD目前已實(shí)現(xiàn)了對(duì)IOMMU的支持,分別稱為VT-d和DEV[1][2][6]。IOMMU位于計(jì)算機(jī)的北橋芯片中,能夠檢查并限制I/O設(shè)備在執(zhí)行DMA操作時(shí)能夠訪問的地址空間范圍,從而實(shí)現(xiàn)VM之間的安全隔離;IOMMU還可以實(shí)現(xiàn)地址翻譯,將 I/O設(shè)備發(fā)出的DMA操作地址(物理地址)翻譯為機(jī)器地址,因此VM直接訪問設(shè)備時(shí)不再需要VMM進(jìn)行地址翻譯。IOMMU的不足之處在于無法支持多個(gè)VM對(duì)設(shè)備的共享,這一問題有望在PCI-SIG規(guī)范中得到解決。
現(xiàn)代計(jì)算機(jī)系統(tǒng)性能的快速發(fā)展,尤其是近年來多核CPU 的發(fā)展為虛擬機(jī)應(yīng)用提供了廣闊的舞臺(tái)。基于虛擬機(jī)可以實(shí)現(xiàn)服務(wù)器的整合,將原來運(yùn)行在不同計(jì)算機(jī)、不同操作系統(tǒng)上的任務(wù)整合到單臺(tái)計(jì)算機(jī)上,從而顯著降低信息系統(tǒng)的購置、運(yùn)行和維護(hù)成本;虛擬機(jī)也是新興的云計(jì)算的基礎(chǔ)[8]。云計(jì)算基于虛擬機(jī)技術(shù)為用戶提供可定制、可保證服務(wù)質(zhì)量的計(jì)算能力,使得計(jì)算成為一種可按需定制的公用服務(wù),有望成為未來計(jì)算機(jī)應(yīng)用的主要模式。
虛擬機(jī)使得其上的Guest OS和底層硬件不再緊密耦合,從而可以將其狀態(tài)完整地遷移到其它計(jì)算機(jī)系統(tǒng)并恢復(fù)運(yùn)行,這種在線遷移能力為集群均衡、移動(dòng)計(jì)算、以及高可靠系統(tǒng)的實(shí)現(xiàn)提供了革新的技術(shù)手段[21][32];虛擬機(jī)監(jiān)視器可以監(jiān)控Guest OS的行為,并且自身復(fù)雜度小,可以實(shí)現(xiàn)可驗(yàn)證的安全,基于虛擬機(jī)實(shí)現(xiàn)可信計(jì)算基是一個(gè)新的途經(jīng),已受到廣泛關(guān)注[15][26][29];虛擬機(jī)系統(tǒng)中系統(tǒng)軟件的安裝可簡化為一個(gè)簡單的文件拷貝。這種基于虛擬機(jī)系統(tǒng),包含了定制OS和應(yīng)用軟件的方式有可能成為未來軟件發(fā)布的主要方式[22]。
本文對(duì)虛擬機(jī)的原理進(jìn)行了介紹,對(duì)其關(guān)鍵技術(shù)和當(dāng)前發(fā)展現(xiàn)狀進(jìn)行了深入分析。虛擬機(jī)的研究和應(yīng)用方興未艾。由于虛擬機(jī)系統(tǒng)將原來運(yùn)行在多臺(tái)獨(dú)立計(jì)算機(jī)系統(tǒng)中的任務(wù)整合到單臺(tái)計(jì)算機(jī)上,因此虛擬機(jī)系統(tǒng)的性能,尤其是I/O系統(tǒng)的性能,以及服務(wù)質(zhì)量的保證在長時(shí)間內(nèi)仍將是研究的熱點(diǎn)。基于分布式協(xié)同的VMM將是虛擬機(jī)系統(tǒng)的發(fā)展方向。而基于虛擬機(jī)技術(shù)的云計(jì)算將成為未來計(jì)算機(jī)應(yīng)用的主要模式。
[1]Abramson D,Jackson J,Muthrasanallur S,et al. Intel Virtualization Technology for Directed I/O [J]. Intel Technology Journal, 2006, 10(3): 179-192.
[2]AMD Inc.AMD64 Virtualization Codenamed“Pacifica”[Z]. Technology: Secure Virtual Machine Architecture Reference Manual, May 2005.http://www.amd.com/us-en/assets/content_type/white_p apers_and_tech_docs/33047.pdf.
[3]AMD Inc. AMD I/O Vitualization Technology (IOMMU)Specification. 2007.http://www.amd.com/us-en/assets/content_type/white_p apers_and_tech_docs/34434.pdf.
[4]Bhoedjang R A F,Ruhl T, et al. User-Level Network Interface Protocols [J]. IEEE Computer, pages 53–60.Nov,1998.
[5]Barham P, Fraser D B,K Xen and the Art of Virtualization [C]//ACM Symposium on Operating Systems Principles,2003,164-177.
[6]Yehuda M B, Mason J, Krieger O, Wahlig E. Utilizing IOMMUs for Virtualization in Linux and Xen [C]//Proc.of the 2006 Ottawa Linux Symposium (OLS), Ottawa,Canada, July, 2006.
[7]Bradford R , Kotsovinos E , Feldmann A , Schi?berg H.Live wide-area migration of virtual machines including local persistent state [C]//Proceedings of the 3rd international conference on Virtual execution environments. San Diego, California, USA . Jue.,2007.
[8]Hayes B. Cloud computing [J]. Communication of ACM. 2008,51(7).
[9]Childs S, Coghlan B, O'Callaghan D, Quigley G, Walsh J. Deployment of grid gateways using virtual machines[C]//Advance in Grid Computing - EGC 2005. Lecture Notes in Computer Science 3470: 761-770, 2005.
[10]Clark C,Fraser, K,Hand S.et al. Live Migration of Virtual Machines [C]//Proceedings of the Second Symposium on Networked Systems Design and Implementation (NSDI), 2005, 273-286.
[11]Dong Y,Li S,Mallick A., et al. Extending Xen with Intel Virtualization Technology [J]. Intel Technology Journal,10(3):193-204.
[12]Bugnion E, Devine S, Govil K, et al. Disco: Running Commodity Operating Systems on Scalable Multiprocessors [J]. ACM Transaction on Computer Systems, 1997,15(4)
[13]Fraser K,Hand S,Neugebauer R,et al. Safe Hardware Access with the Xen Virtual Machine Monitor[C]//Proceedings of the Workshop on Operating System and Architectural Support for the On Demand IT InfraStructure (OASIS), 2004.
[14]Gum P H. System/370 Extended Architecture: Facilities for Virtual Machines [J]. IBM Journal of Research and Development, 1983, 27 (6): 530-544.
[15]Gregory Collier, Derek Plassman, Mahmoud Pegah.Virtualization's next frontier: security [C]//Proceedings of the 35th annual ACM SIGUCCS conference on User services SIGUCCS '07, Oct. 2007.
[16]Liu J,Huang W,Abali B,et al. High Performance VMM-Bypass I/O in Virtual Machines [C]//Proceedings of the International Conference on Supercomputing,2006, 125-134.
[17]Menasc′e D A,Bennani M N. Autonomic Virtualized Environments [C]//International Conference on Autonomic and Autonomous Systems, 2006, ICAS'06.art. no. 1690238.
[18]Menon A,Cox A L,Zwaenepoel W.Optimizing Network Virtualization in Xen [C]//Proceedings of the USENIX Annual Technical Conference, 2006, 15-28.
[19]Rosenblum M, Garfinkel T. Virtual Machine Monitors:Current technology and future trends [J]. Computer,2005, 38 (5): 39-47.
[20]Steil M. Inside VMware[DB/OL].2006. http://events.ccc.de/congress/2006/Fahrplan/attachments/1132-Inside VMware.pdf.
[21]Kozuch M.Satyanarayanan. Internet Suspend/Resume[C]//Proc. IEEE Workshop Mobile Computing Systems and Applications, IEEE Press, 2002, pp. 40-46.
[22]Open Virtual Machine Format Specification (OVF)[DB/OL].2007.http://xml.coverpages.org/ni2007-09-11-a.html.
[23]PCI-SIG I/O Virtualization (IOV)Specifications[DB/OL]. http://www.pcisig.com/specifications/iov/
[24]Popek G J,Goldberg R P. Formal requirements for virtualizable third generation architectures [J].Communications of the ACM, 1974, 17 (7): 412-421
[25]Robin J S,Irvine, C E Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor[C]//Proceedings of the 9th USENIX Security Symposium, 2000, 129-144.
[26]Samsung Inc. Secure Xen on ARM: Status and Driver Domain Separation [DB/OL].Xen Summit. Nov.,2007.http://www.xen.org/xensummit/xensummit_fall_2007.ht ml
[27]Sapuntzakis C P,Chandra R,Pfaff B,et al. Optimizing the Migration of Virtual Computers [J]. ACM SIGOPS Operating Systems Review, 2002, 36 (SI): 377-390.
[28]Sugerman J,Venkitachalam G,Lim B H. Virtualizing I/O Devices on Vmware Workstation’s Hosted Virtual Machine Monitor [C]//Proceedings of the 2001 USENIX Annual Technical Conference, 2001, 1-14 .
[29]Garfinkel T. Terra: A Virtual-Machine-Based Platform for Trusted Computing [C]//Proc. of ACM Symp.Operating Systems Principles, 2003.
[30]Uhlig R.Neiger, G .Rodgers, D.et a1. Intel virtualization technology [J]. Computer, 2005, 38(5): 48-56.
[31]Virtual PC Technical Overview[DB/OL]. 2004.http://www.microsoft.com/windowsxP/virtualPc/evaluat ion/techoverview.asp
[32]Vmware Inc. VMware Infrastructure: Resource Management with VMware DRS[DB/OL].http://www.vmware. com/pdf/vmware_drs_wp.pdf.
[33]Waldspurger C A. Memory resource management in VMware ESX server [C]//Proceedings of the 5th USENIX Symposium on Operating Systems Design and Implementation, 2002, 181-194.
[34]Whitaker A,Shaw M,Gribble S D.Denali: Lightweight Virtual Machines for Distributed and Networked Applications [C]//Proceedings of the 5th USENIX Symposium on Operating Systems Design and Implementation,2002, 195-209
[35]Zhang Jian, Li Xiaoyong, Guan Haibing. The Optimization of Xen Network Virtualization [C]// IEEE Conference proceedings on Computer Science and Software Engineering, 2008.