免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
基于Linux的嵌入式操作系統(tǒng)的研究

嵌入式系統(tǒng)被定義為:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。嵌入式操作系統(tǒng)的出現(xiàn),將大大提高嵌入式系統(tǒng)開發(fā)的效率,改變以往嵌入式軟件設(shè)計(jì)只能針對具體的應(yīng)用從頭做起。在嵌入式操作系統(tǒng)之上開發(fā)嵌入系統(tǒng)將減少系統(tǒng)開發(fā)的工作量,增強(qiáng)嵌入式應(yīng)用軟件的可移植性,使嵌入式系統(tǒng)的開發(fā)方法更具科學(xué)性。近年來,隨著電子技術(shù)的不斷進(jìn)步,嵌入式系統(tǒng)開發(fā)己成為熱點(diǎn),而Linux作為一個(gè)自由軟件,也得到了極大的發(fā)展,嵌入式系統(tǒng)與Linux的結(jié)合,正日益被人們看好。Linux自身具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越嵌入式系統(tǒng)開發(fā)中的仿真工具(ICE)的障礙。Linux具有內(nèi)核小,效率高,源代碼開放等優(yōu)點(diǎn)。強(qiáng)大的網(wǎng)絡(luò)支持使得可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。

1 系統(tǒng)的組成

一個(gè)基本的嵌入式操作系統(tǒng)應(yīng)包括:

①引導(dǎo)程序。能實(shí)現(xiàn)系統(tǒng)的快速引導(dǎo),提供瞬間開機(jī)功能。負(fù)責(zé)將Linux內(nèi)核加載到內(nèi)存,并將控制權(quán)交給內(nèi)核初始化程序。具體工作包括:尋找或?qū)⒅付ǖ膬?nèi)核映像解壓,解壓文件系統(tǒng)。

②Linux內(nèi)核。Linux是一個(gè)單一內(nèi)核操作系統(tǒng),但可以動態(tài)裝入和卸載內(nèi)核中的部分源代碼,這與傳統(tǒng)的單一內(nèi)核操作系統(tǒng)全部靜態(tài)編譯內(nèi)核代碼是不同的。Linux內(nèi)核由內(nèi)存管理、進(jìn)程管理、定時(shí)器中斷管理、模塊管理、虛擬文件系統(tǒng)、接口文件系統(tǒng)、設(shè)備驅(qū)動程序、進(jìn)程間通信、網(wǎng)絡(luò)管理、系統(tǒng)啟動等構(gòu)成。

③初始化進(jìn)程。系統(tǒng)在剛剛啟動時(shí),運(yùn)行于內(nèi)核方式,這時(shí)候只有一個(gè)初始化進(jìn)程在運(yùn)行,他首先做系統(tǒng)的初始化,然后執(zhí)行初始化程序(一般是/sbin/init)。初始化進(jìn)程是系統(tǒng)的第一個(gè)進(jìn)程,以后所有的進(jìn)程都是初始化進(jìn)程的子進(jìn)程。

④硬件驅(qū)動程序。設(shè)備驅(qū)動程序是內(nèi)核的一部分,它像內(nèi)核中其它代碼一樣運(yùn)行在內(nèi)核模式。驅(qū)動程序如果出錯(cuò)將會使操作系統(tǒng)受到嚴(yán)重破壞,甚至能使系統(tǒng)崩潰并導(dǎo)致文件系統(tǒng)的破壞和數(shù)據(jù)丟失。Linux設(shè)備驅(qū)動程序的主要功能有:對設(shè)備進(jìn)行初始化;使設(shè)備投入運(yùn)行和退出服務(wù);從設(shè)備接收數(shù)據(jù)并將它們送回內(nèi)核;將數(shù)據(jù)從內(nèi)核送到設(shè)備;檢測和處理設(shè)備出現(xiàn)的錯(cuò)誤。

⑤提供所需功能的一個(gè)或更多應(yīng)用程序。

2 系統(tǒng)的小型化

對Linux的一個(gè)通常觀點(diǎn)是,它由于太大而不宜用作嵌入式系統(tǒng),這種觀點(diǎn)不一定是真實(shí)的。我們可以通過配置內(nèi)核、裁剪shell和嵌入式c庫對系統(tǒng)定制,使整個(gè)系統(tǒng)能夠存放到容量較小的Flash中。Linux的動態(tài)模塊加載使Linux的裁剪極為方便,高度模塊化的部件使添加非常容易。一般說來,經(jīng)過適當(dāng)裁剪后的內(nèi)核的啟動部分的內(nèi)核代碼不到500KB。用戶可以把內(nèi)核和root文件同存放在一張軟盤上。

Linux通常的運(yùn)行環(huán)境包括大量的運(yùn)行時(shí)需要的庫。這些運(yùn)行庫相互依賴,大小不等。其中最基本的是C語言的運(yùn)行庫glibc。這個(gè)庫主要完成基本的輸入輸出,內(nèi)存訪問,文件處理。一個(gè)標(biāo)淮的glibc庫大約要1200kB存儲空間,考慮到linux的kernel往往小于500kB,這種運(yùn)行庫實(shí)在太大。我們做了一些精簡的工作。方法無非兩種:

1)用靜態(tài)連接的方法,完全不使用運(yùn)行庫動態(tài)連接。

