新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Embedded Linux 技術(shù)與概念解析

Embedded Linux 技術(shù)與概念解析

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://2s4d.com/article/201609/305175.htm

Embedded Linux技術(shù)基于開放源碼的資源,并且已經(jīng)是當(dāng)今最重要的嵌入式應(yīng)用技術(shù)之一。Embedded Linux是燒錄在目標(biāo)裝置上的系統(tǒng),1個(gè)Embedded Linux系統(tǒng)包含Linux kernel與 root filesystem 2大部分,Embedded Linux系統(tǒng)到底包含哪些組成要素構(gòu)成,本文將由概念的層面進(jìn)行解析。

本文

由于目前的目標(biāo)裝置,都必須嵌入極為復(fù)雜的功能,所以嵌入式操作系統(tǒng)(Embedded system)成為嵌入式系統(tǒng)不可或缺的要素。由于嵌入式系統(tǒng)是功能導(dǎo)向的系統(tǒng),因此必須設(shè)計(jì)、選擇或購買正確(或適合)的目標(biāo)裝置,才能開始實(shí)作并嵌入嵌入式系統(tǒng)。因此,嵌入式系統(tǒng)技術(shù)是以功能、與目標(biāo)裝置為分類的1種技術(shù)。

例如,與PDA相關(guān)的目標(biāo)裝置(即硬件)、與MP3播放器相關(guān)的目標(biāo)裝置、與3G手機(jī)相關(guān)的目標(biāo)裝置...等等;使用這些目標(biāo)裝置所開發(fā)的特定功能系統(tǒng),便是PDA的嵌入式系統(tǒng)、MP3音樂播放的嵌入式系統(tǒng)、3G手機(jī)的嵌入式系統(tǒng)。

Embedded Linux其實(shí)并不是1個(gè)操作系統(tǒng),而是代表應(yīng)用Linux系統(tǒng)于Embedded system的名詞。Embedded Linux的技術(shù)核心主軸是在研究如何將Linux系統(tǒng)嵌入至嵌入式目標(biāo)裝置里。

Embedded Linux是基于Linux系統(tǒng)的特殊應(yīng)用,當(dāng)然也要符合眾多標(biāo)準(zhǔn)才行。LSB與FHS標(biāo)準(zhǔn)是重要的2大標(biāo)準(zhǔn),跟隨標(biāo)準(zhǔn)不但可以提供系統(tǒng)間的兼容性,也可以提供我們1個(gè)Linux系統(tǒng)的建構(gòu)依據(jù)。

GNU/Linux的2個(gè)標(biāo)準(zhǔn)

由FSG (Free Standards Group) 所主持的 LSB (Linux Standard Base) 項(xiàng)目即是在制定 GNU/Linux 標(biāo)準(zhǔn)。根據(jù)LSB標(biāo)準(zhǔn)所發(fā)展的GNU/Linux系統(tǒng),才能提供應(yīng)用程序最小的可執(zhí)行環(huán)境,并且可在依循LSB標(biāo)準(zhǔn)的Linux distributions上執(zhí)行無誤。例如,我們可以在符合LSB標(biāo)準(zhǔn)的Red Hat Linux上發(fā)展應(yīng)用程序,只要自行發(fā)展的Embedded Linux系統(tǒng)符合LSB標(biāo)準(zhǔn)所訂定的規(guī)范,應(yīng)用程序就可以順利移植到Embedded Linux上執(zhí)行。

LSB標(biāo)準(zhǔn)提供我們發(fā)展Embedded Linux的依據(jù),雖然Embedded Linux系統(tǒng)是最小化的Linux,但因?yàn)镋mbedded Linux是嵌入式系統(tǒng)的軟件平臺(tái),所以我們不能任意精簡Linux系統(tǒng),在精簡的過程中仍要保留最基本的操作系統(tǒng)環(huán)境,而LSB的標(biāo)準(zhǔn)正是在制定這些基本的需求。

FHS全名為Filesystem Hierarchy Standard,是定義檔案與目錄標(biāo)準(zhǔn)的文件,F(xiàn)HS的標(biāo)準(zhǔn),定義了目錄與檔案的擺放位置,而UNIX-like的系統(tǒng)則是根據(jù)這個(gè)標(biāo)準(zhǔn),管理整個(gè)檔案結(jié)構(gòu)。因此,不管是系統(tǒng)廠商、Linux/UNIX distribution發(fā)展者、應(yīng)用程序作者、套件管理者、系統(tǒng)維護(hù)人員都應(yīng)該要依照FHS的標(biāo)準(zhǔn)來管理UNIX系統(tǒng)的目錄與檔案。

