摘 要:隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)和微電子技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的應(yīng)用越來越廣。嵌入式硬件的快速發(fā)展給系統(tǒng)帶來了高性能,同時也給虛擬化技術(shù)在嵌入式領(lǐng)域的應(yīng)用帶來了曙光。如今,虛擬化技術(shù)在桌面,服務(wù)器市場已經(jīng)趨于成熟,但是嵌入式領(lǐng)域還處于探索研究中。虛擬化技術(shù)使得同一個硬件平臺可以運行多個OS,例如可以整合同一個硬件平臺的GPOS和RTOS。虛擬化技術(shù)采用了雙內(nèi)核方式改善嵌入式linux的實時性問題,它可以滿足硬實時需求。
關(guān)鍵詞:嵌入式linux;實時性;虛擬化
中圖分類號:TP316.81
1 研究背景和目的
嵌入式系統(tǒng)由硬件和軟件兩大部分組成。和傳統(tǒng)的PC機相比,嵌入式系統(tǒng)有其獨特的特點。嵌入式系統(tǒng)有系統(tǒng)內(nèi)核小,專用性強,系統(tǒng)精簡,高實時性O(shè)S,軟件開發(fā)走向標(biāo)準(zhǔn)化,需要開發(fā)工具和環(huán)境的特點。虛擬化技術(shù)使得在一個物理平臺上可以運行多個操作系統(tǒng),它提供了比操作系統(tǒng)更高的獨立性。由于市場需求的擴大,虛擬化的發(fā)展勢頭強勁,這也在相當(dāng)一部分程度上催生了軟件和硬件廠商聯(lián)手進(jìn)軍虛擬化。按照不同的方式,虛擬化可以分為很多種,它可以根據(jù)需求應(yīng)用在不同的場合。一般針對硬件級平臺虛擬化,虛擬化分為泛虛擬化(PV)和全虛擬化(HVM)兩種。
2 國內(nèi)外研究現(xiàn)狀
虛擬化起源于大型機,興盛于服務(wù)器和pc領(lǐng)域,在嵌入式領(lǐng)域尚不成熟,但發(fā)展勢頭迅猛。如今國外已有很多嵌入式虛擬化解決方案,但是大多屬于不開源系統(tǒng),研究相對困難,國內(nèi)在這方面的發(fā)展也比較滯后。
常見的嵌入式虛擬化解決方案有開源社區(qū)的xen on arm,KVM for ARM,virtual logic的VLX,Open Kernel Lab的OKL4 Microvisor,VMware的MVP,Red Bend Software,Trango,Green Hills Software的INTEGRITY secure virtualization,Wind River Hypervisor等。除了xen,KVM外,其余均不開源,且除了Green Hills,KVM,Wind River Hypervisor外,其余均為半虛擬化,只有OKL4可以看到性能測試數(shù)據(jù)。
和國外的研究相比,國內(nèi)的研究尚屬于起步階段,暫未看到值得關(guān)注的研究或產(chǎn)品。雖然現(xiàn)有的研究取得了一定的研究成果,但仍存在很多不足,如實現(xiàn)復(fù)雜、可維護性差等。本文將在已有的研究成果基礎(chǔ)上,進(jìn)一步研究通過虛擬化技術(shù)改善嵌入式linux的實時性問題。
3 嵌入式linux的實時問題研究
3.1 實時嵌入式系統(tǒng)介紹
3.1.1 嵌入式系統(tǒng)
根據(jù)應(yīng)用領(lǐng)域劃分,嵌入式應(yīng)用可分為工業(yè)自動化,商業(yè)軟件,視頻游戲,通信(包括所有互聯(lián)網(wǎng)相關(guān)),醫(yī)療軟件和軍事軟件。
關(guān)于嵌入式系統(tǒng)的定義有多個版本。IEEE(國際電氣和電子工程師協(xié)會)的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置”。在國內(nèi),嵌入式系統(tǒng)最為普遍接受的的定義是指“以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)。一般從廣義上認(rèn)為,除了通用的計算機系統(tǒng)外,所有的智能電子設(shè)備均屬于嵌入式設(shè)備。嵌入性,專用性,計算機是嵌入式系統(tǒng)的三大要素。嵌入式系統(tǒng)的嵌入性是指嵌入式設(shè)備需要嵌入到某個對象體系中,它對對象環(huán)境有要求。專用性是指嵌入式系統(tǒng)的軟硬件需要根據(jù)對象要求進(jìn)行裁剪。嵌入式系統(tǒng)的專用性很強,由于嵌入式系統(tǒng)軟硬件結(jié)合緊密,一般情況下需要針對硬件進(jìn)行系統(tǒng)的移植。
3.1.2 實時嵌入式系統(tǒng)
在嵌入式系統(tǒng)中,有很多系統(tǒng)需要滿足實時性需求,所以很多嵌入式系統(tǒng)往往是實時系統(tǒng)。值得注意的是,并非所有的嵌入式系統(tǒng)都是實時系統(tǒng)。雖然并非所有的嵌入式系統(tǒng)都是使用實時操作系統(tǒng)設(shè)計,但是實時操作系統(tǒng)已經(jīng)成為許多嵌入式系統(tǒng)的關(guān)鍵。一個好的實時嵌入式操作系統(tǒng)必須滿足一些公共屬性,包括可靠,可預(yù)測,高性能,緊湊和可裁剪。
實時嵌入式操作系統(tǒng)實必須是可靠的。根據(jù)實際應(yīng)用,系統(tǒng)對可靠性的程度要求不同。實際中,實時系統(tǒng)本身不能經(jīng)過測量確定系統(tǒng)的可靠性。系統(tǒng)中所有元素的集合,包括硬件,BSP(板級支持包),實時操作系統(tǒng)和應(yīng)用程序共同決定了系統(tǒng)的可靠性。
實時嵌入式系統(tǒng)具有可預(yù)測性,因為實時系統(tǒng)必須在某種程度上是可預(yù)測的。開發(fā)人員可以用一些基準(zhǔn)程序確認(rèn)實時操作系統(tǒng)的確定性,例如某些特定調(diào)用的響應(yīng)時間。
關(guān)于實時嵌入式的性能測試,有許多衡量指標(biāo)。系統(tǒng)的軟件和硬件都會影響到系統(tǒng)的性能。例如可以用MIPS(每秒百萬次指令)衡量系統(tǒng)的CPU性能。一般來說,吞吐量可以用來衡量軟硬件組合在一起的系統(tǒng)整體性能。
實時嵌入式系統(tǒng)具有緊湊性。因為嵌入式系統(tǒng)中,硬件資源有限,所以實時操作系統(tǒng)必須小巧并且有效,這與尺寸和費用相關(guān)。
由于實時操作系統(tǒng)應(yīng)用在各類嵌入式系統(tǒng)中,所以系統(tǒng)必須能夠裁剪以滿足特定應(yīng)用需求??刹眉粜杂袝r也會影響到整個系統(tǒng)的花費。
3.2 基于虛擬化技術(shù)改善linux的實時性
虛擬化技術(shù)使得在一個硬件平臺運行多個OS(操作系統(tǒng))成為可能,采用虛擬化技術(shù)改善linux的實時性,其本質(zhì)依然是雙內(nèi)核方式,即在linux內(nèi)核和硬件之間增加額外的一層用于管理實時任務(wù)。
虛擬化方式的商用代表是Virtual Logic公司的VLX,開源代表為ADEOS。虛擬化技術(shù)方式花費少(cheap)并且可以安全過渡到linux。它可以切換到含有豐富應(yīng)用的linux上,并且允許保留RTOS的實時任務(wù)。另外,從技術(shù)實現(xiàn)角度,虛擬化可以分為硬件仿真,完全虛擬化和半虛擬化。
硬件仿真技術(shù)是虛擬化實現(xiàn)中最復(fù)雜的一種,它通過對虛擬機運行時的特權(quán)指令進(jìn)行掃描捕獲,之后對指令重寫即仿真。由于其性能損失較大,對系統(tǒng)的硬件要求較高,不適合采用該方式改善linux的實時性。
完全虛擬化中特權(quán)指令由底層硬件進(jìn)行處理,它最大的特點是guest os不需要修改,但是需要硬件支持,例如較新的ARM處理器已經(jīng)集成了該功能。所以采用此方式改善linux實時性對硬件平臺的限制較大。
半虛擬化需要需要修改guest os,由guest os處理特權(quán)指令,其性能相對較高。目前,采用這種方式的嵌入式虛擬化解決方案較多。
嵌入式linux的實時性解決方案VLX的實現(xiàn)中,VLX虛擬機之上需要運行一個RTOS和linux,而xtimes的實現(xiàn)則不同。虛擬機xtimes自身實現(xiàn)了實時系統(tǒng)的基本功能,因此僅需虛擬機xtimes和修改過的linux內(nèi)核就可以實現(xiàn)雙內(nèi)核方式增強linux的實時性。下一章是嵌入式虛擬機xtimes的具體實現(xiàn)。
嵌入式系統(tǒng)無處不在,它改變了我們的工作、生活和學(xué)習(xí)方式。嵌入式系統(tǒng)中,往往有實時需求,因此很多嵌入式系統(tǒng)同時又是實時操作系統(tǒng),即實時嵌入式系統(tǒng)。此外,linux作為一個開源,低成本,而且經(jīng)時間檢驗是一個比較成熟的操作系統(tǒng),在生活中已得到廣泛的應(yīng)用。如果能利用已有的linux操作系統(tǒng)優(yōu)勢,服務(wù)于嵌入式系統(tǒng)將是一個雙贏的結(jié)果。
然而,目前廣泛運用的Linux系統(tǒng),由于其在開發(fā)時作為GPOS設(shè)計,并非RTOS,沒有全面考慮嵌入式系統(tǒng)的實時需求,因此在系統(tǒng)的實時性方面仍需改進(jìn)。
參考文獻(xiàn):
[1]Raj Kamal.陳曙輝,譯.嵌入式系統(tǒng)——體系結(jié)構(gòu)?編程與設(shè)計[M].北京:清華大學(xué)出版社,2003.
[2]嵌入式.Linux[OL].http://zh.wikipedia.org/wiki/嵌入式Linux.
[3]毛德操,胡希明.嵌入式系統(tǒng)——采用公開源代碼和Strong ARM/XScale處理器[M].杭州:浙江大學(xué)出版社,2003.
作者簡介:王慧敏(1983.11-),女,講師,本科,研究方向:計算機軟件應(yīng)用。
作者單位:甘肅武威職業(yè)學(xué)院,甘肅武威 733000