嵌入式實時Hypervisor:XtratuM (2)

第1章  

1.1           研究現狀

Hypervisor也被稱作虛擬機監控器(VMMVirtual Machine Monitor),它是一個基於計算機硬件平臺的軟件(可以是系統軟件也可以是應用軟件),允許多個操作系統在一個硬件平臺上並行運行。Hypervisor系統被分爲兩類:I型和II[1]

I型中,Hypervisor作爲系統軟件直接運行於主機硬件之上,可以直接控制物理設備和管理客戶操作系統(Guest OS:所有運行在Hypervisor上的操作系統),通過接口爲客戶操作系統提供服務,類I具有很好的性能保障。屬於I型的典型Hypervisor包含CM/CMSVirtualLogixVLX, TRANGO, IBMPOWER Hypervisor (PowerVM), IBMPR/SM, MicrosoftHyper-V等。IIHypervisor做爲一個應用軟件運行於普通操作系統之上。IIHypervisor作爲一個的軟件應用層,而客戶操作系統運行於硬件以上第三層(普通操作系統->Hypervisor->客戶操作系統)。由於軟件層次複雜,從而導致IIHypervisor支持的客戶操作系統性能較低。屬於II型的HypervisorVMware Server (GSX), VMware Workstation, SunVirtualBox, 以及開源虛擬機軟件QEMU等。

Hypervisor的概念最早由IBM在三十多年前提出。當時,IBM使用Hypervisor目的是爲了保證IBM舊的操作系統可以運行在新的硬件平臺上,以及加速操作系統的開發和測試。雖然Hypervisor使用給軟件或硬件的開發、測試、系統健壯性等方面帶來很多優點,但是Hypervisor技術的使用始終沒有與大型主機的應用環境脫離。直到1999年,VMware在個人計算機上成功的演示了VMware Workstation,並獲得理想性能,Hypervisor技術開始在個人桌面領域應用和推廣[2]。從此,個人桌面領域的Hypervisor主要由VMware+WINDOWS佔領。

近年來,一些新型的個人桌面Hypervisor系統開始陸續出現。2003年,Xen Hypervisor系統開始正式公開發布,當前Xen的發佈已經被包含在FreeBSDLinuxNetBSD、以及Plan 9等多種操作系統中。另外,基於OpenSolaris操作系統重新實現的Xen被稱作Sun xVM Server也已經發布[3]2005年,Parallels公司發佈了Parallels Workstation,它是基於MAC OS X個人計算機的Hypervisor系統[4]2008年六月,微軟發佈了IHypervisor Hyper-V,從Windows Vista開始的新版本的微軟操作系統運行在Hyper-V上有較好性能[5]。另外,基於LinuxKVM(for Kernel-based Virtual Machine)以及QEMU也是當前開源領域比較流行的Hypervisor。尤其是KVM,已經被Linux內核所接受,QEMU作爲虛擬機運行在KVM構建的Hypervisor環境中[5678]

軟件架構是區別I型和IIHypervisor系統的決定因素,而Hypervisor技術則是影響Hypervisor系統性能和推動Hypervisor應用的關鍵原因。Hypervisor技術可以從軟件或硬件的角度被區別爲軟件虛擬化技術和硬件虛擬化技術。

硬件虛擬化技術的採用在於硬件平臺的設計上,因此,硬件平臺特點是制約Hypervisor技術使用的重要因素。Hypervisor技術在大型服務器系統較早使用的因素就在於系統性能高,具有特殊的支持虛擬技術的硬件模塊和指令集。例如在X86環境中,雖然X86平臺擁有衆多的個人計算機用戶,但是由於系統本身的設計性質,缺乏針對虛擬化技術的支持功能,從而導致Hypervisorx86平臺上應用較晚。伴隨着市場對Hypervisor系統的重視,X86供應商開始在其設備中添加了硬件虛擬輔助部件。例如Intel 發佈的Intel VT[9]以及AMDAMD-V[10]等。這些擴展主要是通過提供特殊的功能以解決X86平臺上建立Hypervisor存在複雜度高、性能低的問題。


爲了滿足Hypervisor系統對客戶操作系統的支持,Hypervisor主要採用兩種軟件虛擬化技術:全虛擬化(Full-Virtualization)和準虛擬化(Paravirtualization) [111213]。全虛擬化一般是通過軟件對所有的硬件進行模擬,構建虛擬設備,從而可以保證客戶操作系統不用修改就可以直接在相應虛擬機平臺上面運行。IIHypervisor通常採用全虛擬化技術。準虛擬化(Paravirtualization)也被稱爲泛虛擬化、半虛擬化,該詞的使用最早源於Denali Hypervisor系統的相關文章中[14]。採用準虛擬化技術,Hypervisor不需要模擬所有的硬件設備,爲了提高Hypervisor環境的性能,系統通過實現針對Hypervisor的系統調用來執行服務請求,直接訪問物理設備,例如I/O訪問,而不是通過虛擬設備間接的訪問物理設備。這種技術在Xen中被叫做準虛擬化技術,Parallels Workstation中稱爲Hypercall,而IBM發佈的VM系統中,被叫做“DIAGNOSE code”。基於該類技術的Hypervisor可以保障運行於其上的客戶操作系統能夠獲取接近於直接運行於硬件上的系統性能,但是運行於該類Hypervisor的客戶操作系統必須經過移植修改。IHypervisor通常採用這種技術。當前,準虛擬化技術被廣泛應用於Hypervisor中。

