Embedded Linux 技術(shù)與概念解析
發(fā)布時(shí)間:2008/8/19 0:00:00 訪問次數(shù):430
由于目前的目標(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)的軟件平臺,所以我們不能任意精簡linux系統(tǒng),在精簡的過程中仍要保留最基本的操作系統(tǒng)環(huán)境,而lsb的標(biāo)準(zhǔn)正是在制定這些基本的需求。
fhs全名為filesystem hierarchy standard,是定義檔案與目錄標(biāo)準(zhǔn)的文件,fhs的標(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平臺除了linux kernel外,還包含共享鏈接庫(shared library)。shared libraries是linux kernel的重要支持,并且也是linux架構(gòu)里獨(dú)立的1層。在應(yīng)用程序方面,許多現(xiàn)存的開放源碼項(xiàng)目都可以直接移植到arm9平臺。但這里所指的移植是對原始碼進(jìn)行跨平臺編譯(cross compile),并不是bsp(board support package)的移植。
跨平臺編譯
因?yàn)殚_放源碼開發(fā)工具的特性,在應(yīng)用程序級別的移植工具上,可以有1套比較系統(tǒng)化的方法,也有相關(guān)的工具與環(huán)境可以使用,目前最熱門的跨平臺編譯環(huán)境為openembedded。開放源碼軟件采用gnu autoconf與gnu automake來撰寫編譯法則(makefile),因此實(shí)務(wù)上,要將應(yīng)用程序移植到arm9平臺,大部分案例只需要做跨平臺編譯即可。要了解如何將原始碼移植到arm9平臺,需要學(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
由于目前的目標(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)的軟件平臺,所以我們不能任意精簡linux系統(tǒng),在精簡的過程中仍要保留最基本的操作系統(tǒng)環(huán)境,而lsb的標(biāo)準(zhǔn)正是在制定這些基本的需求。
fhs全名為filesystem hierarchy standard,是定義檔案與目錄標(biāo)準(zhǔn)的文件,fhs的標(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平臺除了linux kernel外,還包含共享鏈接庫(shared library)。shared libraries是linux kernel的重要支持,并且也是linux架構(gòu)里獨(dú)立的1層。在應(yīng)用程序方面,許多現(xiàn)存的開放源碼項(xiàng)目都可以直接移植到arm9平臺。但這里所指的移植是對原始碼進(jìn)行跨平臺編譯(cross compile),并不是bsp(board support package)的移植。
跨平臺編譯
因?yàn)殚_放源碼開發(fā)工具的特性,在應(yīng)用程序級別的移植工具上,可以有1套比較系統(tǒng)化的方法,也有相關(guān)的工具與環(huán)境可以使用,目前最熱門的跨平臺編譯環(huán)境為openembedded。開放源碼軟件采用gnu autoconf與gnu automake來撰寫編譯法則(makefile),因此實(shí)務(wù)上,要將應(yīng)用程序移植到arm9平臺,大部分案例只需要做跨平臺編譯即可。要了解如何將原始碼移植到arm9平臺,需要學(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
熱門點(diǎn)擊
- CPU學(xué)習(xí) (Cache Coherence
- 瑞薩推出具有1Mbyte片內(nèi)SRAM的32位
- MAP譯碼器嵌入式狀態(tài)信息存儲(chǔ)機(jī)制設(shè)計(jì)
- Atmel 在AT91SAM3中使用ARM3
- 統(tǒng)一建模語言UML在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用
- 全路由器掃描
- 嵌入式中C和匯編的一些技巧
- 基于ARM平臺的GPRS CQT測試系統(tǒng)的設(shè)
- 嵌入式系統(tǒng)軟件及編程語言
- 中文資料:vxwork bsp的制作1
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究