何小慶
摘要:文章敘述源自PC的虛擬化軟件和開源軟件正在逐漸滲透到嵌入式系統(tǒng)各個(gè)方面。
關(guān)鍵詞:嵌入式軟件;虛擬化;移動(dòng)互聯(lián)網(wǎng);標(biāo)準(zhǔn)化;Linux
隨著移動(dòng)互聯(lián)網(wǎng)應(yīng)用漸漸走熱,Intel嵌入式X86芯片重返市場,傳統(tǒng)的嵌入式系統(tǒng)平臺(tái)、軟件開發(fā)方式和操作系統(tǒng)都在發(fā)生著變化。一方面,互聯(lián)網(wǎng)需要更多已經(jīng)在PC使用的應(yīng)用軟件能夠在各種移動(dòng)終端上使用,另一方面,計(jì)算密集和數(shù)據(jù)密集的趨勢要求嵌入式系統(tǒng)具有越來越強(qiáng)的處理能力,PC化則是解決這些問題的途徑之一。
嵌入式系統(tǒng)和PC的融合
嵌入式系統(tǒng)和PC一直有著難解之緣,由ISA總線標(biāo)準(zhǔn)發(fā)展起來的PCI04,是嵌入式PC至今依然大量使用的工業(yè)標(biāo)準(zhǔn)。DOS/Borland C是深受喜愛的嵌入式PC操作系統(tǒng)和開發(fā)工具之一。20世紀(jì)90年代以后,在摩爾定律推動(dòng)下,Intel和微軟聯(lián)手推動(dòng)了一輪又一輪的PC升級(jí)換代之路,也使得嵌入式系統(tǒng)和PC越走越遠(yuǎn),以單片機(jī)(MCU)為代表的嵌入式處理器技術(shù)成熟,RTOS(嵌入式操作系統(tǒng),如uC/OS—II,VxWork)和IDE(Keil、IAREW)的嵌入式軟件開發(fā)模式已經(jīng)形成,獲得了廣泛的認(rèn)可和成功。
2000年以后,嵌入式Linux和 PC SoC嵌入式平臺(tái)給嵌入式系統(tǒng)帶來了革命性的變革,比較起傳統(tǒng)的MCU平臺(tái),一個(gè)典型ARM2410單板、嵌入式Linux2.4、Qf圖形界面,它包含設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)、文件、圖形和豐富應(yīng)用,是一個(gè)完整的OS和交叉開發(fā)環(huán)境,非常接近人們熟悉的PC環(huán)境,可以適合多數(shù)消費(fèi)電子、通訊、工業(yè)控制嵌入式系統(tǒng)應(yīng)用要求。但是面對高性能計(jì)算、互聯(lián)網(wǎng)以及多媒體應(yīng)用的移動(dòng)互聯(lián)網(wǎng)設(shè)備、數(shù)字多媒體中心、網(wǎng)絡(luò)存儲(chǔ)和超便攜上網(wǎng)筆記本等應(yīng)用時(shí),基于交叉編譯的ARM/Linux/WinCE系統(tǒng),比起X86/Linux/WindowsXP系統(tǒng),開發(fā)時(shí)間和難度要大得多,在設(shè)備端重新移植成熟應(yīng)用和測試過程耗費(fèi)了大量的時(shí)間和人力;在服務(wù)器端,由于待測試的各種終端的種類、OS、瀏覽器不一,所以許多網(wǎng)絡(luò)應(yīng)用的廠家只能支持有限數(shù)量的終端和,瀏覽器版本,所以,PC Windows/IE就成為多數(shù)網(wǎng)絡(luò)應(yīng)用支持的對象。
ARM、Adobe和Canonical合作將把Ubuntu和FlashPlayerlO移植到ARM上,這無疑是嵌入式軟件和PC融合的重要信號(hào)。Flash Player是目前網(wǎng)絡(luò)上最為流行的瀏覽和播放軟件,也運(yùn)行在X86/Windows/Linux平臺(tái),它對于ARM體系結(jié)構(gòu)的支持將大大提高ARM芯片在互聯(lián)網(wǎng)終端的地位。Ubuntu是國際上成功的Linux開源桌面操作系統(tǒng),最近發(fā)表的8.10版本,加強(qiáng)了對3G移動(dòng)網(wǎng)絡(luò)的支持,計(jì)劃支持超低功耗的ARMv7(CortexA8/A9)處理器,將擴(kuò)展Ubuntu操作系統(tǒng)在移動(dòng)互聯(lián)網(wǎng)終端上的地位,同時(shí)也為嵌入式系統(tǒng)開發(fā)提供了一種標(biāo)準(zhǔn)的PC環(huán)境。其實(shí)Ubuntu因?yàn)槌叽缧∏?,已是嵌入式X86/PC廠家主要支持的嵌入式Linux平臺(tái)之一。無論是Intel嵌入式X86,還是ARM的SoC技術(shù),都在引領(lǐng)行業(yè)向著滿足高性能計(jì)算要求的軟硬件PC化方向發(fā)展。
嵌入式虛擬化軟件
PC化的嵌入式軟件具有通用、開放的特點(diǎn),但是要完全滿足安全性、實(shí)時(shí)性和可繼承性的需求還有距離,虛擬化軟件正好是一個(gè)補(bǔ)充。虛擬化在服務(wù)器上已經(jīng)取得了成功,正在進(jìn)軍桌面和嵌入式系統(tǒng)。著名的vmware最近宣布將推出智能手機(jī)的虛擬化軟件版本。虛擬化軟件可以在多核、單核高性能處理器上運(yùn)行。一是解決安全性問題,比如構(gòu)建一個(gè)在安全操作系統(tǒng)和開放操作系統(tǒng)環(huán)境下的手機(jī),以保證移動(dòng)網(wǎng)上銀行的安全支付。二是解決軟件再用問題,比如大量已經(jīng)驗(yàn)證了的通訊代碼和專用的RTOS,通過虛擬化和通用的操作系統(tǒng)(GOS)結(jié)合形成全新的高密度計(jì)算平臺(tái)。三是解決實(shí)時(shí)性問題:專用的實(shí)時(shí)RTOS和GOS—Linux,Windows并存。四是解決多核編程問題,介于目前多核軟件普遍滯后硬件芯片的情況,虛擬化可以幫助用戶在不改變編程模式和設(shè)計(jì)思想的前提下,充分發(fā)揮多核芯片的性能。即在不同的核上運(yùn)行不同的操作系統(tǒng):運(yùn)行RTOS的核完成通訊設(shè)備的網(wǎng)絡(luò)數(shù)據(jù)流的處理和分析,運(yùn)行Linux的核負(fù)責(zé)系統(tǒng)數(shù)據(jù)庫管理和人機(jī)界面。虛擬化技術(shù)如果使用得當(dāng),它可以在嵌入式系統(tǒng)和PC化軟件之間架起一座橋梁。嵌入式系統(tǒng)對于虛擬化技術(shù)有其特殊要求,比如非X86體系結(jié)構(gòu)、尺寸和實(shí)時(shí)性等,目前開源項(xiàng)目Xen(www.xen.org)在這個(gè)方面還有差距,商業(yè)的產(chǎn)品有VirtualLogix的VLX,它提供支持通訊平臺(tái),移動(dòng)終端和通用嵌入式系統(tǒng)的各個(gè)產(chǎn)品線方案,產(chǎn)品線豐富而成熟;OK-Labs是基于開源OKL4微內(nèi)核的虛擬化軟件,重點(diǎn)支持手機(jī)的虛擬化方案,風(fēng)河公司近日也宣布將推出作為整個(gè)多核方案一個(gè)部分的虛擬化軟件。
嵌入式軟件的PC化趨勢,目前體現(xiàn)在高性能計(jì)算要求的場合,但是也要看到,一個(gè)再復(fù)雜的洗衣機(jī)和電冰箱也不必需要一個(gè)800M主頻的ARM SoC,或者Intel Atom處理器,單片機(jī)已完全可以解決問題了。嵌入式系統(tǒng)的多樣性決定了各種芯片技術(shù)、通訊技術(shù)、軟件、設(shè)計(jì)思想都可以在嵌入式系統(tǒng)找到自己的位置。