Hypervisor系統的設計中,並不是每一個Hypervisor只能採用一種虛擬化策略,有些可能兼具二者,例如XenXen是一個純軟件的Hypervisor,它依賴於一個通用操作系統,例如Linux,通過硬件提供的虛擬擴展附件,Xen可以支持準虛擬化和全虛擬化技術。

如前所述,諸如XENVMwareKVMHyper-VVMwareHypervisor系統幾乎都應用於大型主機服務器或個人桌面計算機市場,而針對嵌入式領域的Hypervisor系統或研究還相當薄弱。嵌入式領域中,爲了降低系統的開發週期和成本,越來越多的開發商期望可以直接使用通用操作系統的應用軟件,因此,研究人員開始將通用操作系統向嵌入式系統領域移植。另外,嵌入式系統通常被用於實時應用環境中,但是通用操作系統通常並不具有實時功能,爲此,研究人員不得不在移植過程中改善通用操作系統的實時功能,但是由此帶來的工作量和技術難度相當驚人,實時性能還不好。

爲此,伴隨着硬件平臺性能的提升,Hypervisor系統被引入到嵌入式系統中。通過構建Hypervisor,可以保證通用操作系統和實時操作系統的並行運行,從而使嵌入式系統即能提供應用程序的通用操作系統接口,例如LinuxWindows,又能支持的實時操作系統(RTOSReal-Time Operating Systems)APIs(Application Program Interface)。除了具有支持多種應用軟件以外,採用Hypervisor系統還可以保證整個嵌入式系統的可靠性、穩定性、有效性等。嵌入式系統一般資源稀少、性能較低,因此,Hypervisor系統在嵌入式領域中的應用問題就是性能的問題,尤其是在實時環境中,性能問題更爲重要。由Hypervisor在其它行業的應用經驗可以清晰的認識到,基於準虛擬化技術的IHypervisor具有明顯的性能優勢,因此,構建IHypervisor是嵌入式系統的不二選擇。

創建有效的嵌入式實時Hypervisor系統,主要是針對問題開展研究。性能是Hypervisor解決的首要問題,如上所述,該問題可以通過建立基於準虛擬化的IHypervisor系統解決。另外,Hypervisor還有解決一定的功能問題,即滿足嵌入式軟件程序的需求,嵌入式Hypervisor必須提供對多種操作系統應用軟件的支持,提供相應的函數接口,支持實時任務和非實時任務的同臺並行運行和計算。此外,嵌入式實時Hypervisor還應該解決系統的整體可靠性問題,保證運行於客戶操作系統上層的實時應用軟件具有確定性、可預測性。

現在,已經有一些組織和研究機構從解決嵌入式系統中Hypervisor的主要問題着手,設計和構建不同的嵌入式Hypervisor系統。爲了解決Hypervisor系統的性能和可靠性,通過將微內核或小型內核與虛擬技術的進行結合構建高性能的Hypervisor,例如OKL4(微內核)[16]LynxSecure(小型分離內核)系統[17]OKL4是早的嵌入式商用Hypervisor,它於2005年在移動電話設備中發佈。OKL4LynxSecure都是開源軟件。近兩年來,伴隨着開源嵌入式Hypervisor系統的發佈,商用嵌入式Hypervisor系統開始相繼發佈,LynuxWorks2007發佈LynxSecure2009年二月發佈最新的LynxSecure 2.0版本。Green Hill20072月發佈基於INTEGRITY RTOSPadded Cell hypervisorPadded Cell是一套提供嵌入式和企業領域應用高安全Hypervisor系統,當前已經支持Windows XP[18]20077月,Trango發佈TRANGO Hypervisor,並且與20089月低獲得CSPN(Certification de Sécurité de Premier Niveau - First Level Security Certification)安全認證[19]

文章相關研究是基於XtratuM Hypervisor系統。XtratuM系統是由西班牙瓦倫西亞理工大學工業信息和實時系統研究組和蘭州大學DSLab實驗室共同開發的基於Linux的嵌入式實時虛擬機管理器。2005年,XtratuM 0.1版本在GPL協議下發布,當前XtratuM的最高版本是XtratuM 2.1.0,已經支持x86PowerPCMIPSLEN2等多種處理器[20]XtratuM系統採用超微內核(nano-kernel)技術與虛擬化技術相結合的設計模式。與微內核技術相比,超微內核要求內核更小,更簡單。在XtratuM系統中,Hypervisor內核僅僅負責中斷、時鐘等硬件資源的管理,以及提供基於優先級的虛擬機實時調度器。在XtratuM Hypervisor系統中,客戶操作系統通過Hypercalls訪問底層硬件。XtratuM Hypervisor的目標就是精小、安全、可靠、高效、穩定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章