2)對這個(gè)庫的函數(shù)進(jìn)行了精簡。 在一個(gè)桌面系統(tǒng)上,使用動態(tài)連接可以帶來許多好處。使用動態(tài)連接庫,可以讓應(yīng)用程序跟函數(shù)庫的更新,升級分離,便于維護(hù),可以讓同時(shí)運(yùn)行的多個(gè)程序共享一段代碼。但是,在嵌入式系統(tǒng)中,很少有多個(gè)程序并行的可能,程序的維護(hù),尤其是庫函數(shù)的維護(hù)更新是不常見的。這時(shí),使用靜態(tài)連接的優(yōu)勢就極為明顯。因?yàn)殪o態(tài)連接可以只將庫中用到的部分連接進(jìn)程序。在應(yīng)用程序較少(小于5)的情況下,靜態(tài)連接可以達(dá)到較好的結(jié)果。因?yàn)镃語言運(yùn)行庫是一個(gè)最基本的運(yùn)行庫,可以認(rèn)為是linux運(yùn)行環(huán)境的一部分。為了便于將來擴(kuò)充的需要,我們也采用第二種方法,針對我們的需要,對庫函數(shù)的內(nèi)容進(jìn)行了一些精簡,只保留了一些基本功能。精簡后約需要200kB存儲空間。但相當(dāng)多的功能不支持了。

shell作為系統(tǒng)與用戶打交道的最簡單的方式,雖然它不是系統(tǒng)內(nèi)核的一部分,但是它調(diào)用了內(nèi)核的大部分功能來執(zhí)行程序,建立文件。并以并行的方式協(xié)調(diào)各個(gè)程序的運(yùn)行。可以認(rèn)為它是linux中最基本也是最重要的一個(gè)應(yīng)用程序。在嵌入式系統(tǒng)中使用μClibc和BusyBox的組合,可以有效的減小系統(tǒng)的規(guī)模。用μClibc提供的M68K體系的工具來建立一個(gè)靜態(tài)連接μClibc庫的BusyBox 的實(shí)現(xiàn)的過程大致分為兩大塊:

1)立的交叉編譯環(huán)境。

2)用的交叉編譯環(huán)境來編譯

3 系統(tǒng)移植

Linux的移植。如果Linux不支持選用的平臺,就需要把Linux內(nèi)核中與硬件平臺無關(guān)的部分改寫,使之支持所選用的平臺。為提高系統(tǒng)的可移植性,應(yīng)盡量用可以執(zhí)行好的高級語言開發(fā)系統(tǒng),少用匯編語言;對不可移植的代碼和匯編代碼,可以通過宏定義和函數(shù)的形式分類集中在某幾個(gè)特定的文件之中。

系統(tǒng)移植的步驟

1)建立交叉編譯環(huán)境。這個(gè)編譯環(huán)境就是指編譯內(nèi)核所需的工具ld,as,ar,ranlib,gcc以及相關(guān)的庫文件。

2)內(nèi)核移植。當(dāng)交叉編譯環(huán)境建好后,就可以用它來編譯相關(guān)體系的內(nèi)核了。要編譯特定體系的內(nèi)核,需要修改linux/目錄下的Makefile文件。

4 嵌入式Linu操作系統(tǒng)的開發(fā)難點(diǎn):

①可定制的嵌入操作系統(tǒng)提供了高度模塊化的構(gòu)件方法。嵌入式操作系統(tǒng)也常常要求通用的功能,為了避免重復(fù)勞動,這些功能的實(shí)現(xiàn)運(yùn)用了許多現(xiàn)成的程序和驅(qū)動程序,它們可以用于公共外設(shè)和應(yīng)用。 然而,因?yàn)檫€在起步階段,目前的嵌入式Linux版本還不是一套非常簡潔的系統(tǒng)。如何優(yōu)化系統(tǒng)至適合嵌入式應(yīng)用成為最主要的目標(biāo)。

②許多Linux的應(yīng)用程序都要用到虛擬內(nèi)存,在許多嵌入式操作系統(tǒng)中,是沒有價(jià)值的,所以不要以為一個(gè)沒有磁盤的嵌入操作式系統(tǒng)可以運(yùn)行任何Linux應(yīng)用程序。

③內(nèi)核調(diào)試工具都不怎么好,特別是在較底層的。kgdb可以使錯(cuò)誤定位非常容易,你只要重新啟動。不幸的是,打印語句更麻煩。

④Linux非常的靈活。嵌入式系統(tǒng)總的來說卻不靈活;而且它們完全是為最有效實(shí)現(xiàn)預(yù)定功能而嚴(yán)格設(shè)計(jì)的?,F(xiàn)在的趨勢是保持靈活性、保持總體目標(biāo)功能、盡量少做修改。這個(gè)目標(biāo)是崇高的,但是,所付出的代價(jià)將是針對具體的工作做出巨大的調(diào)整。

5 結(jié)束語

開發(fā)中國自主產(chǎn)權(quán)的嵌人式處理器和嵌人式操作系統(tǒng),有十分重要的戰(zhàn)略意義。由于Linux具有免費(fèi)、源代碼開放、支持多種CPU等優(yōu)點(diǎn),使用Liux作為底層操作系統(tǒng),對它進(jìn)行裁減和定制,并在其基礎(chǔ)搭建嵌入式系統(tǒng)平臺,成為日益流行的嵌入式操作系統(tǒng)的解決方案。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
嵌入式系統(tǒng)簡介
什么是嵌入式Linux?
Linux常見面試題
嵌入式Linux的應(yīng)用基礎(chǔ)知識介紹
ARM與uClinux - ARM - EDN China 技術(shù)論壇 - 電子工程師的設(shè)計(jì)靈感之源
如何構(gòu)建嵌入式Linux系統(tǒng)平臺
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服