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