什么是嵌入式Linux?
時間:2018-07-03作者:華清遠見
一、什么是嵌入式linux? Linux從1991年問世到現在,短短的十幾年時間已經發展成為功能強大、設計完善的操作系統之一,不僅可以與各種傳統的商業操作系統分庭抗爭,在新興的嵌入式操作系統領域內也獲得了飛速發展。嵌入式Linux(Embedded Linux)是指對標準Linux經過小型化裁剪處理之后,能夠固化在容量只有幾K或者幾M字節的存儲器芯片或者單片機中,適合于特定嵌入式應用場合的專用Linux操作系統。嵌入式Linux既繼承了intelnet上無限的開放原代碼資源,又具有嵌入式操作系統的特性。 二、嵌入式Linux的特點 版權費:免費; 購買費用:媒介成本; 技術支持:全世界的自由軟件開發者提供支持; 網絡特性:免費而且性能優異; 軟件移植:容易,代碼開放,有許多應用軟件支持; 應用產品開發周期:短,新產品上市迅速,因為有許多公開的代碼可以參考和移植; 實時性能:RT_Linux,hardhat Linux 等嵌入式Linux支持實時性能; 穩定性:好; 安全性:好。 三、嵌入式Linux的市場前景和商業機會 嵌入式Linux有巨大的市場前景和商業機會,出現了大量的專業公司和產品,如Montavista、Lineo、Emi等。有行業協會,如Embedded Linux Consortum等。得到世界著名計算機公司和oem板級廠商的支持,例如IBM、Motorola、Intel等 。傳統的嵌入式系統廠商也采用了Linux策略 如Lynxworks 、Windriver、QNX等。還有intelnet上的大量嵌入式Linux愛好者的支持。嵌入式Linux支持幾乎所有的嵌入式cpu和被移植到幾乎所有的嵌入式oem板。 四、嵌入式Linux的應用領域 嵌入式Linux的應用領域非常廣泛,主要的應用領域有,信息家電:PDA,STB-Set-stopbox,Digital Telephone,Answering Machine,Screen Phone、數據網絡:Ethernet switches,Router,Bridge,Hub,Remote access servers,ATM,Frame relay、遠程通信、醫療電子、交通運輸、計算機外設、工業控制、航空領域等。 五、嵌入式linux的優勢 嵌入式Linux的開發和研究是操作系統領域中的一個熱點,目前已經開發成功的嵌入式系統中,大約有一半使用的是Linux。Linux之所以能在嵌入式系統市場上取得如此輝煌的成果,與其自身的優良特性是分不開的。 1、廣泛的硬件支持 Linux能夠支持x86、ARM、MIPS、ALPHA、PowerPC等多種體系結構,目前已經成功移植到數十種硬件平臺,幾乎能夠運行在所有流行的CPU上。Linux有著異常豐富的驅動程序資源,支持各種主流硬件設備和新硬件技術,甚至可以在沒有存儲管理單元(MMU)的處理器上運行,這些都進一步促進了Linux在嵌入式系統中的應用。 2、內核高效穩定 Linux內核的高效和穩定已經在各個領域內得到了大量事實的驗證,Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網絡接口五大部分,其獨特的模塊機制可以根據用戶的需要,實時地將某些模塊插入到內核或從內核中移走。這些特性使得Linux系統內核可以裁剪得非常小巧,很適合于嵌入式系統的需要。 3、開放源碼,軟件豐富 Linux是開放源代碼的自由操作系統,它為用戶提供了大限度的自由度,由于嵌入式系統千差萬別,往往需要針對具體的應用進行修改和優化,因而獲得源代碼就變得至關重要了。Linux的軟件資源十分豐富,每一種通用程序在Linux上幾乎都可以找到,并且數量還在不斷增加。在Linux上開發嵌入式應用軟件一般不用從頭做起,而是可以選擇一個類似的自由軟件做為原型,在其上進行二次開發。 4、優秀的開發工具 開發嵌入式系統的關鍵是需要有一套完善的開發和調試工具。傳統的嵌入式開發調試工具是在線仿真器(In-Circuit Emulator,ICE),它通過取代目標板的微處理器,給目標程序提供一個完整的仿真環境,從而使開發者能夠非常清楚地了解到程序在目標板上的工作狀態,便于監視和調試程序。在線仿真器的價格非常昂貴,而且只適合做非常底層的調試,如果使用的是嵌入式Linux,一旦軟硬件能夠支持正常的串口功能時,即使不用在線仿真器也可以很好地進行開發和調試工作,從而節省了一筆不小的開發費用。嵌入式Linux為開發者提供了一套完整的工具鏈(Tool Chain),它利用GNU的gcc做編譯器,用gdb、kgdb、xgdb做調試工具,能夠很方便地實現從操作系統到應用軟件各個級別的調試。 5、完善的網絡通信和文件管理機制 Linux至誕生之日起就與Internet密不可分,支持所有標準的Internet網絡協議,并且很容易移植到嵌入式系統當中。此外,Linux還支持ext2、fat16、fat32、romfs等文件系統,這些都為開發嵌入式系統應用打下了很好的基礎。 六、嵌入式Linux的挑戰 目前,嵌入式Linux系統的研發熱潮正在蓬勃興起,并且占據了很大的市場份額,除了一些傳統的Linux公司(如RedHat、MontaVista等)正在從事嵌入式Linux的開發和應用之外,IBM、Intel、Motorola等著名企業也開始進行嵌入式Linux的研究。雖然前景一片燦爛,但就目前而言,嵌入式Linux的研究成果與市場的真正要求仍有一段差距,要開發出真正成熟的嵌入式Linux系統,還需要從以下幾個方面做出努力。 1、提高系統實時性 Linux雖然已經被成功地應用到了PDA、移動電話、車載電視、機頂盒、網絡微波爐等各種嵌入式設備上,但在醫療、航空、交通、工業控制等對實時性要求非常嚴格的場合中還無法直接應用,原因在于現有的Linux是一個通用的操作系統,雖然它也采用了許多技術來加快系統的運行和響應速度,并且符合POSIX 1003.1b標準,但從本質上來說并不是一個嵌入式實時操作系統。Linux的內核調度策略基本上是沿用UNIX系統的,將它直接應用于嵌入式實時環境會有許多缺陷,如在運行內核線程時中斷被關閉,分時調度策略存在時間上的不確定性,以及缺乏高精度的計時器等等。正因如此,利用Linux作為底層操作系統,在其上進行實時化改造,從而構建出一個具有實時處理能力的嵌入式系統,是現在日益流行的解決方案。 2、改善內核結構 Linux內核采用的是整體式結構(Monolithic),整個內核是一個單獨的、非常大的程序,這樣雖然能夠使系統的各個部分直接溝通,有效地縮短任務之間的切換時間,提高系統響應速度,但與嵌入式系統存儲容量小、資源有限的特點不相符合。嵌入式系統經常采用的是另一種稱為微內核(Microkernel)的體系結構,即內核本身只提供一些基本的操作系統功能,如任務調度、內存管理、中斷處理等,而類似于文件系統和網絡協議等附加功能則運行在用戶空間中,并且可以根據實際需要進行取舍。Microkernel的執行效率雖然比不上Monolithic,但卻大大減小了內核的體積,便于維護和移植,更能滿足嵌入式系統的要求。可以考慮將Linux內核部分改造成Microkernel,使Linux在具有很高性能的同時,又能滿足嵌入式系統體積小的要求。 3、完善集成開發平臺 引入嵌入式Linux系統集成開發平臺,是嵌入式Linux進一步發展和應用的內在要求。傳統上的嵌入式系統都是面向具體應用場合的,軟件和硬件之間必須緊密配合,但隨著嵌入式系統規模的不斷擴大和應用領域的不斷擴展,嵌入式操作系統的出現就成了一種必然,因為只有這樣才能促成嵌入式系統朝層次化和模塊化的方向發展。很顯然,嵌入式集成開發平臺也是符合上述發展趨勢的,一個優秀的嵌入式集成開發環境能夠提供比較完備的仿真功能,可以實現嵌入式應用軟件和嵌入式硬件的同步開發,從而擺脫了"嵌入式應用軟件的開發依賴于嵌入式硬件的開發,并且以嵌入式硬件的開發為前提"的不利局面。一個完整的嵌入式集成開發平臺通常包括編譯器、連接器、調試器、跟蹤器、優化器和集成用戶界面,目前Linux在基于圖形界面的特定系統定制平臺的研究上,與Windows CE等商業嵌入式操作系統相比還有很大差距,整體集成開發環境有待提高和完善。 發表評論
|