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