從Montavista Linux 5.0看嵌入式Linux的發(fā)展
摘要: 本文介紹了Montavista Linux的發(fā)展及其最新版本的特點,同時介紹了嵌入式Linux的發(fā)展趨勢。
關(guān)鍵詞: 嵌入式Linux;Montavista;實時性;Eclipse
引言
Linux 作為開源的操作系統(tǒng)正在IT 產(chǎn)業(yè)的方方面面發(fā)揮著作用,Linux是服務(wù)器的重要的操作系統(tǒng)。Linux 是嵌入式系統(tǒng)關(guān)鍵部件,它已經(jīng)嵌入在電信交換設(shè)備,路由器,接入設(shè)備,網(wǎng)絡(luò)存儲設(shè)備和移動終端里,涵蓋通信網(wǎng)絡(luò)的各個層面。IT業(yè)可能非常熟悉的是SUSE,RedHat,紅旗Linux 操作系統(tǒng)以及在在桌面系統(tǒng)免費使用的Fedora,Debian,而不太了解嵌入式Linux,這是因為嵌入式設(shè)備是以一個整體的形態(tài)展現(xiàn)在使用者面前,所以操作系統(tǒng)雖然是非常重要的部件,但是不容易讓大眾所認識,比如我們?nèi)粘?吹降腗P4,GPS,手機等電子消費產(chǎn)品,其實它們里面都是有一個操作系統(tǒng)運行在里面的,行業(yè)內(nèi)稱為RTOS(實時多任務(wù)操作系統(tǒng))或者EOS(嵌入式操作系統(tǒng))。正如服務(wù)器和桌面系統(tǒng)一樣,嵌入式系統(tǒng)設(shè)計者可以選擇商業(yè)嵌入式Linux軟件或者是使用開源的Linux 軟件自己開發(fā),也可以委托第三方開發(fā)。商業(yè)的Linux軟件的中和RedHat齊名的是Montavista軟件公司。Montavista Linux已經(jīng)擁有超過兩千多用戶和數(shù)以千萬計的產(chǎn)品在市場上銷售,它們覆蓋從智能手機,高清電視,機器人,無線網(wǎng)絡(luò)設(shè)備到3G電信服務(wù)器等各種嵌入式應(yīng)用。Motorola 使用了Montavista Linux的智能手機‘明’在中國的巨大成功使得Montavista 和它的Linux 產(chǎn)品蜚聲國內(nèi)。
Montavista Linux 發(fā)展歷史
1999年在美國硅谷-Sunnyvale小城 一個普通的辦公室里面又多了一群不太年輕的創(chuàng)業(yè)者,這就是Montavista創(chuàng)始人-Jim Ready和他的創(chuàng)業(yè)團隊。大約15年前Jim也就是在同樣的地方開始他第一家嵌入式操作系統(tǒng)公司的創(chuàng)業(yè)生涯。Jim 創(chuàng)辦的Ready system公司的VRTX是世界第一個商業(yè)的RTOS,廣泛的應(yīng)用在通訊,控制和航空航天系統(tǒng)中,是嵌入式操作系統(tǒng)的標志和創(chuàng)造性產(chǎn)品,VRTX的思想為行業(yè)的后來者所追隨和發(fā)展。經(jīng)過數(shù)年觀察和思考,Jim認識到Linux可以支持更廣泛和更新的硬件,更多的I/O設(shè)備,更多和更加標準的應(yīng)用,它可能是未來嵌入式操作系統(tǒng)的最適合的選擇之后,決定創(chuàng)辦一家專業(yè)的嵌入式Linux 公司,公司的定位是一個100%的Linux公司,它的嵌入式Linux產(chǎn)品可以替代傳統(tǒng)的RTOS。
圖1很清楚的表現(xiàn)出了Montavista Linux產(chǎn)品發(fā)展的歷程,這里需要闡述的有這樣幾個方面。
圖1 Montavista的發(fā)展歷程
HardHat Linux
2002年以前,Montavista 的Linux 產(chǎn)品名稱叫HardHat Linux(這個名字也最早在開源社區(qū)和大學(xué)里面流傳), HardHat名字的由來也許是需要區(qū)別于市場的名氣已經(jīng)非常大的redhat, 表示Montavista的Linux 是一個實時和嵌入式的Linux的原因吧。因為創(chuàng)建初期正值網(wǎng)絡(luò)經(jīng)濟的熱潮,Montavista最初的商業(yè)模式和其他的開源軟件一樣,是一個免費的軟件,但服務(wù)和升級需要收費。 2002年以后從Montavista Linux 2.0開始就改為Linux行業(yè)里面廣泛采用的訂閱模式,即付費獲得產(chǎn)品,在訂閱期內(nèi)得到支持,升級和補丁。
Montavista Linux 的三個版本
Montavista Linux 目前有三個版本, professional edition -稱為專業(yè)版本(簡稱pro),主要是針對各種通用的嵌入式應(yīng)用,它也是Montavista Linux的核心產(chǎn)品, 其他的版本也是由這個版本發(fā)展出來的, carried grade edition(簡稱CGE), 也稱為電信Linux版本,此版本是在專業(yè)版本的基礎(chǔ)上增加了加固內(nèi)核,事故處理,動態(tài)加載等高可能性的特點,符合OSDL電信Linux規(guī)范(也稱為CGL規(guī)范,來自www.osdl.org-這個機構(gòu)最近和Linux基金會合并),CGE支持先進的ATCA計算平臺等先進的硬件技術(shù)。Mobilinux是Montavista 重要的旗艦成品之一,2003年Montavista在專業(yè)版本上開發(fā)了一個稱為消費電子(consumer electronic edition-簡稱CEE) 的版本,CEE由于Motorola基于Linux操作系統(tǒng)的智能手機而聞名海外,2005年底CEE再作重新開發(fā)并變名為Mobilinux專門針對手機市場,比較起以前的版本,Moblinux 增加了可以大大降低手持設(shè)備能源消耗的動態(tài)電源管理,Linux系統(tǒng)快速啟動,尺寸優(yōu)化技術(shù)和各種測量和分析工具。
在過去的6年里面Montavista Linux 有兩個重要的發(fā)展階段,第一,內(nèi)核的進化,4.0 版本以前Montavista Linux 一直是使用2.4版本的開源內(nèi)核,如3.1版本是使用的2.4.20, 4.0版本之后,Montavista Linux 使用了目前流行的2.6版本的內(nèi)核技術(shù)。第二,工具的進化,Hard Hat Linux的工具時傳統(tǒng)Linux命令行,3.0版本以后Montavista Linux增加了集成的開發(fā)環(huán)境(IDE),使用的時KDE,3.1版本之后升級成Eclipse,這是一個目前功能最完善的集成開發(fā)環(huán)境。
Montavista Linux實時性
Montavista 一直堅持在開放和兼容社區(qū)內(nèi)核發(fā)展的前提下,發(fā)展和開發(fā)Linux的實時性技術(shù),并把它應(yīng)用在Montavista Linux產(chǎn)品里面, 比如Montavista Linux 2.1版本已經(jīng)實現(xiàn)了Preemptible kernel 和Realtime scheduler, 從而根本改變了傳統(tǒng)Linux無論有那個進程和線程占有多少時間不能搶占和按照優(yōu)先級調(diào)度的歷史,3.1版本的時候,Montavista把當時還正在開發(fā)中的2.6內(nèi)核當中的0(1)調(diào)度器和高分辨率定時器移植(backpor)到2.4內(nèi)核的Montavista Linux 3.1三個版本中,讓使用Linux進行嵌入式軟件開發(fā)的用戶最早的使用到最先進的Linux實時性技術(shù), 同時為今后升級到2.6內(nèi)核作好了完全兼容的準備,2005年Montavista在開發(fā)2.6內(nèi)核的4.0版本的初期,在開源社區(qū)創(chuàng)建了一個實時Linux項目,通過和社區(qū)協(xié)作開發(fā)Montavista 在4.0 產(chǎn)品里實現(xiàn)了Linux 2.6內(nèi)核的RT-Path技術(shù)。Montavista的技術(shù)專家是來自傳統(tǒng)的嵌入式領(lǐng)域,對實時技術(shù)和要求非常了解,Montavista堅信基于開源Linux的實時性是可以滿足嵌入式系統(tǒng)的實時性需求,過去的實踐也不斷的證明了這一點。
Montavista Linux professional 5.0
Montavista Linux professional 5.0(簡稱pro 5.0)是5.0家族的第一個產(chǎn)品,2007年2月開始由Beta版本,4月陸續(xù)發(fā)布一部分嵌入式處理器參考平臺的支持版本,pro 5.0的發(fā)表標志著包含最新的Linux技術(shù)的新一代嵌入式軟件平臺的到來,pro 5.0是在目前4.0的基礎(chǔ)上融合了先進Linux內(nèi)核,應(yīng)用和工具技術(shù)開發(fā)而成的。下面從四個方面分析一下;
DevRocket 5
DevRocet 5是基于Eclipse的一個完整的嵌入式集成開發(fā)環(huán)境, 它使用了最新的CDT擴展和管理技術(shù),并有更加便捷的編輯-編譯-遠程調(diào)試的過程,更多的可插入的工具鏈, DevRocket 5還可以支持在沒有目標硬件的情況下的虛擬開發(fā)環(huán)境。簡單來講你可以把DevRocket理解為是一個Eclipe框架下和一系列插件組成的軟件工具, 這個工具包括C/C++開發(fā)和遠程調(diào)試(內(nèi)核和用戶態(tài)),應(yīng)用和系統(tǒng)的跟蹤,系統(tǒng)性能的分析,遠程系統(tǒng)的管理,系統(tǒng)平臺映象的管理,基于CVS的軟件版本管理,區(qū)別于前面的版本,DevRocket 5以插件的形式增加了4個工具:(1)檢測內(nèi)存泄漏工具; (2)性能統(tǒng)計和分析工具;(3)可以觀測到整個系統(tǒng)內(nèi)核和應(yīng)用的存儲器使用的工具,如圖2; (4)可視化的內(nèi)核和用戶態(tài)應(yīng)用的跟蹤工具。即通過Eclipe讀取LLTng的trace文件圖形化顯示,區(qū)別于過去的DevRocket。新的版本可以讓用戶使用其他公司或者開源的Eclipe框架,把Montavista的工具以插件形式安裝上去,使用戶可以體會到使用最新技術(shù)的快樂。原理上講,在獲得有效的授權(quán)之后DevRocket 5 可以支持以前的4.0甚至3.1版本的Montavista Linux的各個版本的產(chǎn)品。
圖2 DevRocket5中新增加的工具可觀測整個系統(tǒng)內(nèi)核和應(yīng)用的存儲器使用狀況
全新的內(nèi)核和應(yīng)用
Pro 5.0使用穩(wěn)定和全新的2.6.18內(nèi)核, LSB3.0 兼容,安全特性,IPV6認證,內(nèi)核和用戶態(tài)的實時技術(shù),包括支持Priority Queuing ,Priority Inheritance,Robust Mutexs和新的HR Ktimers,I/O和網(wǎng)絡(luò)方面支持更多設(shè)備驅(qū)動, 如,SDIO,USB OTG,Bluetooth(計劃在mobilinux 5.0里面),802.11g WiFi,支持ARM Jazelle(ARM發(fā)布的java硬件加速虛擬機優(yōu)化技術(shù),目的是為了提高java應(yīng)用的啟動運行及反應(yīng)速度)。pro 5.0還包含了Montavista以前在CEE3.1和Mobilinux 4里面使用的XIP技術(shù),這是一個可以提高Linux系統(tǒng)引導(dǎo)速度的技術(shù),也就是說pro 5.0將可以適合除手機外的消費電子的應(yīng)用。
減少尺寸的技術(shù)
在5.0版本里,Montavista大大改進了尺寸優(yōu)化技術(shù),使用了先進的Linux Tiny 和可以支持NPTL,ARM EABI 的uClibc,配合ARM Thumb mode 使用uClibC后的應(yīng)用尺寸可以減少近50%,這還只是應(yīng)用部分,如果考慮到文件系統(tǒng)的優(yōu)化,那就有可能到70-80%,簡單來講,一個標準的Linux 有大約14M,經(jīng)過5.0版本(或者使用Mobilinux 4.1-它已經(jīng)包含uClibc)完全優(yōu)化后可以到3M 左右。
完善的質(zhì)量保證體系
目前Pro 5.0內(nèi)核是在2.6.18 baseline上加了有大約1500個patch(這個數(shù)量還在因為新的硬件的支持而不斷的增加),這其中的近30-40%的patch,它們是有連帶關(guān)系,既如果你修改了一個可能其他也要修改。再細化一下,整個Pro 5.0的代碼是由2.6.18內(nèi)核代碼,非主流內(nèi)核代碼,如ARM和MIPS分支代碼,RT patches,2.6.19對2.6.18 的bug修正后backport,Montavista內(nèi)部自身開發(fā)和修正的軟件模塊(一般每次發(fā)行要修改超過1000個bug)五個部分組成,然后每個build都要經(jīng)過35000個自動測試,這樣一個巨大的軟件工程是很難想象僅靠幾個Linux工程師自己完成的,Pro 5.0這樣的工程也是在完善的質(zhì)量保證體系下和過去兩年開發(fā)2.6內(nèi)核和5年以上2.4內(nèi)核的經(jīng)驗的結(jié)晶, 更重要的是經(jīng)千萬計的基于Montavista Linux產(chǎn)品的驗證給予Pro5.0產(chǎn)品一個好的質(zhì)量基礎(chǔ)。
嵌入式Linux技術(shù)的發(fā)展趨勢
回顧了Montavista Linux發(fā)展歷程和分析了pro 5.0的一些技術(shù)特點后,再綜觀目前市場上商業(yè)和開源的嵌入式Linux的現(xiàn)狀,我們不難看出未來嵌入式Linux技術(shù)走向的軌跡:
Linux 工具將大行其道
開源的Eclipes 框架已經(jīng)成為事實上的企業(yè)軟件和嵌入式軟件開發(fā)標準,不僅得到了軟件和系統(tǒng)廠商的推崇,而且得到了設(shè)備廠商的支持和參與, 最近Motorola宣布加入Eclipes基金會,參與一個設(shè)備軟件開發(fā)平臺(DSDP)項目,開發(fā)一個針對移動Linux的工具-TmL就是一個很好的例子?;贓clipes 框架的嵌入式開發(fā)工具將是未來嵌入式Linux 甚至是其他嵌入式操作系統(tǒng)的主流和標準的開發(fā)平臺, 嵌入式Linux的工具目前和未來將主要是針對Linux 命令行工具的改進和提升,開發(fā)新分析工具,配置工具,性能測試工具和調(diào)試工具。 比如上面提到的Montavista Devrocket5,支持和配合BDI2000的Linuxscope, Workbench和Timestorm。
一個重要的促使Eclipe的Linux工具大行其道的非技術(shù)原因是嵌入式軟件比較其他行業(yè)的軟件需要更好的工具去開發(fā),調(diào)試和測試,而Eclipe的授權(quán)方式更加適合商業(yè)公司開發(fā)的工具以商業(yè)版稅方式銷售和支持。
嵌入式Linux軟件平臺走向應(yīng)用
如同商業(yè)Linux服務(wù)器軟件公司一樣, 嵌入式軟件公司也已經(jīng)意識到它們應(yīng)該更多的在Linux內(nèi)核上進行應(yīng)用軟件的開發(fā),并在集成和測試上多下功夫以滿足用戶對使用嵌入式Linux的產(chǎn)品盡快上市的要求,使得嵌入式Linux對比微軟Windows Mobile更加具有競爭性,即Linux軟件中間件將越來越現(xiàn)出不同公司產(chǎn)品的差異和價值。
Montavista在 4.0的產(chǎn)品開始就已經(jīng)有了一個非常清晰的中間件層-為應(yīng)用軟件提供接口,如圖3所示,這個中間層包括了GTK/X11圖形庫,200多個用戶態(tài)的應(yīng)用模塊,IPV6和IPsec/IKE,Web services networking utilities,WiFi的的網(wǎng)絡(luò)協(xié)議。在Montavista面向應(yīng)用的電信CGE和手機版本Mobilinux已經(jīng)涉及了應(yīng)用的部分,比如Mobilinux 4.0里面的動態(tài)電源管理就增加了支持和方便應(yīng)用的策略管理,DirectFB 適合快速圖形應(yīng)用的圖形庫和剛才提到的小尺寸應(yīng)用庫uclibc,pro 5.0和Mobilinux 5.0將增加對WiFi安全和管理的支持, Mobilinux 5.0還有計劃支持完整的藍牙協(xié)議和應(yīng)用,這些模塊雖然底層的驅(qū)動是在內(nèi)核里面的,但是相當多的模塊是在應(yīng)用層的了。
圖3 Montavista Linux中的中間層
當然,無論是pro,Mobilinux,CGE,都還不能稱為是完整的Linux應(yīng)用平臺,可以說它們比較起SUSE和Redhat已經(jīng)更接近普通的嵌入式和電信的嵌入式Linux應(yīng)用,但是距離消費電子如手機應(yīng)用還有相當?shù)木嚯x,目前商業(yè)公司,開源社區(qū)和行業(yè)組織還在作更多的努力,比如Trolltech,Access,LiPs。
嵌入式Linux 向著靠近標準和開放的方向邁進
更多的信息表明嵌入式Linux正在向一個標準的方向邁進,尤其是內(nèi)核方面,比如Pro /CGE/Mobilinux 4.0使用標準2.6內(nèi)核的RT-patch實現(xiàn)了Linux宿主機的實時性要求, Pro 5.0支持LSB3.0,在電信Linux方面有OSDL CGL標準,消費電子有CELF和最近的LiMo-一個由Motorola創(chuàng)建的手機Linux 標準平臺的組織創(chuàng)建的標準,Montavista作為OSDL 創(chuàng)始成員一直致力于跟蹤和遵循CGL的規(guī)范,也是唯一通過CGL 認證的產(chǎn)品, 在最近的3GSM會議上,Montavista也和LiMo保持密切的接觸。更加重要的是嵌入式Linux 開發(fā)不能也很難獨立于linux開源社區(qū),積極參與社區(qū)項目,維護社區(qū)項目,創(chuàng)建好的適合嵌入式Linux 社區(qū)項目才是正確的途徑。比如Montavista開發(fā)的preemptable kernel和real-time schedule ( Rober love) 后來被移植和合并到2.6的(0)1 schedule和preemptable kernel成為2.6內(nèi)核的標準,新的高分辨率的定時器(HRT)-Ktime是有Montavista 維護的,也已經(jīng)由2.6.18內(nèi)核接受了,也將在Pro 5.0以后的各個產(chǎn)品里面包含并會支持各種嵌入式處理器的硬件平臺。
結(jié)語
Linux和嵌入式Linux軟件在過去五年已經(jīng)越來越普遍的為IT業(yè)、半導(dǎo)體公司、嵌入式系統(tǒng)所認可和接受,它已經(jīng)成為一個可以替代微軟的Windows和眾多傳統(tǒng)的RTOS的重要的操作系統(tǒng)。Linux內(nèi)核和基本組件和工具已經(jīng)是成熟的軟件,面向行業(yè),應(yīng)用和設(shè)備的嵌入式Linux工具軟件和嵌入式Linux操作系統(tǒng)平臺是未來發(fā)展的必然趨勢,跟蹤Linux社區(qū)的發(fā)展,符合標準,遵循開放是大勢所趨,人心所向,嵌入式Linux也不例外。
參考文獻:
1. united by eclipse, embedded system design, 2007.1
2. eclipse focus: Motorola joins eclisp, propses Tml project, embedded computing design, 2006.10
3. 王師資, 安全的選擇,2007.3-4
4. Martin Fink, Linux及開放源碼在商業(yè)經(jīng)濟中的應(yīng)用, 清華大學(xué)出版社
5. 何小慶,移動電話挑戰(zhàn)嵌入式Linux, 電子產(chǎn)品世界, 2006.12.
6. 何小慶, 嵌入式軟件的最新發(fā)展, 2006年10月深圳嵌入式系統(tǒng)會議
7. Do-it-yourself linux? Jim ready enterprise open source journal 11/12 2006
8. www.mvista.com
9. www.linuxdevices.com
10. www.bmrtech.com
評論