嵌入式Linux面臨圖形化挑戰(zhàn)
最近,計(jì)算機(jī)嵌入式產(chǎn)業(yè)研究顯示Linux系統(tǒng)是大多數(shù)嵌入式開發(fā)項(xiàng)目的首選操作系統(tǒng)。起初,Linux只是一種簡(jiǎn)單的解決方案,為愛好者提供了一個(gè)免費(fèi)且功能強(qiáng)大的開發(fā)平臺(tái)。但是現(xiàn)在它已逐步成為一個(gè)成熟、穩(wěn)定、功能強(qiáng)大且倍受關(guān)注的操作系統(tǒng)。
Linux操作系統(tǒng)涉獵的范圍從程序控制系統(tǒng)、個(gè)人數(shù)字助理(PDAs)及家用電器到桌面系統(tǒng)和高端網(wǎng)絡(luò)服務(wù)器,乃至于功能強(qiáng)大的計(jì)算集群和復(fù)合處理器系統(tǒng)。
Linux的種種優(yōu)勢(shì)使得它在整個(gè)計(jì)算機(jī)領(lǐng)域魅力十足,特別是在嵌入式系統(tǒng)方面尤為突出。比起一些所有權(quán)嵌入式操作系統(tǒng),Linux的價(jià)格、性能及靈活性等有利條件是顯而易見的。
在Linux被引入嵌入式開發(fā)之前,大多數(shù)嵌入式技術(shù)開發(fā)人員很少進(jìn)行跨平臺(tái)的開發(fā)研究,因?yàn)樗麄兯玫牟僮飨到y(tǒng)只能在目標(biāo)硬件上運(yùn)行。Linux逐漸在嵌入式領(lǐng)域擴(kuò)大戰(zhàn)場(chǎng)的同時(shí),跨平臺(tái)開發(fā)方案,即原本在一個(gè)平臺(tái)上開發(fā)的應(yīng)用軟件也可以在其它平臺(tái)上進(jìn)行開發(fā)和編譯,也已廣泛應(yīng)用于嵌入式系統(tǒng)的開發(fā)實(shí)踐中。
然而,大多數(shù)新的嵌入式方案以Linux系統(tǒng)為開發(fā)平臺(tái)并不意味著Linux系統(tǒng)是惟一的選擇。西方有句俗語:效仿是表達(dá)恭維的最好方式。
目前,有多家所有權(quán)嵌入式系統(tǒng)的廠商也效仿Linux系統(tǒng)取消了其操作系統(tǒng)的使用費(fèi)用。同樣,他們也模仿Linux系統(tǒng)源代碼的開放性,開始免費(fèi)為消費(fèi)者提供其操作系統(tǒng)的源代碼。Linux面臨著各方面的挑戰(zhàn)。
開發(fā)工具的圖形化挑戰(zhàn)
許多嵌入式軟件開發(fā)項(xiàng)目都很復(fù)雜,造成這種復(fù)雜性的主要原因如下:
◆ 應(yīng)用軟件的復(fù)雜性可能源于所使用的運(yùn)算法則,也可能源于設(shè)計(jì)方案(比如復(fù)雜的客戶應(yīng)用程序或服務(wù)器應(yīng)用程序),或者二者兼而有之。
◆ 用戶的應(yīng)用程序與其它應(yīng)用軟件乃至操作系統(tǒng)間的相互作用也可能會(huì)帶來問題,這需要用戶對(duì)系統(tǒng)進(jìn)行長(zhǎng)期不間斷地監(jiān)測(cè)。
◆ 系統(tǒng)和資源限制可能導(dǎo)致反復(fù)地重寫或優(yōu)化過程。
◆ 標(biāo)準(zhǔn)的系統(tǒng)庫(kù)和關(guān)聯(lián)程序設(shè)計(jì)技術(shù)也許無法應(yīng)用于特殊的架構(gòu),用戶不得不選擇或開發(fā)其它替代方案。
◆ 在功能有限的情況下,很難對(duì)應(yīng)用軟件進(jìn)行遠(yuǎn)程調(diào)試和維護(hù)。
雖然,以上這些問題對(duì)于在嵌入式應(yīng)用軟件開發(fā)和操作系統(tǒng)等方面有足夠經(jīng)驗(yàn)的專業(yè)人員來說都很好解決,但沒人能保證身邊總有專家。因此,最好的解決辦法就是使用工具軟件,以便更容易對(duì)嵌入式軟件進(jìn)行開發(fā)、監(jiān)控和調(diào)試。
眾所周知,圖形用戶界面(GUI)已經(jīng)成為計(jì)算領(lǐng)域不可缺少的工具。它使電腦從一個(gè)專業(yè)化工具轉(zhuǎn)變成普通的辦公設(shè)備和家用電器。雖然操作系統(tǒng)可以提供應(yīng)用軟件開發(fā)所需的基本功能,但是,一個(gè)簡(jiǎn)單易用的圖形環(huán)境和與之相適應(yīng)的工具軟件才是構(gòu)成開發(fā)平臺(tái)的真正要素。
多年來,所有權(quán)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)(RTOS)的廠商在所有權(quán)產(chǎn)品領(lǐng)域一直致力于提供應(yīng)用軟件開發(fā)工具。
雖然這些為所有權(quán)操作系統(tǒng)量身定做的開發(fā)工具功能強(qiáng)大,但應(yīng)用范圍卻局限于特定的操作系統(tǒng)。當(dāng)前市場(chǎng)環(huán)境下,大多數(shù)嵌入式產(chǎn)品廠商為了開發(fā)新的嵌入式項(xiàng)目轉(zhuǎn)而采用Linux技術(shù),因此迫切需要一種能支持Linux、功能強(qiáng)大且簡(jiǎn)便易用的嵌入式軟件開發(fā)工具。
所有權(quán)嵌入式操作系統(tǒng)廠商指出,目前市場(chǎng)上有很多不同的Linux套件,而且每個(gè)套件都有特定的市場(chǎng)或服務(wù),市場(chǎng)似乎并不完整。然而,多種版本Linux的存在恰恰證明了Linux的發(fā)展?jié)摿?,以及它能滿足廣大用戶不同需求的能力。Linux特有的靈活性也需要一系列適用于各種Linux套件的圖形化開發(fā)工具。
嵌入式開發(fā)工具的目標(biāo)
構(gòu)成Linux系統(tǒng)的基本要素如下:
◆ Linux內(nèi)核 內(nèi)核是操作系統(tǒng)的核心,它能提供各種硬件所需的驅(qū)動(dòng)程序、總線和協(xié)議支持等。
◆ 根文件系統(tǒng) 它是系統(tǒng)應(yīng)用軟件、系統(tǒng)啟動(dòng)程序、系統(tǒng)設(shè)置程序和用戶應(yīng)用軟件的“儲(chǔ)藏室”。
◆ 工具鏈 它用來編輯內(nèi)核、可加載內(nèi)核模塊和應(yīng)用軟件,并且可以由根文件系統(tǒng)中的程序和系統(tǒng)可訪問的其它文件系統(tǒng)來執(zhí)行。
所有的Linux系統(tǒng)都使用內(nèi)核和核心工具鏈(GNU GCC),只是配置不同。所有Linux根文件系統(tǒng)都包含有開放系統(tǒng)社區(qū)提供的各種程序,只是不同版本的Linux根文件系統(tǒng)所選擇的軟件包及其配置的子集有所不同。
嵌入式Linux開發(fā)工具面臨的挑戰(zhàn)是如何適應(yīng)不同版本的Linux內(nèi)核、工具鏈和文件系統(tǒng)軟件包,以及如何對(duì)其進(jìn)行定制,以便開發(fā)人員使用它們。
桌面和服務(wù)器應(yīng)用軟件開發(fā)者可以依托性能強(qiáng)大且運(yùn)行穩(wěn)定的硬件平臺(tái)提供一系列優(yōu)質(zhì)服務(wù),而嵌入式系統(tǒng)及其應(yīng)用軟件的開發(fā)人員需要有更廣泛、更豐富的知識(shí)。他們不得不在開發(fā)過程中考慮以下幾點(diǎn):
◆ 通過一個(gè)低級(jí)別的硬件端口,比如JTAG,對(duì)主板及新硬件或定制硬件進(jìn)行初始化;
◆ 為新硬件或定制硬件選擇、安裝并配置引導(dǎo)裝載程序;
◆ 可能需要定制內(nèi)核并開發(fā)驅(qū)動(dòng)程序;
◆ 系統(tǒng)級(jí)調(diào)試需要附帶遠(yuǎn)程訪問功能,以便及時(shí)準(zhǔn)確地解決系統(tǒng)中出現(xiàn)的問題;
◆ 根文件系統(tǒng)的開發(fā),包括開發(fā)過程中使用的、存儲(chǔ)于內(nèi)存或宿駐于網(wǎng)絡(luò)的文件系統(tǒng),以及其它在Flash或本地存儲(chǔ)器中建立并維護(hù)的文件系統(tǒng);
◆ 應(yīng)用軟件的開發(fā);
◆ 使用遠(yuǎn)程連接方式對(duì)應(yīng)用軟件進(jìn)行調(diào)試,以便于進(jìn)行遠(yuǎn)端激活和運(yùn)行分析,這將簡(jiǎn)化嵌入式系統(tǒng)中應(yīng)用軟件更新的過程;
◆ 對(duì)新產(chǎn)品進(jìn)行測(cè)試驗(yàn)證確認(rèn),有助于用戶對(duì)任意組合的系統(tǒng)和應(yīng)用軟件反復(fù)進(jìn)行標(biāo)準(zhǔn)測(cè)試。完成這些令人頭痛的工作需要各種不同的技能。而圖形化工具可以將所需的各種操作模塊化,原本復(fù)雜至極的工作,現(xiàn)在也許只需要點(diǎn)擊幾下鼠標(biāo)就可以完成。這對(duì)于開發(fā)人員來說,無疑是一種極大的解脫。
應(yīng)用TimeSys公司的TimeStorm Linux開發(fā)套件(LDS),通過點(diǎn)擊選單上的相應(yīng)選項(xiàng)就可以建立各種類型的文件系統(tǒng)。其它復(fù)雜的過程,比如,文件系統(tǒng)格式化和提供訪問端口等都無須開發(fā)人員手動(dòng)完成。
Eclipse多功能架構(gòu)
TimeStorm工具組件支持兩個(gè)目前應(yīng)用最廣泛、功能最強(qiáng)大的Linux系統(tǒng)圖形環(huán)境,一個(gè)是X-Window系統(tǒng),它幾乎是所有Unix和Linux圖形開發(fā)的基礎(chǔ);另一個(gè)是Eclipse結(jié)構(gòu),該結(jié)構(gòu)擴(kuò)展性很強(qiáng),可以建立或分配各種以開發(fā)為導(dǎo)向的應(yīng)用軟件,這些應(yīng)用軟件可以相互共存并相互作用。
Eclipse是一個(gè)開源軟件開發(fā)項(xiàng)目,其主要任務(wù)是為開發(fā)高集成性工具提供一個(gè)健壯的、功能齊全的平臺(tái)。與操作系統(tǒng)廠商不同,它采用行業(yè)中普遍使用的開放系統(tǒng)架構(gòu)來開發(fā)嵌入式Linux工具。
這種架構(gòu)可支持所有廠商的產(chǎn)品,提供統(tǒng)一的圖形化描述及操作,并且所有的工具都可以在該架構(gòu)中協(xié)調(diào)配合。用戶不必再由于開發(fā)工具的相互不兼容性而必須使用單一廠商提供的特定產(chǎn)品。
Eclipse提供了一個(gè)適用于各種應(yīng)用軟件的基礎(chǔ)架構(gòu)。這些應(yīng)用軟件在Eclipse中被稱為“插件”,它們?cè)诩軜?gòu)中互動(dòng)工作。這使得協(xié)同開發(fā)成為可能,工具軟件廠商可以根據(jù)不同需要確定不同的發(fā)展方向,不用擔(dān)心自己的插件無法與其它插件實(shí)現(xiàn)完美的集成。為了實(shí)現(xiàn)最大限度的兼容,Eclipse全部由Java語言編寫。
Eclipse已被多家知名的嵌入式工具廠商采用,比如,TimeSys、Wind River、RTI和MontaVista等。甚至有行家預(yù)測(cè)未來所有工具軟件的開發(fā)都將由Eclipse來完成。
TimeSys公司的TimeStorm IDE(Integrated Development Environment)就是一組Eclipse插件,它能為嵌入式應(yīng)用軟件的開發(fā)、調(diào)試及測(cè)試提供一個(gè)功能強(qiáng)大的開發(fā)環(huán)境。TimeStorm IDE不需要任何特殊功能就可以與源代碼控制系統(tǒng)(SCCS)集成在一起,后者主要用于將各種應(yīng)用軟件源代碼分類存檔。
不僅如此,Eclipse中的插件可以即時(shí)與TimeStorm IDE進(jìn)行集成。這些插件都可以提供訪問各種版本控制系統(tǒng)的端口,比如,CVS、Perforce、Rational ClearCase和Subversion等。
小結(jié)
如今,用于嵌入式系統(tǒng)開發(fā)、配置和測(cè)試的軟件開發(fā)工具越來越多。Linux固有的強(qiáng)大功能和靈活性使它成為很多新的嵌入式方案的首選平臺(tái)。
然而,讓優(yōu)秀的產(chǎn)品迅速進(jìn)入市場(chǎng)不僅要依靠一個(gè)自由的、功能強(qiáng)大的操作系統(tǒng),還要依靠性能強(qiáng)大的工具軟件。這些軟件能使嵌入式的開發(fā)、配置和測(cè)試簡(jiǎn)單化,是提供解決各種復(fù)雜問題的百寶箱。
開源軟件提供的工具平臺(tái),比如Eclipse 架構(gòu),極大地推動(dòng)了此類軟件的開發(fā)和普及。TimeSys公司的TimeStorm IDE、TimeStorm LDS,以及TimeStorm LVS等基于Eclipse的軟件工具為嵌入式Linux的開發(fā)提供了眾多現(xiàn)成的解決方案。
評(píng)論