淺談嵌入式Linux系統(tǒng)及其應(yīng)用前景
摘要:主要分析嵌入式Linux系統(tǒng)應(yīng)用開(kāi)發(fā)的特點(diǎn);概述其開(kāi)發(fā)過(guò)程和所面臨的挑戰(zhàn);闡述嵌入式Linux的發(fā)展和應(yīng)用前景。
本文引用地址:http://m.butianyuan.cn/article/248415.htm關(guān)鍵詞:嵌入式Linux 操作系統(tǒng) 應(yīng)用前景
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
引 言
近年來(lái),隨著計(jì)算技術(shù)、通信技術(shù)的飛速發(fā)展,特別是互聯(lián)網(wǎng)的迅速普及和3C(計(jì)算機(jī)、通信、消費(fèi)電子)合一的加速,微型化和專(zhuān)業(yè)化成為發(fā)展的新趨勢(shì),
嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流。Linux從1991年問(wèn)世到現(xiàn)在,短短的十幾年時(shí)間已經(jīng)發(fā)展成為功能強(qiáng)大、設(shè)計(jì)完善的操作系統(tǒng)之一;可運(yùn)行在X86、 Alpha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多種硬件平臺(tái),而且開(kāi)放源代碼,可以定制;可與各種傳統(tǒng)的商業(yè)操作系統(tǒng)分庭抗?fàn)?。越?lái)越多的企業(yè)和研發(fā)機(jī)構(gòu)都轉(zhuǎn)向嵌入式Linux的開(kāi)發(fā)和研究上,在新興的嵌入式操作系統(tǒng)領(lǐng)域內(nèi)也獲得了飛速發(fā)展。
1 嵌入式Linux的特點(diǎn)
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)為基礎(chǔ),軟硬件可裁剪,適用于系統(tǒng)對(duì)功能、可靠性、成本、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng),系統(tǒng)結(jié)構(gòu)見(jiàn)圖1。實(shí)時(shí)性是嵌入式系統(tǒng)的基本要求,其次,還要求代碼小,速度快,可靠性高。嵌入式Linux(Embedded Linux)是指對(duì)Linux經(jīng)過(guò)裁剪小型化后,可固化在存儲(chǔ)器或單片機(jī)中,應(yīng)用于特定嵌入式場(chǎng)合的專(zhuān)用Linux操作系統(tǒng)。嵌入式Linux的開(kāi)發(fā)和研究已經(jīng)成為目前操作系統(tǒng)領(lǐng)域的一個(gè)熱點(diǎn)。與其它嵌入式操作系統(tǒng)相比(詳見(jiàn)表1),Linux的特點(diǎn)如下。 表1 專(zhuān)用嵌入式實(shí)時(shí)操作系統(tǒng)與嵌入式Linux的比較 專(zhuān)用嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式Linux操作系統(tǒng) 版權(quán)費(fèi)每生產(chǎn)一件產(chǎn)品需交納一份版權(quán)費(fèi)免費(fèi) 購(gòu)買(mǎi)費(fèi)用數(shù)十萬(wàn)元(RMB)免費(fèi) 技術(shù)支持由開(kāi)發(fā)商獨(dú)家提供有限的技術(shù)支持全世界的自由軟件開(kāi)發(fā)者提供支持 網(wǎng)絡(luò)特性另加數(shù)十萬(wàn)元(RMB)購(gòu)買(mǎi)免費(fèi)且性能優(yōu)異 軟件移值難(因?yàn)槭欠忾]系統(tǒng))易,代碼開(kāi)放(有許多應(yīng)用軟件支持) 應(yīng)用產(chǎn)品開(kāi)發(fā)周期長(zhǎng),因?yàn)榭蓞⒖嫉拇a有限短,新產(chǎn)品上市迅速,因?yàn)橛性S多公開(kāi)的代碼可以參考和移植 實(shí)時(shí)性能好須改進(jìn),可用PT_Linux等模塊彌補(bǔ) 穩(wěn)定性較好較好,但在高性能系統(tǒng)中須改進(jìn) 第一,Linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開(kāi)放。Linux是由很多體積小且性能高的微內(nèi)核系統(tǒng)組成。在內(nèi)核代碼完全開(kāi)放的前提下,不同領(lǐng)域和不同層次的用戶(hù)可以根據(jù)自己的應(yīng)用需要方便地對(duì)內(nèi)核進(jìn)行改造,低成本地設(shè)計(jì)和開(kāi)發(fā)出滿足自己需要的嵌入式系統(tǒng)。 第二,強(qiáng)大的網(wǎng)絡(luò)支持功能。Linux誕生于因特網(wǎng)時(shí)代并具有Unix的特性,保證了它支持所有標(biāo)準(zhǔn)因特網(wǎng)協(xié)議,并且可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開(kāi)發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。 此外,Linux還支持ext2、fat16、fat32、romfs等文件系統(tǒng),為開(kāi)發(fā)嵌入式系統(tǒng)應(yīng)用打下了很好的基礎(chǔ)。 第三,Linux具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境和交叉運(yùn)行環(huán)境,可以跨越嵌入式系統(tǒng)開(kāi)發(fā)中仿真工具的障礙。Linux也符合 IEEE POSIX.1標(biāo)準(zhǔn),使應(yīng)用程序具有較好的可移植性。 傳統(tǒng)的嵌入式開(kāi)發(fā)的程序調(diào)試和調(diào)試工具是用在線仿真器(ICE)實(shí)現(xiàn)的。它通過(guò)取代目標(biāo)板的微處理器,給目標(biāo)程序提供一個(gè)完整的仿真環(huán)境,完成監(jiān)視和調(diào)試程序;但一般價(jià)格比較昂貴,只適合做非常底層的調(diào)試。使用嵌入式Linux,一旦軟硬件能夠支持正常的串口功能,即使不用仿真器,也可以很好地進(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)試。 第四,Linux具有廣泛的硬件支持特性。無(wú)論是RISC還是CISC、32位還是64位等各種處理器,Linux都能運(yùn)行。Linux通常使用的微處理器是Intel X86芯片家族,但它同樣能運(yùn)行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的StrongARM CPU等處理器。Linux支持各種主流硬件設(shè)備和最新硬件技術(shù),甚至可以在沒(méi)有存儲(chǔ)管理單元(MMU)的處理器上運(yùn)行。這意味著嵌入式Linux將具有更廣泛的應(yīng)用前景。 2 Linux嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)
2.1 系統(tǒng)軟件操作平臺(tái)
操作系統(tǒng)是一種在計(jì)算機(jī)上運(yùn)行的軟件。它的主要任務(wù)是管理計(jì)算機(jī)上的系統(tǒng)資源,為用戶(hù)提供使用計(jì)算機(jī)及其外部設(shè)備的接口。它存在的目的是為了管理所有硬件資源,并且提供應(yīng)用軟件一個(gè)合適的操作環(huán)境。嵌入式系統(tǒng)由于硬件的限制,通常只具有極稀少的硬件資源,如主頻較低的CPU、較小的內(nèi)存、小容量的固態(tài)電子盤(pán)芯片DoC(Disk on Chip)或DoM(Disk on Module)替代磁盤(pán)等。在使用電池的系統(tǒng)中,它還要實(shí)現(xiàn)低功耗,延長(zhǎng)電池使用時(shí)間的功能。 Linux作為嵌入式操作系統(tǒng)是完全可行的。因?yàn)長(zhǎng)inux提供了完成嵌入功能的基本內(nèi)核和所需要的所有用戶(hù)界面,能處理嵌入式任務(wù)和用戶(hù)界面。將 Linux看作是連續(xù)的統(tǒng)一體,從一個(gè)具有內(nèi)存管理、任務(wù)切換和時(shí)間服務(wù)及其它分拆的微內(nèi)核到完整的服務(wù)器,支持所有的文件系統(tǒng)和網(wǎng)絡(luò)服務(wù)。Linux作為嵌入式系統(tǒng),是一個(gè)帶有很多優(yōu)勢(shì)的新成員。它對(duì)許多CPU和硬件平臺(tái)都是易移植、穩(wěn)定、功能強(qiáng)大、易于開(kāi)發(fā)的。 嵌入式Linux系統(tǒng)需要下面三個(gè)基本元素:系統(tǒng)引導(dǎo)工具(用于機(jī)器加電后的系統(tǒng)定位引導(dǎo))、Linux微內(nèi)核(內(nèi)存管理、 程序管理)、初始化進(jìn)程。但如果要它成為完整的操作系統(tǒng)并且繼續(xù)保持小型化,還必須加上硬件驅(qū)動(dòng)程序、硬件接口程序和應(yīng)用程序組。 Linux是基于GNU的C編譯器,作為GNU工具鏈的一部分,與gdb源調(diào)試器一起工作的。它提供了開(kāi)發(fā)嵌入式Linux系統(tǒng)的所有軟件工具。
2.2 系統(tǒng)硬件平臺(tái) 在選擇硬件時(shí),常由于缺乏完整或精確的信息而使硬件選擇成為復(fù)雜且困難的工作。硬件開(kāi)發(fā)成本常是我們很關(guān)心的。當(dāng)考慮硬件成本時(shí),須要考慮產(chǎn)品的整個(gè)成本而不僅是CPU的成本。因?yàn)楹线m的CPU,一旦加上總線邏輯和延時(shí)電路使之與外設(shè)一起工作,硬件系統(tǒng)就可能變得非常昂貴。如果要尋找嵌入式軟件系統(tǒng),那么,應(yīng)首先確定硬件平臺(tái),即確定微處理器CPU的型號(hào)。 現(xiàn)在比較流行的硬件平臺(tái)有Intel公司的StrongARM 系列,Motorola公司的DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等等。選定硬件平臺(tái)前,首先要確定系統(tǒng)的應(yīng)用功能和所需要的速度,并制定好外接設(shè)備和接口標(biāo)準(zhǔn)。這樣才能準(zhǔn)確地定位所需要的硬件方案,得到性?xún)r(jià)比最高的系統(tǒng)。
3 嵌入式Linux系統(tǒng)開(kāi)發(fā)模式
嵌入式系統(tǒng)通常為一個(gè)資源受限的系統(tǒng)。直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫(xiě)軟件比較困難,有時(shí)甚至是不可能的。一般流程見(jiàn)圖2。目前,一般采用的辦法是,先在通用計(jì)算機(jī)上編寫(xiě)程序,然后,通過(guò)交叉編譯,生成目標(biāo)平臺(tái)上可運(yùn)行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺(tái)上的特定位置上運(yùn)行,具體步驟如下?! ? 第一步,建立嵌入式Linux交叉開(kāi)發(fā)環(huán)境。目前,常用的交叉開(kāi)發(fā)環(huán)境主要有開(kāi)放和商業(yè)兩種類(lèi)型。開(kāi)放的交叉開(kāi)發(fā)環(huán)境的典型代表是GNU工具鏈,目前已經(jīng)能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業(yè)的交叉開(kāi)發(fā)環(huán)境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉開(kāi)發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境。它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)/目標(biāo)機(jī)模式,見(jiàn)圖3。
第二步,交叉編譯和鏈接。在完成嵌入式軟件的編碼之后,就是進(jìn)行編譯和鏈接,以生成可執(zhí)行代碼。由于開(kāi)發(fā)過(guò)程大多是在Intel公司x86系列CPU 的通用計(jì)算機(jī)上進(jìn)行的,而目標(biāo)環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開(kāi)發(fā)環(huán)境中進(jìn)行交叉編譯和鏈接。 例如,在基于ARM體系結(jié)構(gòu)的gcc交叉開(kāi)發(fā)環(huán)境中,arm-linux-gcc是交叉編譯器,arm-linux-ld是交叉鏈接器。通常情況下,并不是每一種體系結(jié)構(gòu)的嵌入式微處理器都只對(duì)應(yīng)于一種交叉編譯器和交叉鏈接器。如對(duì)于M68K體系結(jié)構(gòu)的gcc交叉開(kāi)發(fā)環(huán)境而言,就對(duì)應(yīng)于多種不同的編譯器和鏈接器。如果使用的是COFF格式的可執(zhí)行文件,那么在編譯Linux內(nèi)核時(shí),需要使用m68k-coff-gcc和m68k-coff-ld,而在編譯應(yīng)用程序時(shí)則需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。編寫(xiě)好的嵌入式軟件經(jīng)過(guò)交叉編譯和交叉鏈接后,通常會(huì)生成兩種類(lèi)型的可執(zhí)行文件:用于調(diào)試的可執(zhí)行文件和用于固化的可執(zhí)行文件。 第三步,交叉調(diào)試。 ?、?硬件調(diào)試。如果不采用在線仿真器,可以讓CPU直接在其內(nèi)部實(shí)現(xiàn)調(diào)試功能,并通過(guò)在開(kāi)發(fā)板上引出的調(diào)試端口,發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過(guò)程。目前,Motorola公司提供的開(kāi)發(fā)板上使用的是DBM調(diào)試端口,而ARM公司提供的開(kāi)發(fā)板上使用的則是JTAG調(diào)試端口。使用合適的軟件工具與這些調(diào)試端口進(jìn)行連接,可以獲得與ICE類(lèi)似的調(diào)試效果。 ?、?軟件調(diào)試。在嵌入式Linux系統(tǒng)中,Linux系統(tǒng)內(nèi)核調(diào)試,可以先在Linux內(nèi)核中設(shè)置一個(gè)調(diào)試樁(debug stub),用作調(diào)試過(guò)程中和宿主機(jī)之間的通信服務(wù)器。然后,可以在宿主機(jī)中通過(guò)調(diào)試器的串口與調(diào)試樁進(jìn)行通信,并通過(guò)調(diào)試器控制目標(biāo)機(jī)上Linux內(nèi)核的運(yùn)行。 嵌入式上層應(yīng)用軟件的調(diào)試可以使用本地調(diào)試和遠(yuǎn)程調(diào)試兩種方法。如果采用的是本地調(diào)試,首先要將所需的調(diào)試器移植到目標(biāo)系統(tǒng)中,然后就可以直接在目標(biāo)機(jī)上運(yùn)行調(diào)試器來(lái)調(diào)試應(yīng)用程序了;如果采用的是遠(yuǎn)程調(diào)試,則需要移植一個(gè)調(diào)試服務(wù)器到目標(biāo)系統(tǒng)中,并通過(guò)它與宿主機(jī)上的調(diào)試器共同完成應(yīng)用程序的調(diào)試。在嵌入式Linux系統(tǒng)的開(kāi)發(fā)中,遠(yuǎn)程調(diào)試時(shí)目標(biāo)機(jī)上使用的調(diào)試服務(wù)器通常是gdbserver,而宿主機(jī)上使用的調(diào)試器則是gdb。兩者相互配合共同完成調(diào)試過(guò)程。 第四步,系統(tǒng)測(cè)試。整個(gè)軟件系統(tǒng)編譯過(guò)程,嵌入式系統(tǒng)的硬件一般采用專(zhuān)門(mén)的測(cè)試儀器進(jìn)行測(cè)試,而軟件則需要有相關(guān)的測(cè)試技術(shù)和測(cè)試工具的支持,并要采用特定的測(cè)試策略。測(cè)試技術(shù)指的是軟件測(cè)試的專(zhuān)門(mén)途徑,以及能夠更加有效地運(yùn)用這些途徑的特定方法。在嵌入式軟件測(cè)試中,常常要在基于目標(biāo)機(jī)的測(cè)試和基于宿主機(jī)的測(cè)試之間做出折衷?;谀繕?biāo)機(jī)的測(cè)試需要消耗較多的時(shí)間和經(jīng)費(fèi),而基于宿主機(jī)的測(cè)試雖然代價(jià)較小,但畢竟是在仿真環(huán)境中進(jìn)行的,因此難以完全反映軟件運(yùn)行時(shí)的實(shí)際情況。這兩種環(huán)境下的測(cè)試可以發(fā)現(xiàn)不同的軟件缺陷,關(guān)鍵是要對(duì)目標(biāo)機(jī)環(huán)境和宿主機(jī)環(huán)境下的測(cè)試內(nèi)容進(jìn)行合理取舍。嵌入式軟件測(cè)試中經(jīng)常用到的測(cè)試工具主要有:內(nèi)存分析工具、性能分析工具、覆蓋分析工具、缺陷跟蹤工具等,在這里不加詳述。嵌入式Linux系統(tǒng)的典型構(gòu)成見(jiàn)圖4。 以下即為一個(gè)典型開(kāi)發(fā)工具的使用流程: ① 寫(xiě)入或植入引導(dǎo)碼; ② 向串口打印字符串的編碼; ③ 將gdb目標(biāo)碼移植工作串口,可與另一臺(tái)運(yùn)行g(shù)db程序的Linux主機(jī)系統(tǒng)對(duì)話; ④ 利用gdb讓硬件和軟件初始化碼在Linux內(nèi)核啟動(dòng)時(shí)工作; ⑤ Linux內(nèi)核啟動(dòng),串口成為L(zhǎng)inux控制口并可用于后續(xù)開(kāi)發(fā); ⑥ 如果在目標(biāo)硬件上已運(yùn)行了完整的Linux內(nèi)核,即可調(diào)試用戶(hù)的應(yīng)用進(jìn)程。
4 嵌入式Linux面臨的挑戰(zhàn)
目前,對(duì)嵌入式Linux系統(tǒng)的開(kāi)發(fā)正在蓬勃興起,并已形成了很大的市場(chǎng)。除了一些傳統(tǒng)的Linux公司,像RedHat、VA Linux等,正在從事嵌入式Linux的研究之外,一批新公司(如Lineo、TimeSys等)和一些傳統(tǒng)的大公司(如IBM、SGI、 Motorola、Intel等)以及一些開(kāi)發(fā)專(zhuān)用嵌入式操作系統(tǒng)的公司(如Lynx)也都在進(jìn)行嵌入式Linux的研究和開(kāi)發(fā)。但就目前的技術(shù)而言,嵌入式Linux的研究成果與市場(chǎng)的真正需求還有一些距離,因此,嵌入式Linux走向成熟還需要在以下幾個(gè)方面有所發(fā)展。 (1)Linux的實(shí)時(shí)性擴(kuò)充 實(shí)時(shí)性是嵌入式操作系統(tǒng)的基本要求。由于Linux還不是一個(gè)真正的實(shí)時(shí)操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級(jí)和搶占實(shí)時(shí)特性,所以在開(kāi)發(fā)嵌入式Linux 的過(guò)程中,首要問(wèn)題是擴(kuò)展Linux的實(shí)時(shí)性能。對(duì)Linux實(shí)時(shí)性的擴(kuò)展可以從兩方面進(jìn)行:向外擴(kuò)展和向上擴(kuò)展。向外擴(kuò)展即從范圍上擴(kuò)展,讓實(shí)時(shí)系統(tǒng)支持的范圍更廣,支持的設(shè)備更多。目前的開(kāi)發(fā)所面向的設(shè)備僅限于較簡(jiǎn)單的有實(shí)時(shí)要求的串/并口數(shù)據(jù)采集、浮點(diǎn)數(shù)據(jù)計(jì)算等,而像實(shí)時(shí)網(wǎng)絡(luò)這樣實(shí)時(shí)系統(tǒng)的高級(jí)應(yīng)用還需進(jìn)一步發(fā)展。向上擴(kuò)展是擴(kuò)充Linux內(nèi)核,從功能上擴(kuò)充Linux的實(shí)時(shí)處理和控制系統(tǒng)。如嵌入式系統(tǒng)RT-Linux,它的基本原理是將Linux本身的任務(wù)以及Linux內(nèi)核本身作為一個(gè)優(yōu)先級(jí)最低的任務(wù),而實(shí)時(shí)任務(wù)作為優(yōu)先級(jí)最高的任務(wù),即在實(shí)時(shí)任務(wù)存在的情況下運(yùn)行實(shí)時(shí)任務(wù),否則就運(yùn)行Linux本身的任務(wù)。實(shí)時(shí)任務(wù)不同于Linux普通進(jìn)程。它是以Linux的可裝載的內(nèi)核模塊 (Loadable Kernel Module,LKM)的形式存在的,需要運(yùn)行實(shí)時(shí)任務(wù)的時(shí)候,將這個(gè)實(shí)時(shí)任務(wù)的內(nèi)核模塊插入到內(nèi)核中去,實(shí)時(shí)任務(wù)和Linux一般進(jìn)程之間的通信通過(guò)共享內(nèi)存或者FIFO通道來(lái)實(shí)現(xiàn)。 (2)改變Linux內(nèi)核的體系結(jié)構(gòu) Linux的內(nèi)核體系采用的是Monolithic。在這種體系結(jié)構(gòu)中,內(nèi)核的所有部分都集中在一起,而且所有的部件在一起編譯連接。這樣雖然能使系統(tǒng)的各部分直接溝通,有效地縮短任務(wù)之間的切換時(shí)間,提高系統(tǒng)的響應(yīng)速度和CPU的利用率,且實(shí)時(shí)性好;但在系統(tǒng)比較大時(shí)體積也比較大,與嵌入式系統(tǒng)容量小、資源有限的特點(diǎn)不符。而另外一種內(nèi)核體系結(jié)構(gòu)MicroKernel, 在內(nèi)核中只包括了一些基本的內(nèi)核功能,如創(chuàng)建和刪除任務(wù)、任務(wù)調(diào)度、內(nèi)存管理和中斷處理等部分,而文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧等部分都是在用戶(hù)內(nèi)存空間運(yùn)行。這種結(jié)構(gòu)雖然執(zhí)行效率不如Monolithic內(nèi)核,但大大減小了內(nèi)核的體積,同時(shí)也方便了整個(gè)系統(tǒng)的升級(jí)、維護(hù)和移植,更能滿足嵌入式系統(tǒng)的特點(diǎn)需要。為此,要使嵌入式Linux的應(yīng)用更加廣泛,若將Linux目前的Monolithic內(nèi)核結(jié)構(gòu)中的部分結(jié)構(gòu)改造成MicroKernel體系結(jié)構(gòu),可使得到的Linux既具有很好的實(shí)時(shí)性,又能滿足嵌入式系統(tǒng)體積小的要求。 另外,Linux是一個(gè)需要占用存儲(chǔ)器的操作系統(tǒng)。雖然這可以通過(guò)減少一些不必要的功能來(lái)彌補(bǔ),但可能會(huì)浪費(fèi)很多時(shí)間,而且容易帶來(lái)很大的麻煩。許多 Linux的應(yīng)用程序都要用到虛擬內(nèi)存,這在許多嵌入式系統(tǒng)中是沒(méi)有價(jià)值的。所以,并不是一個(gè)沒(méi)有磁盤(pán)的Linux嵌入式系統(tǒng)就可以運(yùn)行任何Linux應(yīng)用程序。 (3)完善Linux的集成開(kāi)發(fā)環(huán)境 提供完整的集成開(kāi)發(fā)環(huán)境是每一個(gè)嵌入式系統(tǒng)開(kāi)發(fā)人員所期待的。一個(gè)完整的嵌入式系統(tǒng)的集成開(kāi)發(fā)環(huán)境一般需要提供的工具是:編譯/連接器、內(nèi)核調(diào)試/跟蹤器和集成圖形界面開(kāi)發(fā)平臺(tái)。其中的集成圖形界面開(kāi)發(fā)平臺(tái)包括編輯器、調(diào)試器、軟件仿真器和監(jiān)視器等。在Linux系統(tǒng)中,具有功能強(qiáng)大的gcc編譯器工具鏈,使用了基于GNU的調(diào)試器gdb的遠(yuǎn)程調(diào)試功能,一般由一臺(tái)客戶(hù)機(jī)運(yùn)行調(diào)試程序調(diào)試宿主機(jī)運(yùn)行的操作系統(tǒng)內(nèi)核; 在使用遠(yuǎn)程開(kāi)發(fā)時(shí)還可以使用交叉平臺(tái)的方式,如在Windows平臺(tái)下的調(diào)試跟蹤器對(duì)Linux的宿主系統(tǒng)做調(diào)試。但是,Linux在基于圖形界面的特定系統(tǒng)定制平臺(tái)的研究上,與Windows操作系統(tǒng)相比還存在差距。因此,要使嵌入式Linux在嵌入式操作系統(tǒng)領(lǐng)域中的優(yōu)勢(shì)更加明顯,整體集成開(kāi)發(fā)環(huán)境還有待提高和完善。
5 嵌入式Linux的發(fā)展及應(yīng)用前景
綜上,由于Linux具有對(duì)各種設(shè)備的廣泛支持性,因此,能方便地應(yīng)用于機(jī)頂盒、IA設(shè)備、PDA、掌上電腦、WAP手機(jī)、尋呼機(jī)、車(chē)載盒以及工業(yè)控制等智能信息產(chǎn)品中。與PC相比,手持設(shè)備、IA設(shè)備以及信息家電的市場(chǎng)容量要高得多,而Linux嵌入式系統(tǒng)的強(qiáng)大的生命力和利用價(jià)值,使越來(lái)越多的企業(yè)和高校表現(xiàn)出對(duì)它極大的研發(fā)熱情。藍(lán)點(diǎn)軟件公司、博利思公司、共創(chuàng)軟件聯(lián)盟、中科紅旗等公司都已將嵌入式系統(tǒng)的開(kāi)發(fā)作為自己的主要發(fā)展方向之一。 在嵌入式系統(tǒng)的應(yīng)用中,Linux嵌入式操作系統(tǒng)所具有的技術(shù)優(yōu)勢(shì)和獨(dú)特的開(kāi)發(fā)模式給業(yè)界以新異。有理由相信,它能成為Internet時(shí)代嵌入式操作系統(tǒng)中的最強(qiáng)音。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
c++相關(guān)文章:c++教程
評(píng)論