王 健,王玉松,何 偉,陳 振
(1.成都三零瑞通移動(dòng)通信有限公司,四川 成都 610041;2.電子科技大學(xué),四川 成都 610054)
?
嵌入式虛擬化技術(shù)探討*
王健1,王玉松1,何偉1,陳振2
(1.成都三零瑞通移動(dòng)通信有限公司,四川 成都 610041;2.電子科技大學(xué),四川 成都 610054)
摘要:隨著智能手機(jī)、汽車(chē)電子、醫(yī)療系統(tǒng)等領(lǐng)域的安全性要求日益突出,虛擬化技術(shù)擴(kuò)展到了嵌入式領(lǐng)域。對(duì)嵌入式虛擬化的技術(shù)進(jìn)行了研究,報(bào)告了嵌入式虛擬化發(fā)展現(xiàn)狀,列舉了嵌入式虛擬化的多種好處,包括減少嵌入式系統(tǒng)開(kāi)發(fā)成本、縮短產(chǎn)品上市周期、利于減少功耗、增強(qiáng)安全性與可靠性。指出嵌入式虛擬化面臨的問(wèn)題及關(guān)鍵技術(shù),包括實(shí)時(shí)調(diào)度問(wèn)題、嵌入式硬件平臺(tái)多樣性問(wèn)題、電源管理問(wèn)題以及跨虛擬機(jī)通信問(wèn)題。
關(guān)鍵詞:嵌入式虛擬化;實(shí)時(shí)調(diào)度;虛擬化管理器
0引言
計(jì)算機(jī)系統(tǒng)虛擬化是信息安全領(lǐng)域最近的熱點(diǎn)技術(shù)。虛擬化技術(shù)被列為未來(lái)三年最值得研究的信息安全戰(zhàn)略技術(shù)之首。虛擬化是利用軟件構(gòu)造操作系統(tǒng)或其他軟件的運(yùn)行環(huán)境的技術(shù)[1]。虛擬機(jī)管理器(Virtual Machine Monitor,簡(jiǎn)稱(chēng)VMM)是用來(lái)構(gòu)造虛擬機(jī)的軟件。操作系統(tǒng)運(yùn)行在虛擬機(jī)中,就像運(yùn)行在物理計(jì)算機(jī)上一樣。每個(gè)虛擬計(jì)算機(jī)系統(tǒng)都會(huì)擁有各自的虛擬硬件平臺(tái),包括內(nèi)存、CPU和外設(shè)等,因此虛擬計(jì)算機(jī)系統(tǒng)可以在一個(gè)獨(dú)立的環(huán)境中運(yùn)行。虛擬化包括如下主要作用:整合和優(yōu)化資源,提高設(shè)備的使用效率,減少場(chǎng)地費(fèi)用以及其他電力費(fèi)用,減少企業(yè)信息化的運(yùn)營(yíng)成本。通過(guò)在嵌入式領(lǐng)域中引入虛擬化技術(shù),來(lái)實(shí)現(xiàn)多個(gè)操作系統(tǒng)運(yùn)行在同一硬件平臺(tái)上,這樣能解決嵌入式領(lǐng)域面臨的許多問(wèn)題。首先,虛擬化技術(shù)可以減少嵌入式系統(tǒng)中所使用的芯片數(shù)量。其次,虛擬化技術(shù)可以縮短應(yīng)用軟件的開(kāi)發(fā)周期。另外,隨著越來(lái)越多的嵌入式產(chǎn)品能夠下載或運(yùn)行第三方應(yīng)用軟件,尤其是像電子支付這樣的應(yīng)用,安全性因素變得越來(lái)越重要[2]。運(yùn)用虛擬化技術(shù),嵌入式產(chǎn)品開(kāi)發(fā)商可以在單CPU上運(yùn)行多個(gè)虛擬機(jī),這些條虛擬機(jī)中可運(yùn)行相同或不同的操作系統(tǒng)和自己的應(yīng)用程序[3],由虛擬機(jī)管理器來(lái)管理這些虛擬機(jī)之間的通信(虛擬機(jī)管理器比虛擬機(jī)具有更高的運(yùn)行權(quán)限)。通過(guò)這樣架構(gòu),如果某虛擬機(jī)出現(xiàn)漏洞,虛擬機(jī)管理器可切斷其與其他虛擬機(jī)之間的通信渠道,保證其他虛擬機(jī)的數(shù)據(jù)和功能不受到其攻擊和影響。
1嵌入式虛擬化的概念
1.1嵌入式系統(tǒng)
嵌入式操作系統(tǒng)是針對(duì)特定應(yīng)用領(lǐng)域?qū)S玫牟僮飨到y(tǒng),它具有多任務(wù)、可伸縮、網(wǎng)絡(luò)可接入、支持特定設(shè)備、可伸縮、可裁剪等特性。因此,可以對(duì)其進(jìn)行層次劃分,即同一個(gè)層次包括同一集合中的功能模塊,這樣系統(tǒng)將由一個(gè)多層次的框架組成,這可以幫助理清嵌入式操作系統(tǒng)的整體結(jié)構(gòu)。因此,可將嵌入式操作系統(tǒng)分為四個(gè)層次:硬件接口層、核心層、系統(tǒng)層、系統(tǒng)服務(wù)層,
1.2虛擬化技術(shù)分類(lèi)
1)完全虛擬化
完全虛擬化是在底層硬件之上加了一個(gè)Hypervisor軟件,Hypervisor主要負(fù)責(zé)處理硬件和客戶(hù)操作系統(tǒng)之間的協(xié)調(diào)工作。這種虛擬化技術(shù)最大的特點(diǎn)就是客戶(hù)操作系不用修改就能運(yùn)行于Hypervisor之上,而它們不知道自己在虛擬化環(huán)境下運(yùn)行。因此,完全虛擬化具有很好的兼容性,以及支持不同版本OS的能力。正是由于這個(gè)優(yōu)點(diǎn),完全虛擬化技術(shù)從開(kāi)始就受到客戶(hù)的青睞,而在完全虛擬化技術(shù)上做得最成功的就屬VMware了[4]。完全虛擬化的主要缺點(diǎn)是Hypervisor會(huì)給處理器帶來(lái)較大開(kāi)銷(xiāo)。
2)泛虛擬化
泛虛擬化也是通過(guò)一個(gè)Hypervisor來(lái)實(shí)現(xiàn)多個(gè)客戶(hù)操作系統(tǒng)對(duì)底層硬件的共享訪問(wèn),另外還同時(shí)將與虛擬化有關(guān)的代碼集成到了操作系統(tǒng)本身中。跟完全虛擬化相比,它最大的優(yōu)點(diǎn)是不需要捕獲特權(quán)指令,但是需要修改客戶(hù)操作系統(tǒng)。因此,泛虛擬化會(huì)使開(kāi)發(fā)人員的工作量增加,但是對(duì)內(nèi)核的修改可以使系統(tǒng)的性能得到顯著提高。目前在泛虛擬化上做得最成功的當(dāng)屬?gòu)纳鐓^(qū)里走出的Xen。
3)硬件輔助虛擬化技術(shù)
在硬件輔助虛擬化中,硬件提供結(jié)構(gòu)支持幫助創(chuàng)建虛擬機(jī)監(jiān)視器并且允許客戶(hù)機(jī)操作系統(tǒng)獨(dú)立運(yùn)行[5]。英特爾是世界上首個(gè)在X86平臺(tái)上實(shí)現(xiàn)硬件輔助虛擬化解決方案的公司,它的硬件輔助虛擬化技術(shù)(Intel Virtualization Technology,簡(jiǎn)稱(chēng)Intel VT技術(shù))是一種更加高效卻更簡(jiǎn)單的技術(shù)。它對(duì)如何分配給Guest OS想要的Ring特權(quán)級(jí)別做了很好的改進(jìn)。而隨后AMD也開(kāi)發(fā)出了相應(yīng)的虛擬化技術(shù),AMD虛擬化(AMD Virtualization Technology)的縮寫(xiě)為“AMD VT”,它是AMD為64位的x86架構(gòu)提供的虛擬化擴(kuò)展,但有時(shí)仍然會(huì)用“Pacifica”(AMD開(kāi)發(fā)這項(xiàng)擴(kuò)展時(shí)的內(nèi)部項(xiàng)目代碼)來(lái)指代它。而在嵌入式領(lǐng)域,ARM公司首先使用了硬件輔助虛擬化技術(shù),ARM公司引入了TrustZone虛擬化技術(shù),通過(guò)在CPU硬件內(nèi)核中加入特殊的安全性,為系統(tǒng)提供兩個(gè)并行執(zhí)行的環(huán)境,使得可以在同一硬件平臺(tái)上運(yùn)行兩個(gè)操作系統(tǒng)。
1.3嵌入式虛擬化
目前,泛虛擬化技術(shù)普遍用于嵌入式系統(tǒng)虛擬化中。半虛擬化是指在操作系統(tǒng)和嵌入式硬件平臺(tái)之間加入VMM,由VMM構(gòu)建嵌入式操作系統(tǒng)的運(yùn)行環(huán)境形成多個(gè)獨(dú)立的虛擬機(jī)。不同虛擬機(jī)上可以運(yùn)行不同或相同的操作系統(tǒng)(客戶(hù)操作系統(tǒng)),彼此之問(wèn)隔離。VMM、虛擬機(jī)及其應(yīng)用程序共同構(gòu)成嵌入式虛擬化系統(tǒng)。系統(tǒng)資源由VMM進(jìn)行統(tǒng)一分配:對(duì)于內(nèi)存,VMM給各個(gè)虛擬機(jī)配置不同的內(nèi)存區(qū)域,每個(gè)虛擬機(jī)只能訪問(wèn)自己的內(nèi)存區(qū)域;對(duì)于需不同虛擬機(jī)共享的資源,如CPU、MMU、機(jī)器時(shí)鐘和中斷控制器,由VMM負(fù)責(zé)對(duì)各個(gè)資源的使用權(quán)進(jìn)行調(diào)度。這樣不同虛擬機(jī)可以交替使用資源。
2嵌入式虛擬化的研究現(xiàn)狀
VLX技術(shù)是由VirtualLogix公司開(kāi)發(fā)的一種嵌入式虛擬機(jī)[6]。2009年,VirtualLogix公司在西班牙的移動(dòng)世界大會(huì)上將Android系列2G/3G蜂窩系統(tǒng)中的手機(jī)環(huán)境(Android mobile phone)解決方案展示給公眾,此方案是在ST-Ericsson的單處理器(ARM926)平臺(tái)之上建立的。VLX架構(gòu)是位于系統(tǒng)軟件層和硬件層之間的一個(gè)抽象層,可以通過(guò)對(duì)硬件實(shí)施虛擬化來(lái)實(shí)現(xiàn)對(duì)客戶(hù)操作系統(tǒng)(RTOS和Linux)對(duì)公共資源的請(qǐng)求的處理。VLX對(duì)物理內(nèi)存進(jìn)行分區(qū),使得每個(gè)客戶(hù)操作系統(tǒng)擁有獨(dú)立的內(nèi)存空間,保證客戶(hù)操作系統(tǒng)可以管理自己轄區(qū)內(nèi)的內(nèi)存,而不受到其他客戶(hù)操作系統(tǒng)的干預(yù)。VLX架構(gòu)圖如圖1所示。
圖1 VLX架構(gòu)
2010年,出現(xiàn)了NOVA微虛擬機(jī)監(jiān)控程序。作為L(zhǎng)4微內(nèi)核OS家族的一員,NOVA致力于用盡可能小的可信計(jì)算基構(gòu)建出一個(gè)安全的虛擬化環(huán)境,其微內(nèi)核包括有用于非特權(quán)代碼的獨(dú)立層[7]。NOVA是一個(gè)基于組件的系統(tǒng),借助于新硬件平臺(tái)中虛擬化功能的應(yīng)用,其性能有明顯提高。NOVA由微虛擬機(jī)監(jiān)控程序和用戶(hù)級(jí)環(huán)境組成,它一些核心功能放在了用戶(hù)層上,比如:根分區(qū)管理器(用于管理微內(nèi)核外的資源分配)、底層硬件設(shè)備的驅(qū)動(dòng)程序等。NOVA實(shí)現(xiàn)了全虛擬化,因此客戶(hù)操作系統(tǒng)中的某些特權(quán)指令會(huì)被NOVA模擬成相應(yīng)的微核指令。其VMM還實(shí)現(xiàn)了對(duì)每個(gè)客戶(hù)操作系統(tǒng)中可用設(shè)備的設(shè)備模擬。由于NOVA的這些虛擬化特性,多個(gè)未修改的客戶(hù)操作系統(tǒng)可以同時(shí)運(yùn)行在NOVA上。NOVA的架構(gòu)如圖2所示。
圖2 NOVA架構(gòu)
OKL4的衍生版本Codezero,保留了OKL4的大部分特點(diǎn)及性質(zhì),同時(shí)又有所增強(qiáng),例如支持多核架構(gòu)。它遵循微核的基本原理,因?yàn)樗辉谔貦?quán)微核中實(shí)現(xiàn)地址空間、線程管理和進(jìn)程問(wèn)通信,以及一些虛擬化功能。Codezero是位于硬件層和軟件層之間的一個(gè)虛擬層,通過(guò)這個(gè)虛擬層可以實(shí)現(xiàn)線程處理、進(jìn)程間通信、地址空間管理、地址空間映射、安全性、電源以及錯(cuò)誤恢復(fù)管理[8],在其上支持多個(gè)操作系統(tǒng)的運(yùn)行,同時(shí)也可以直接運(yùn)行應(yīng)用程序。Codezero中的虛擬化是通過(guò)容器實(shí)現(xiàn)的,每個(gè)容器都是一個(gè)隔離的執(zhí)行環(huán)境,包含自己的資源集(例如內(nèi)存和線程等)。這種分區(qū)還與Codezero的安全性和資源管理策略協(xié)同工作,這些策略定義了每個(gè)容器的功能。CodeZero支持最新的Cortex A8,Cortex A9,Cortex A15系列CPU。如圖3所示。
圖3 Codezero架構(gòu)
Xen-ARM是由三星公司領(lǐng)導(dǎo)開(kāi)發(fā)的將 Xen hypervisor 移植到嵌入式平臺(tái)上的項(xiàng)目[9]。這個(gè)架構(gòu)實(shí)現(xiàn)了嵌入式處理器對(duì) Xen 的虛擬機(jī)管理器的支持。此項(xiàng)目解決了存在于嵌入式虛擬化環(huán)境中的多處理器調(diào)度問(wèn)題、實(shí)時(shí)性問(wèn)題等。Xen-ARM 位于嵌入式硬件和嵌入式操作系統(tǒng)之間,為其上的內(nèi)核提供了虛擬化的硬件環(huán)境。為了實(shí)現(xiàn)虛擬機(jī)的安全要求。 Xen-ARM 使用混合模式(Hybrid Model),這樣在 Xen-ARM 上的眾多虛擬域(Domain)中存在一個(gè)特權(quán)域(Privileged Domain)來(lái)管理其它虛擬域,并提供其它虛擬域訪問(wèn) I/O 設(shè)備的接口。這個(gè)特權(quán)域即Domain0(Dom0),其它的虛擬域即Domain U(DomU)。Dom0擁有設(shè)備驅(qū)動(dòng)(Native Device Driver,原生設(shè)備驅(qū)動(dòng)),這樣就可以訪問(wèn)物理硬件。Dom0 也提供控制接口,來(lái)實(shí)現(xiàn)對(duì)DomU的管理。DomU 必須通過(guò) Dom0 才能實(shí)現(xiàn)訪問(wèn)硬件設(shè)備。按照虛擬機(jī)領(lǐng)域的定義,運(yùn)行在 Domain 中的操作系統(tǒng)被稱(chēng)為 GOS(Guest OS)。為了適應(yīng) Xen-ARM 需要對(duì)Guest OS做一些修改。如圖4所示。
圖4 Xen-ARM架構(gòu)
DROP項(xiàng)目(Dresden Real-Time Operating Systems Project)是德國(guó)的一個(gè)操作系統(tǒng)研究項(xiàng)目。在這個(gè)項(xiàng)目的框架下,第二代微內(nèi)核fiasco誕生了,因?yàn)樵趦?nèi)核對(duì)象之間使用的是非阻塞的同步策略,所以具有很強(qiáng)的實(shí)時(shí)性。Fiasco是嚴(yán)格按照L4思想設(shè)計(jì)的微內(nèi)核,內(nèi)核只是實(shí)現(xiàn)基本的功能,包括7個(gè)方面的系統(tǒng)調(diào)用,如線程管理、快速I(mǎi)PC (Fast IPC)、修改調(diào)度策略和任務(wù)管理等。很多操作系統(tǒng)要求的其他的功能,如設(shè)備管理、虛擬內(nèi)存管理、文件管理等都在用戶(hù)空間通過(guò)一些的服務(wù)或者庫(kù)來(lái)實(shí)現(xiàn),被稱(chēng)作L4Env。L4eRTL是在第二代微內(nèi)核L4/Fiasco半虛擬化PaRTiKLe的架構(gòu)下誕生的。在L4/Fiatico上可以運(yùn)行多個(gè)L4eRTL (虛擬化PaRTiKlc)實(shí)例,實(shí)例之間保持相互的隔離,位于不同的地址空間。如果某個(gè)L4eRTL實(shí)例崩潰,其他的L4eRTL實(shí)例不受影響,可以正常運(yùn)行。
圖5 L4eRTL架構(gòu)
3嵌入式虛擬化關(guān)鍵技術(shù)
3.1實(shí)時(shí)調(diào)度
調(diào)度是指資源的調(diào)度,即及時(shí)給實(shí)時(shí)任務(wù)提供必需的資源。這里的資源包括各客戶(hù)操作系統(tǒng)共享的I/O資源、CPU資源以及任務(wù)所需要的其它資源。實(shí)時(shí)任務(wù)分為硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù)[10],此外,還可能包括非實(shí)時(shí)任務(wù)。實(shí)時(shí)調(diào)度在虛擬化系統(tǒng)中一般由VMM級(jí)和客戶(hù)操作系統(tǒng)級(jí)這兩個(gè)軟件層次組成??蛻?hù)操作系統(tǒng)級(jí)實(shí)時(shí)調(diào)度的對(duì)象是實(shí)時(shí)任務(wù)。VMM級(jí)調(diào)度的對(duì)象是虛擬機(jī),即實(shí)時(shí)任務(wù)的集合體[11]。兩級(jí)調(diào)度器必須合作有序。完成實(shí)時(shí)調(diào)度可以通過(guò)以下兩種方法:第一種方法是將各客戶(hù)操作系統(tǒng)內(nèi)的實(shí)時(shí)任務(wù)的優(yōu)先級(jí)提取出來(lái),然后映射成全局優(yōu)先級(jí)。由VMM根據(jù)全局優(yōu)先級(jí)負(fù)責(zé)全局調(diào)度。這一方法的缺點(diǎn)是新加入的實(shí)時(shí)任務(wù)也要進(jìn)行重新分析,系統(tǒng)的擴(kuò)展性受到限制。第二種方法是通過(guò)操作系統(tǒng)級(jí)調(diào)度器向VMM級(jí)調(diào)度器動(dòng)態(tài)地申請(qǐng)資源,客戶(hù)操作系統(tǒng)內(nèi)的實(shí)時(shí)任務(wù)只能使用該操作系統(tǒng)所被分配的資源。VMM級(jí)調(diào)度器分配資源是根據(jù)調(diào)度策略來(lái)調(diào)度的。這一方法避免了建立全局優(yōu)先級(jí),消除了加入新實(shí)時(shí)任務(wù)時(shí)必須做的全局分析所帶來(lái)的損失,但增加了VMM級(jí)調(diào)度器的復(fù)雜性。
3.2跨虛擬機(jī)的進(jìn)程通信
運(yùn)行于不同虛擬機(jī)內(nèi)的進(jìn)程之間可能需要相互通信。高效的做法就是通過(guò)共享內(nèi)存?zhèn)鬏敶笃臄?shù)據(jù)。但是不同虛擬機(jī)的內(nèi)存空間之間是相互隔離。在虛擬機(jī)之間傳遞共享的內(nèi)存區(qū)域需要涉及到以下操作:VMM檢測(cè)數(shù)據(jù)傳輸是否合法;從輸出虛擬機(jī)的全局內(nèi)存空間表中刪除共享內(nèi)存區(qū)域,此時(shí)共享內(nèi)存區(qū)域歸VMM所有;把共享內(nèi)存區(qū)域加到輸入進(jìn)程頁(yè)表。從輸出進(jìn)程頁(yè)表刪掉共享的內(nèi)存區(qū)域;在輸入虛擬機(jī)的全局內(nèi)存空間表中共享內(nèi)存區(qū)域。
另外一種普遍采用的通信方式是消息傳遞,比如L4微內(nèi)核的IPC機(jī)制。它允許在不同地址空間的線程通過(guò)發(fā)送消息來(lái)通信,通常用于短消息和線程同步。
3.3嵌入式VMM設(shè)計(jì)考慮
嵌入式系統(tǒng)的軟件設(shè)計(jì)要求與桌面或服務(wù)器環(huán)境的軟件設(shè)計(jì)要求有所不同。這些要求包括很多方面,比如系統(tǒng)的封閉性和在系統(tǒng)上運(yùn)行任務(wù)的實(shí)時(shí)性。針對(duì)嵌入式系統(tǒng) ,VMM的設(shè)計(jì)應(yīng)該考慮到嵌入式系統(tǒng)獨(dú)特的隔離要求[12]。VMM如何彼此隔離由一般VMM與嵌入式VMM要求之間的差異決定。絕大多數(shù)嵌入式系統(tǒng)是封閉的,即所有的軟件由一個(gè)廠家編寫(xiě),用戶(hù)不能夠自己運(yùn)行自己的軟件[13]。而在有些情況下,可以降低通用VMM中的隔離性的要求。在嵌入式系統(tǒng)中,減少隔離可提高性能的預(yù)期或提高性能。但在一般情況下,不應(yīng)該降低隔離,而是應(yīng)該加固隔離,比如安全嵌入式系統(tǒng),甚至可以要求認(rèn)證。通過(guò)降低隔離要求以獲取最優(yōu)化性能的方法有兩個(gè)。第一個(gè)方法是運(yùn)行時(shí)不分頁(yè)。因?yàn)榭珥?yè)使實(shí)時(shí)系統(tǒng)預(yù)期的代碼性能有所下降,而且難以有效地滿(mǎn)足實(shí)時(shí)性,同時(shí)也將導(dǎo)致整體性能降低。 在Intel VT系統(tǒng)就采用了這種方法。其客戶(hù)操作系統(tǒng)能讀寫(xiě)所有物理內(nèi)存,包括設(shè)備和其他客戶(hù)操作系統(tǒng)的內(nèi)存。在一般的通用環(huán)境中,這是不允許的,可在一些特定環(huán)境下,卻是最好的選擇。第二個(gè)方法是允許直接訪問(wèn)I/O設(shè)備。對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),I/O的性能對(duì)于整個(gè)系統(tǒng)的性能至關(guān)重要。這導(dǎo)致一些嵌入式 VMM 廠家允許虛擬機(jī)直接訪問(wèn)DMA設(shè)備。這樣雖然可以提高性能,但是卻留下了系統(tǒng)上的其他客戶(hù)操作系統(tǒng)內(nèi)存被一些惡意應(yīng)用或設(shè)備驅(qū)動(dòng)讀寫(xiě)的隱患,這會(huì)造成信息泄露,嚴(yán)重影響系統(tǒng)安全。這些方法雖然會(huì)提高嵌入式環(huán)境的性能,但是一般支持有關(guān)安全和有關(guān)安全裝置的環(huán)境不允許這種折衷。
3.4靜態(tài)虛擬機(jī)
很多嵌入式系統(tǒng)在設(shè)計(jì)前,就已經(jīng)知道會(huì)運(yùn)行什么任務(wù),會(huì)使用什么硬件。因此,設(shè)計(jì)者就需要在設(shè)計(jì)時(shí)決定怎樣分配運(yùn)行任務(wù)的硬件。這樣,當(dāng)使用嵌入式操作系統(tǒng)時(shí),一般地,設(shè)計(jì)者給處理任務(wù)靜態(tài)分配指定的內(nèi)存區(qū)域和指定的核。這樣可以減少動(dòng)態(tài)內(nèi)存管理和動(dòng)態(tài)調(diào)度等,這些都是在GPOS中完成[14]。在虛擬化環(huán)境中,客體操作系統(tǒng)的內(nèi)存管理和處理器調(diào)度工作交由VMM 完成,客戶(hù)操作系統(tǒng)中的應(yīng)用程序處理器調(diào)度和內(nèi)存管理由操作系統(tǒng)(OS)負(fù)責(zé)執(zhí)行。在嵌入式環(huán)境中,對(duì)OS的很多要求即是對(duì)嵌入式環(huán)境中的VMM的要求。此外需要注意,系統(tǒng)設(shè)計(jì)者可以使用靜態(tài)配置方式將資源分配給虛擬機(jī)。嵌入式環(huán)境在以下兩個(gè)方面對(duì) VMM 的設(shè)計(jì)做了一些修改:第一,簡(jiǎn)化了調(diào)度的設(shè)計(jì),設(shè)計(jì)者可能手工靜態(tài)地把任務(wù)映射到處理器核。調(diào)度發(fā)生在同一個(gè)核上的虛擬機(jī)之間,使用的調(diào)度策略與桌面系統(tǒng)使用的調(diào)度策略有所不同,簡(jiǎn)化內(nèi)核之間的調(diào)度。第二,內(nèi)存管理的設(shè)計(jì)會(huì)更多地針對(duì)可配置性,并不是針對(duì)動(dòng)態(tài)分配。VMM 擁有設(shè)計(jì)者規(guī)劃好的內(nèi)存區(qū)域,然后再把自己的內(nèi)存區(qū)域分配給每個(gè)虛擬機(jī)。這樣雖然使得VMM內(nèi)存管理的設(shè)計(jì)有所簡(jiǎn)化,但是配置VMM卻變得更加復(fù)雜。
4結(jié)語(yǔ)
在人們的日常生活中,嵌入式設(shè)備越來(lái)越普及。無(wú)論是日常生活中使用的移動(dòng)智能終端,比如手機(jī)、平板等消費(fèi)類(lèi)電子設(shè)備,還是冰箱以及電視、洗衣機(jī)這樣的大型設(shè)備都有著嵌入式設(shè)備的貢獻(xiàn),它們正在給人們帶來(lái)完全不一樣的新的生活體驗(yàn),科技正在快速地改變?nèi)藗兊纳?。同時(shí),人們對(duì)這些設(shè)備的性能也提出了更高的要求。對(duì)用戶(hù)而言,不僅希望系統(tǒng)能夠承載豐富的應(yīng)用軟件,還希望系統(tǒng)具有良好的安全性和實(shí)時(shí)性;對(duì)廠家而言,希望能縮短應(yīng)用軟件的開(kāi)發(fā)周期,減少系統(tǒng)工作的芯片數(shù)量,縮減企業(yè)的開(kāi)發(fā)成本。本文介紹了嵌入式虛擬化的定義及發(fā)展現(xiàn)狀,列舉了嵌入式虛擬化的多種好處,給出了嵌入式虛擬化的關(guān)鍵技術(shù)以及它所面臨的問(wèn)題。雖然國(guó)外有此類(lèi)相對(duì)成熟的產(chǎn)品,但國(guó)內(nèi)的同類(lèi)產(chǎn)品及技術(shù)水平還相對(duì)落后,因此必需投入更多研究精力。
參考文獻(xiàn):
[1]金海.計(jì)算機(jī)系統(tǒng)虛拙化:原理與應(yīng)用[M].北京:清華大學(xué)出版社.2008.JIN Hai.Computer System Virtulation: Principle and Application [M].Beijing: Tsinghua University Press.2008.
[2]文軍,張思峰,李濤柱.移動(dòng)互聯(lián)網(wǎng)技術(shù)發(fā)展現(xiàn)狀及趨勢(shì)綜述[J].通信技術(shù),2014,45(09):977-984.
WEN Jun,ZHANG Si-feng,LI Tao-zhu.Mobile Internet Technology Development Status and Trend Review.[J].Journal of Communications Technology,2014,45(09):977-984.
[3]Heiser G.The Role of Virtualization in Embedded Systems[C].Proceedings of the 1st workshop on Isolation and Integration in Embedded Systems,2008,30(4):11-16.
[4]張超.VMware虛擬化服務(wù)器的構(gòu)建方法與展望[J].通信技術(shù),2010,43(09):88-91.
ZHANG Chao.VMware Virtualization Server Construction Methods and Prospect[J].Journal of Communications Technology,2010,43 (09):88-91.
[5]Masmano M,Ripoll I,Crespo A.Xtratum:a Hypervisor for Safety Critical Embedded Systems[C].Proceedings of 11th Real-Time Linux Workshop,2009,3(1):263-271.
[6]葉常春.嵌入式虛擬化技術(shù)[J].計(jì)算機(jī)工程與科學(xué),2012,34(03):41-45.
YE Chang-chun.Embedded Virtualization Technology [J].Computer Engineering and Science,2012,34(03):41-45.
[7]黃南雁.基于NOVA架構(gòu)的資源服務(wù)平臺(tái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2011.
HUANG Nan-yan.Resource Service Platform based on the NOVA Structure System Design and Implementation [D].Changchun: Jilin University,2011.
[8]Kolchin I,Nikolaev M,Parfenov S.Hardware.Specific Bare—Metal Microhypervisor Prototype[C].Proceedings of 42ndInternational Conference Oil Parallel Processing,2013,35(7):1038-1043.
[9]Y Ming-ji,C Fang-xian,W Xue-jun.Design of FAT32 File System of SD Card in Embedded System[J].Audio Engineering,2010,34(4): 36-39.
[10]江慧琴 ,徐敏.中斷管理進(jìn)程化改善 Linux 實(shí)時(shí)性能方法研究[J].現(xiàn)代電子技術(shù),2007,30(14):46-47,54.
JIANG Hui-qin,XU Min.Interrupt Management Process,Improve the Linux Real-Time Performance Method Research[J].Journal of Modern Electronic Technology,2007,30(14):46-47,54 .
[11]Park M,C Hong,S Yoo.VIT: A Timer Hypercall to Support Real-Time of Guest Operating Systems[J].Journal of KISS: Computer Systems and Theory,2010,37(1):35-42.
[12]張歡慶,高麗,宋承祥.基于ARM的嵌入式Linux交叉編譯環(huán)境的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2012,40(2):151.1532001,15(6): 1076-1084.
ZHANG Huan-qin,GAO Li,SONG Cheng-xiang.Based on ARM Embedded Linux Cross Compile Environment[J].Computer and Digital Engineering,2012,40(2):151.1532001,15(6): 1076-1084.
[13]王景偉.網(wǎng)絡(luò)攻擊技術(shù)與網(wǎng)絡(luò)安全探析[J].通信技術(shù),2010,43(03):41-45.
WANG Jin-wei.Network Attack Technology and Network Security Analysis[J].Journal of Communications Technology,2010,43(03):41-45.
[14]葛勤革.虛擬化:技術(shù)、應(yīng)用與挑戰(zhàn)[J].通信技術(shù),2011,44(10):91-93.
GE Qin-ge.Virtualization: Technology,Applications and Challenges[J].Journal of Communications Technology,2011,44(10):91-93.
Embedded Virtualization Technology
WANG Jian1,WANG Yu-song1,HE Wei1,CHEN Zhen2
(1.Chengdu Raycom Mobile Communication Co.,Ltd.,Chengdu Sichuan 610041,China;2.University of Electronic Science and Technology of China,Chengdu Sichuan 610041,China)
Abstract:With the increasingly prominent security requirements in areas such as smart phones,automobile electronics,medical systems,virtualization technology is extended to the embedded system field.The embedded virtualization technology is generally studied,the state-of-the-art of embedded-virtualization reported,and the advantages of embedded virtualization also listed,including the decrease reduction of embedded-system development cost and power consumption,the reduction of product cycle and the raise of safety and reliability.Finally,the problems faced by embedded virtualization and key technologies are presented,including real-time scheduling problem,embedded hardware platform diversity,power management,and the communication across the virtual machines.
Key words:embedded virtualization; real-time scheduling; virtualization manager
doi:10.3969/j.issn.1002-0802.2016.02.024
* 收稿日期:2015-09-06;修回日期:2015-12-09Received date:2015-09-06;Revised date:2015-12-09
基金項(xiàng)目:四川省應(yīng)用基礎(chǔ)項(xiàng)目(No.2013JY0002)
Foundation Item:Application Infrastnccture Project of Sichuan Province(No.2013JY0002)
中圖分類(lèi)號(hào):TP311.1
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1002-0802(2016)02-0247-06
作者簡(jiǎn)介:
王健(1981—),男,學(xué)士,主要研究方向?yàn)樾畔踩?、終端安全和密碼技術(shù);
王玉松(1976—),男,碩士,主要研究方向?yàn)椴僮飨到y(tǒng)內(nèi)核及驅(qū)動(dòng)、虛擬機(jī)及嵌入式設(shè)備系統(tǒng);
何偉(1984—),男,學(xué)士,主要研究方向?yàn)椴僮飨到y(tǒng)及應(yīng)用安全;
陳振(1990—),男,碩士研究生,主要研究方向?yàn)橐苿?dòng)終端安全技術(shù)。