摘要:嵌入式技術(shù)是當(dāng)前計(jì)算機(jī)技術(shù)領(lǐng)域最熱門的技術(shù)之一,Linux系統(tǒng)由于其可剪裁、體積小等優(yōu)勢(shì),作為嵌入式操作系統(tǒng)的典范在嵌入式技術(shù)中得以廣泛的使用。本文從Linux系統(tǒng)的特點(diǎn)和在嵌入式系統(tǒng)中的應(yīng)用現(xiàn)狀出發(fā),對(duì)嵌入式Linux操作系統(tǒng)的應(yīng)用進(jìn)行了一定的探討。
關(guān)鍵詞:嵌入式;Linux;嵌入式系統(tǒng)
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 22-0000-02
在目前的嵌入式系統(tǒng)領(lǐng)域中,已經(jīng)有越來越多的科研機(jī)構(gòu)和開發(fā)商把目光投入到嵌入式Linux中,準(zhǔn)備在其新的技術(shù)和新的產(chǎn)品中使用Linux系統(tǒng)。與此同時(shí),市面上的以嵌入式Linux操作系統(tǒng)為基礎(chǔ)的產(chǎn)品也在不斷地涌現(xiàn)。
1 嵌入式系統(tǒng)
嵌入式系統(tǒng),是指以計(jì)算機(jī)技術(shù)為基礎(chǔ)、以應(yīng)用為中心、其軟硬件系統(tǒng)可以方便地剪裁,適用于對(duì)應(yīng)用系統(tǒng)的功能、成本、可靠性、功耗、體積等有著嚴(yán)格要求的一種專用的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)一般由嵌入式操作系統(tǒng)、嵌入式微處理器、應(yīng)用程序和外圍的硬件設(shè)備組成,用于對(duì)設(shè)備的監(jiān)視、控制、管理等功能的實(shí)現(xiàn)。
一般來說,嵌入式系統(tǒng)指的是非PC系統(tǒng),其中包括軟件和硬件兩個(gè)部分。軟件包括了操作系統(tǒng)和各種應(yīng)用程序,操作系統(tǒng)控制著硬件和應(yīng)用程序之間的交互行為,而應(yīng)用程序控制系統(tǒng)的行為和運(yùn)作。硬件包括了處理器、存儲(chǔ)器、I/O接口、圖形控制器等部分。
2 嵌入式Linux系統(tǒng)概述
2.1 嵌入式Linux系統(tǒng)應(yīng)用現(xiàn)狀
隨著Linux系統(tǒng)的發(fā)展和應(yīng)用,嵌入式Linux系統(tǒng)已經(jīng)逐漸成為嵌入式系統(tǒng)的重要分支之一。Linux作為一個(gè)穩(wěn)定而成熟的系統(tǒng),在嵌入式系統(tǒng)中的應(yīng)用有著很多優(yōu)點(diǎn)。首先Linux系統(tǒng)其源代碼是開放的,所有人都能夠很方便地獲取和修改,來進(jìn)行產(chǎn)品的開發(fā)。其次Linux能夠?qū)崿F(xiàn)定制,并且系統(tǒng)內(nèi)核較小且足夠穩(wěn)定,占用的系統(tǒng)資源很少。另外Linux系統(tǒng)能夠和大多數(shù)的Unix系統(tǒng)實(shí)現(xiàn)兼容,進(jìn)行應(yīng)用程序的移植和開發(fā)相對(duì)比較容易。同時(shí)由于Linux系統(tǒng)良好的可移植性,目前已經(jīng)在數(shù)百種硬件平臺(tái)之上成功運(yùn)行。
然而,由于Linux系統(tǒng)本身并不是以實(shí)時(shí)性的應(yīng)用為設(shè)計(jì)目標(biāo),因此如果設(shè)備對(duì)系統(tǒng)的實(shí)時(shí)性要求較高,在其中應(yīng)用嵌入式Linux的話就應(yīng)該添加相應(yīng)的實(shí)時(shí)軟件模塊。此類模塊的運(yùn)行內(nèi)核就是操作系統(tǒng)進(jìn)行中斷處理、進(jìn)程調(diào)度和程序執(zhí)行的部分,其中某些代碼發(fā)生錯(cuò)誤的話就有可能破壞整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。
2.2 Linux系統(tǒng)的特點(diǎn)
(1)完全開放。Linux系統(tǒng)是由很多的性能較高,切體積較小的微內(nèi)核系統(tǒng)來組成的。其內(nèi)核的代碼是完全開放的,在此前提和基礎(chǔ)之上,不同層次和不同領(lǐng)域的用戶能夠根據(jù)自身應(yīng)用的需要,來對(duì)Linux系統(tǒng)的內(nèi)核進(jìn)行組合和改造,能夠方便且低成本地實(shí)現(xiàn)適合自身需要的嵌入式Linux系統(tǒng)的開發(fā)和設(shè)計(jì)。
(2)強(qiáng)大的網(wǎng)絡(luò)支持。Linux出生于互聯(lián)網(wǎng)飛速發(fā)展的時(shí)代,且具有著Unix系統(tǒng)的特點(diǎn),這保證了Linux系統(tǒng)能夠支持所有的標(biāo)準(zhǔn)互聯(lián)網(wǎng)的協(xié)議,相比之標(biāo)準(zhǔn)Unix而言,Linux系統(tǒng)能夠更加高效地對(duì)網(wǎng)絡(luò)協(xié)議進(jìn)行處理,并且有著更好的系統(tǒng)網(wǎng)絡(luò)吞吐性能。并且利用Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧功能,能夠?qū)⑵溟_發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。此外,Linux系統(tǒng)還能夠支持fat16、fat32、romfs、ext2、ext3等文件系統(tǒng),這就為使用Linux進(jìn)行嵌入式系統(tǒng)的開發(fā)和應(yīng)用奠定了良好的基礎(chǔ)。
(3)廣泛的硬件支持。Linux系統(tǒng)有著廣泛的硬件支持的特點(diǎn),如CISC或者RISC、不論是32位還是64位的處理器,都能夠支持Linux的運(yùn)行。Linux系統(tǒng)能夠支持各種最新的硬件技術(shù)和大多數(shù)的主流硬件設(shè)備,甚至能夠在沒有儲(chǔ)存管理單元的處理器上面運(yùn)行,因此可以說Linux在嵌入式系統(tǒng)的發(fā)展中有著廣闊的應(yīng)用前景。
(4)使用成本低。其它的商業(yè)用的操作系統(tǒng)大多數(shù)是收費(fèi)的,需要對(duì)每一個(gè)拷貝來支付相應(yīng)的費(fèi)用,而且在這些系統(tǒng)之下的每一項(xiàng)應(yīng)用軟件都需要支付大量的費(fèi)用,在商用系統(tǒng)之下開發(fā)工具鏈的建立,既要為系統(tǒng)本身付費(fèi),還要為組成工具鏈的各種軟件付費(fèi)。而Linux是一種完全免費(fèi)的系統(tǒng),用戶只要遵守GPL的規(guī)定就可以免費(fèi)的使用,而且其下也有著C、Jsva等軟件開發(fā)工具,因此能夠使得開發(fā)成本和使用成本得到極大的降低。
(5)文檔完善。目前Linux系統(tǒng)有著大量的文檔支持,無論是初學(xué)者所用的各種教程,還是詳盡的聯(lián)機(jī)幫助文檔,都有相當(dāng)大的數(shù)量。Linux系統(tǒng)是互聯(lián)網(wǎng)在充分發(fā)展之后的產(chǎn)物,因此很多關(guān)于Linux系統(tǒng)的文檔都能夠在互聯(lián)網(wǎng)上方便地查詢和下載。Linux Document Project是提供Linux系統(tǒng)化文檔支持的項(xiàng)目,由于世界上眾多用戶和程序員的幫助,它收集了詳盡的Linux系統(tǒng)的資料和使用文檔。而且大量的有關(guān)Linux的雜志書籍正在出現(xiàn),很多的英文資料也已經(jīng)被翻譯成中文。
3 嵌入式Linux系統(tǒng)的應(yīng)用
3.1 內(nèi)核剪裁
嵌入式系統(tǒng)其作用大多是針對(duì)具體的應(yīng)用來設(shè)計(jì)的,其軟件的運(yùn)行目標(biāo)和硬件平臺(tái)在設(shè)計(jì)之時(shí)就已經(jīng)確定了,一般不會(huì)進(jìn)行變動(dòng)。因此,在應(yīng)用嵌入式Linux時(shí)可以根據(jù)軟硬件的實(shí)際需要,來進(jìn)行內(nèi)核的定制。要想得到滿意的內(nèi)核,方法之一是選用專用的針對(duì)嵌入式的Linux系統(tǒng),然而即使這樣也有可能包含了某些系統(tǒng)所不需要的功能。所以說最好的方法,是針對(duì)當(dāng)前的硬件屬性和所需軟件系統(tǒng)的功能,確定系統(tǒng)內(nèi)核所需的函數(shù)支持,通過對(duì)內(nèi)核代碼的剪裁,去掉不必要的代碼,做到對(duì)系統(tǒng)庫(kù)和內(nèi)核的精雕細(xì)琢。
3.2 提高系統(tǒng)的實(shí)時(shí)性
雖然Linux已經(jīng)在移動(dòng)電話、機(jī)頂盒、車載電視、PDA等各種嵌入式設(shè)備中廣泛地應(yīng)用,然而在某些對(duì)實(shí)時(shí)性要求較高的設(shè)備如醫(yī)療、交通、航空等系統(tǒng)中,還不能直接的應(yīng)用。其原因在于Linux系統(tǒng)內(nèi)核的調(diào)度策略不能實(shí)時(shí)響應(yīng)外部的中斷,這就需要進(jìn)行Linux內(nèi)核實(shí)時(shí)化的改造。
其中較好的解決辦法之一是使用雙內(nèi)核的機(jī)制,在原來的Linux系統(tǒng)中硬件中斷層和內(nèi)核之間設(shè)置一個(gè)實(shí)時(shí)內(nèi)核。在實(shí)際項(xiàng)目中,該方案實(shí)施的重點(diǎn)在于細(xì)粒度定時(shí)器、中斷控制和可搶占內(nèi)核等方面。
3.3 移植
雖然Linux系統(tǒng)能夠有廣泛的硬件平臺(tái)的支持,然而為了適合某些系統(tǒng)所特有的硬件,必須進(jìn)行Linux系統(tǒng)的移植。一般來說Linux系統(tǒng)的移植包括了三個(gè)層次。首先是體系結(jié)構(gòu)的移植,其中主要涉及的是include/arm和arch/arm這兩個(gè)目錄相關(guān)代碼的修改工作。其次是平臺(tái)層級(jí)的移植,主要涉及的工作是arch/arm/mach-xxxx/目錄之下的代碼的修改,包括了了中斷控制調(diào)度、跟蹤程序、向量初始化等程序的編寫。最后是板級(jí)移植,主要涉及的是arch/arm/mach-xxxx/目錄之下的啟動(dòng)文件和連接腳本文件,還有各種硬件驅(qū)動(dòng)的程序編寫工作。
4 結(jié)語
嵌入式Linux系統(tǒng)的出現(xiàn),給嵌入式系統(tǒng)領(lǐng)域帶來了新的生機(jī)。嵌入式Linux從誕生開始就以其獨(dú)特的優(yōu)勢(shì)被越來越多的人所關(guān)注著。因此可以預(yù)見的是,嵌入式Linux系統(tǒng)將在未來的嵌入式系統(tǒng)應(yīng)用中占據(jù)重要的地位。
參考文獻(xiàn):
[1]林興,樊立民.嵌入式Linux文件系統(tǒng)的優(yōu)化[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,23.
[2]趙曉鳳.淺談嵌入式Linux開發(fā)中NFS的安裝配置[J].科技創(chuàng)新導(dǎo)報(bào),2010,36.
[3]彭聞?dòng)?,陳朔?Linux應(yīng)用程序調(diào)試技術(shù)的研究[J].微計(jì)算機(jī)信息,2006,29.