Embedded Linux的特色是大量使用自由軟件、與開放源碼軟件(FOSS- Free Open Source Softwar)資源,任何你想要的軟件,幾乎都能在網(wǎng)絡(luò)上找到自由軟件已經(jīng)成為Embedded Linux技術(shù)的重要支柱。自由軟件資源包山包海,舉凡應(yīng)用程序、系統(tǒng)工具、網(wǎng)絡(luò)工具、鏈接庫、圖形接口、小型瀏覽器、程序發(fā)展工具...等等都能找得到。

Busybox

Busybox是重要的Embedded Linux工具箱,這個(gè)工具箱提供基本的UNIX指令、系統(tǒng)程序(daemon)與開機(jī)程序(init process)。Busybox用來建造1個(gè)基本、最小化且可開機(jī)的Linux系統(tǒng),由于Busybox里的指令與工具都經(jīng)過最小化處理,因此已經(jīng)是目前主要應(yīng)用在Embedded Linux實(shí)作上的開放源碼項(xiàng)目了。

Embedded Linux的組成

圖 Embedded Linux整體架構(gòu)

Embedded Linux平臺(tái)除了Linux kernel外,還包含共享鏈接庫(shared library)。shared libraries是Linux kernel的重要支持,并且也是Linux架構(gòu)里獨(dú)立的1層。在應(yīng)用程序方面,許多現(xiàn)存的開放源碼項(xiàng)目都可以直接移植到ARM9平臺(tái)。但這里所指的移植是對(duì)原始碼進(jìn)行跨平臺(tái)編譯(cross compile),并不是BSP(board support package)的移植。

跨平臺(tái)編譯

因?yàn)殚_放源碼開發(fā)工具的特性,在應(yīng)用程序級(jí)別的移植工具上,可以有1套比較系統(tǒng)化的方法,也有相關(guān)的工具與環(huán)境可以使用,目前最熱門的跨平臺(tái)編譯環(huán)境為OpenEmbedded。開放源碼軟件采用GNU Autoconf與GNU Automake來撰寫編譯法則(Makefile),因此實(shí)務(wù)上,要將應(yīng)用程序移植到ARM9平臺(tái),大部分案例只需要做跨平臺(tái)編譯即可。要了解如何將原始碼移植到ARM9平臺(tái),需要學(xué)會(huì)GNU Autoconf以及GNU Automake的使用。

GNU Autoconf

Autoconf是m4宏的擴(kuò)充套件,可以用來自動(dòng)設(shè)定軟件套件的原始碼。Autoconf會(huì)產(chǎn)生1個(gè)協(xié)助程序編譯的設(shè)定文稿執(zhí)行檔(configuration script),以方便編譯原始碼前進(jìn)行系統(tǒng)檢查與設(shè)定,使用GNU Autoconf時(shí),必須安裝GNU m4套件。

GNU Automake

Automake是自動(dòng)產(chǎn)生Makefile.in的工具,需配合Autoconf使用,以產(chǎn)生可以讓GNU Make自動(dòng)編譯原始碼的”Makefile”檔案。

GNU Make

GNU Make會(huì)根據(jù)“Makefile”來自動(dòng)編譯程序,而編譯完成的程序?yàn)閳?zhí)行文件。GNU Make的重要特點(diǎn),是沒有特定程序語言限制,甚至可以應(yīng)用在非程序語言編譯的環(huán)境中,例如:系統(tǒng)維護(hù)工作與套件安裝,因此GNU Make可以說是系統(tǒng)自動(dòng)化的好工具。

GNU Make根據(jù)“Makefile”檔案里所定義的規(guī)則,執(zhí)行Unix命令,簡單的Makefile規(guī)格,可以利用編輯器手動(dòng)撰寫,但較復(fù)雜且與針對(duì)不同平臺(tái)的設(shè)定,則建議采用GNU Autoconf/GNU Automake來產(chǎn)生“Makefile”。當(dāng)我們能夠產(chǎn)生使用cross toolchain的Makefile時(shí),就可以將套件編譯成ARM9的執(zhí)行檔。

ARM 平臺(tái)的選擇與支持

嵌入式裝置的硬件選擇當(dāng)然沒有所謂的標(biāo)準(zhǔn),但若是談?wù)摰角度胧絃inux的應(yīng)用,在平臺(tái)的選擇上就會(huì)有一些考慮。最重要的考慮因素,當(dāng)然就是處理器對(duì)于操作系統(tǒng)的支持,如此一來,沒有MMU(內(nèi)存管理單元)的ARM7平臺(tái),就不在主要的選擇范圍內(nèi)。以下列出幾個(gè)目前普遍使用的ARM9應(yīng)用程序處理器(application processor):


上一頁 1 2 3 下一頁

關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