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