嵌入式Linux發(fā)展 談Montavista Linux
Montavista Linux已經(jīng)擁有超過兩千多用戶和數(shù)以千萬計的產(chǎn)品在市場上銷售,它們覆蓋從智能手機,高清電視,機器人,無線網(wǎng)絡設備到3G電信服務器等各種嵌入式應用。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,廣泛的應用在通訊,控制和航空航天系統(tǒng)中,是嵌入式操作系統(tǒng)的標志和創(chuàng)造性產(chǎn)品,VRTX的思想為行業(yè)的后來者所追隨和發(fā)展。經(jīng)過數(shù)年觀察和思考,Jim認識到Linux可以支持更廣泛和更新的硬件,更多的I/O設備,更多和更加標準的應用,它可能是未來嵌入式操作系統(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ā)展歷程 本文引用地址:http://m.butianyuan.cn/article/258165.htm |
HardHat Linux
2002年以前,Montavista 的Linux 產(chǎn)品名稱叫HardHat Linux(這個名字也最早在開源社區(qū)和大學里面流傳), HardHat名字的由來也許是需要區(qū)別于市場的名氣已經(jīng)非常大的redhat, 表示Montavista的Linux 是一個實時和嵌入式的Linux的原因吧。因為創(chuàng)建初期正值網(wǎng)絡經(jīng)濟的熱潮,Montavista最初的商業(yè)模式和其他的開源軟件一樣,是一個免費的軟件,但服務和升級需要收費。 2002年以后從Montavista Linux 2.0開始就改為Linux行業(yè)里面廣泛采用的訂閱模式,即付費獲得產(chǎn)品,在訂閱期內(nèi)得到支持,升級和補丁。
Montavista Linux 的三個版本
Montavista Linux 目前有三個版本, professional edition -稱為專業(yè)版本(簡稱pro),主要是針對各種通用的嵌入式應用,它也是Montavista Linux的核心產(chǎn)品,其他的版本也是由這個版本發(fā)展出來的, carried grade edition(簡稱CGE),也稱為電信Linux版本,此版本是在專業(yè)版本的基礎上增加了加固內(nèi)核,事故處理,動態(tài)加載等高可能性的特點,符合OSDL電信Linux規(guī)范(也稱為 CGL規(guī)范,來自www.osdl.org-這個機構最近和Linux基金會合并),CGE支持先進的ATCA計算平臺等先進的硬件技術。Mobilinux是Montavista 重要的旗艦成品之一,2003年Montavista在專業(yè)版本上開發(fā)了一個稱為消費電子(consumer electronic edition-簡稱CEE) 的版本,CEE由于Motorola基于Linux操作系統(tǒng)的智能手機而聞名海外,2005年底CEE再作重新開發(fā)并變名為Mobilinux專門針對手機市場,比較起以前的版本,Moblinux 增加了可以大大降低手持設備能源消耗的動態(tài)電源管理,Linux系統(tǒng)快速啟動,尺寸優(yōu)化技術和各種測量和分析工具。
在過去的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)核技術。第二,工具的進化,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的實時性技術,并把它應用在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實時性技術,同時為今后升級到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技術。Montavista的技術專家是來自傳統(tǒng)的嵌入式領域,對實時技術和要求非常了解,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技術的新一代嵌入式軟件平臺的到來,pro 5.0是在目前4.0的基礎上融合了先進Linux內(nèi)核,應用和工具技術開發(fā)而成的。下面從四個方面分析一下;
DevRocket 5
DevRocet 5是基于Eclipse的一個完整的嵌入式集成開發(fā)環(huán)境,它使用了最新的CDT擴展和管理技術,并有更加便捷的編輯-編譯-遠程調(diào)試的過程,更多的可插入的工具鏈, DevRocket 5還可以支持在沒有目標硬件的情況下的虛擬開發(fā)環(huán)境。簡單來講你可以把DevRocket理解為是一個Eclipe框架下和一系列插件組成的軟件工具,這個工具包括C/C++開發(fā)和遠程調(diào)試(內(nèi)核和用戶態(tài)),應用和系統(tǒng)的跟蹤,系統(tǒng)性能的分析,遠程系統(tǒng)的管理,系統(tǒng)平臺映象的管理,基于CVS的軟件版本管理,區(qū)別于前面的版本,DevRocket 5以插件的形式增加了4個工具:(1)檢測內(nèi)存泄漏工具; (2)性能統(tǒng)計和分析工具;(3)可以觀測到整個系統(tǒng)內(nèi)核和應用的存儲器使用的工具,如圖2; (4)可視化的內(nèi)核和用戶態(tài)應用的跟蹤工具。即通過Eclipe讀取LLTng的trace文件圖形化顯示,區(qū)別于過去的DevRocket。新的版本可以讓用戶使用其他公司或者開源的Eclipe框架,把Montavista的工具以插件形式安裝上去,使用戶可以體會到使用最新技術的快樂。原理上講,在獲得有效的授權之后DevRocket 5 可以支持以前的4.0甚至3.1版本的Montavista Linux的各個版本的產(chǎn)品。
圖2 DevRocket5中新增加的工具可觀測整個系統(tǒng)內(nèi)核和應用的存儲器使用狀況 |
全新的內(nèi)核和應用
Pro 5.0使用穩(wěn)定和全新的2.6.18內(nèi)核, LSB3.0 兼容,安全特性,IPV6認證,內(nèi)核和用戶態(tài)的實時技術,包括支持Priority Queuing ,Priority Inheritance,Robust Mutexs和新的HR Ktimers,I/O和網(wǎng)絡方面支持更多設備驅(qū)動, 如,SDIO,USB OTG,Bluetooth(計劃在mobilinux 5.0里面),802.11g WiFi,支持ARM Jazelle(ARM發(fā)布的java硬件加速虛擬機優(yōu)化技術,目的是為了提高java應用的啟動運行及反應速度)。pro 5.0還包含了Montavista以前在CEE3.1和Mobilinux 4里面使用的XIP技術,這是一個可以提高Linux系統(tǒng)引導速度的技術,也就是說pro 5.0將可以適合除手機外的消費電子的應用。
減少尺寸的技術
在5.0版本里,Montavista大大改進了尺寸優(yōu)化技術,使用了先進的 Linux Tiny 和可以支持NPTL,ARM EABI 的uClibc,配合ARM Thumb mode 使用uClibC后的應用尺寸可以減少近50%,這還只是應用部分,如果考慮到文件系統(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,它們是有連帶關系,既如果你修改了一個可能其他也要修改。再細化一下,整個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)驗的結晶,更重要的是經(jīng)千萬計的基于Montavista Linux產(chǎn)品的驗證給予Pro5.0產(chǎn)品一個好的質(zhì)量基礎。
嵌入式Linux技術的發(fā)展趨勢
回顧了Montavista Linux發(fā)展歷程和分析了pro 5.0的一些技術特點后,再綜觀目前市場上商業(yè)和開源的嵌入式Linux的現(xiàn)狀,我們不難看出未來嵌入式Linux技術走向的軌跡:
Linux工具將大行其道
開源的Eclipes 框架已經(jīng)成為事實上的企業(yè)軟件和嵌入式軟件開發(fā)標準,不僅得到了軟件和系統(tǒng)廠商的推崇,而且得到了設備廠商的支持和參與,最近Motorola宣布加入Eclipes基金會,參與一個設備軟件開發(fā)平臺(DSDP)項目,開發(fā)一個針對移動Linux的工具-TmL就是一個很好的例子。基于Eclipes 框架的嵌入式開發(fā)工具將是未來嵌入式Linux 甚至是其他嵌入式操作系統(tǒng)的主流和標準的開發(fā)平臺,嵌入式Linux的工具目前和未來將主要是針對Linux 命令行工具的改進和提升,開發(fā)新分析工具,配置工具,性能測試工具和調(diào)試工具。比如上面提到的Montavista Devrocket5,支持和配合BDI2000的Linuxscope, Workbench和Timestorm。
一個重要的促使Eclipe的Linux工具大行其道的非技術原因是嵌入式軟件比較其他行業(yè)的軟件需要更好的工具去開發(fā),調(diào)試和測試,而Eclipe的授權方式更加適合商業(yè)公司開發(fā)的工具以商業(yè)版稅方式銷售和支持。
嵌入式Linux軟件平臺走向應用
如同商業(yè)Linux服務器軟件公司一樣,嵌入式軟件公司也已經(jīng)意識到它們應該更多的在Linux內(nèi)核上進行應用軟件的開發(fā),并在集成和測試上多下功夫以滿足用戶對使用嵌入式Linux的產(chǎn)品盡快上市的要求,使得嵌入式Linux對比微軟Windows Mobile更加具有競爭性,即Linux軟件中間件將越來越現(xiàn)出不同公司產(chǎn)品的差異和價值。
Montavista 在 4.0的產(chǎn)品開始就已經(jīng)有了一個非常清晰的中間件層-為應用軟件提供接口,如圖3所示,這個中間層包括了GTK/X11圖形庫,200多個用戶態(tài)的應用模塊,IPV6和IPsec/IKE,Web services networking utilities,WiFi的的網(wǎng)絡協(xié)議。在Montavista面向應用的電信CGE和手機版本Mobilinux已經(jīng)涉及了應用的部分,比如 Mobilinux 4.0里面的動態(tài)電源管理就增加了支持和方便應用的策略管理,DirectFB 適合快速圖形應用的圖形庫和剛才提到的小尺寸應用庫uclibc,pro 5.0和Mobilinux 5.0將增加對WiFi安全和管理的支持, Mobilinux 5.0還有計劃支持完整的藍牙協(xié)議和應用,這些模塊雖然底層的驅(qū)動是在內(nèi)核里面的,但是相當多的模塊是在應用層的了。
圖3 Montavista Linux中的中間層 |
當然,無論是pro,Mobilinux,CGE,都還不能稱為是完整的 Linux應用平臺,可以說它們比較起SUSE和Redhat已經(jīng)更接近普通的嵌入式和電信的嵌入式Linux應用,但是距離消費電子如手機應用還有相當?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)品里面包含并會支持各種嵌入式處理器的硬件平臺。
結語
Linux和嵌入式Linux軟件在過去五年已經(jīng)越來越普遍的為IT業(yè)、半導體公司、嵌入式系統(tǒng)所認可和接受,它已經(jīng)成為一個可以替代微軟的Windows和眾多傳統(tǒng)的RTOS的重要的操作系統(tǒng)。Linux內(nèi)核和基本組件和工具已經(jīng)是成熟的軟件,面向行業(yè),應用和設備的嵌入式Linux工具軟件和嵌入式Linux操作系統(tǒng)平臺是未來發(fā)展的必然趨勢,跟蹤Linux社區(qū)的發(fā)展,符合標準,遵循開放是大勢所趨,人心所向,嵌入式Linux也不例外。
評論