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