基于Linux的嵌入式實(shí)時(shí)操作系統(tǒng)的研究
2012年05月30日 09:40 來源:互聯(lián)網(wǎng) 作者:秩名 我要評論(0)
1.引言
從上世紀(jì)八十年代開始,開始出現(xiàn)各種各樣的商用嵌入式操作系統(tǒng),這些操作系統(tǒng)大部分都是為專用或通用系統(tǒng)而開發(fā),如VxWorks、Windows CE、pSOS、Palm OS、OS-9、LynxOS、QNX、LYNX 等,它們的優(yōu)點(diǎn)是為用戶提供良好的開發(fā)環(huán)境,提高了應(yīng)用系統(tǒng)的開發(fā)效率,運(yùn)行效率高、實(shí)時(shí)性好,缺點(diǎn)是價(jià)格昂貴且源代碼封閉。這就不僅影響了開發(fā)者的積極性,而且使得整個(gè)產(chǎn)品的成本急劇上升。[1]
結(jié)合國內(nèi)實(shí)情,嵌入式系統(tǒng)需要的是一套高度簡練、界面友好、質(zhì)量可靠、應(yīng)用廣泛、易開發(fā)、多任務(wù)、價(jià)格低廉的實(shí)時(shí)操作系統(tǒng)。
在嵌入式產(chǎn)品的開發(fā)中,有必要尋找一種廉價(jià)的嵌入式實(shí)時(shí)操作系統(tǒng),以降低產(chǎn)品的開發(fā)成本和系統(tǒng)復(fù)雜度。由于Linux的具備的諸多優(yōu)點(diǎn),對Linux進(jìn)行適當(dāng)?shù)母脑旌笞鳛榱畠r(jià)的嵌入式實(shí)時(shí)操作系統(tǒng)是一個(gè)值得探討的、具有實(shí)際意義的問題。
2.Linux的特點(diǎn)
Linux是個(gè)與生俱來的網(wǎng)絡(luò)操作系統(tǒng),成熟而且穩(wěn)定。Linux是源代碼開放軟件,不存在黑箱技術(shù),任何人都可以修改它,或者用它開發(fā)自己的產(chǎn)品。Linux系統(tǒng)是可以定制的,系統(tǒng)內(nèi)核目前已經(jīng)可以做得很小。一個(gè)帶有中文系統(tǒng)及圖形化界面的核心程序也可以做到不足1MB,而且同樣穩(wěn)定。Linux作為一種可裁減的軟件平臺(tái)系統(tǒng),是發(fā)展嵌入式產(chǎn)品的絕佳資源,遍布全球的眾多Linux愛好者又能給予Linux開發(fā)者強(qiáng)大的技術(shù)支持。因此,Linux作為廉價(jià)的嵌入式實(shí)時(shí)操作系統(tǒng)的選擇,是非常有發(fā)展前途的。[2][3]
(1)與硬件芯片的緊密結(jié)合
嵌入式Linux的一大特點(diǎn)是:與硬件芯片(如SOC等)的緊密結(jié)合。它不是一個(gè)純軟件的Linux系統(tǒng),而比一般操作系統(tǒng)更加接近于硬件。嵌入式Linux的進(jìn)一步發(fā)展,逐步地具備了嵌入式RTOS的一切特征:實(shí)時(shí)性及與嵌入式處理器的緊密結(jié)合。
(2)開放的源代碼
嵌入式Linux的另一大特點(diǎn)是:代碼的開放性。代碼的開放性是與后PC時(shí)代的智能設(shè)備的多樣性相適應(yīng)的。代碼的開放性主要體現(xiàn)在源代碼可獲得上,Linux代碼開發(fā)就像是“集市式”開發(fā),任意選擇并按自己的意愿整合出新的產(chǎn)品。
對于嵌入式Linux,事實(shí)上是把BIOS層的功能實(shí)現(xiàn)在Linux的driver層。目前,在Linux領(lǐng)域,已經(jīng)出現(xiàn)了專門為Linux操作系統(tǒng)定制的自由軟件的BIOS代碼,并在多款主板上實(shí)現(xiàn)此類的BIOS層功能。
3.RT-Linux的實(shí)現(xiàn)機(jī)理
RT-Linux對Linux內(nèi)核進(jìn)行改造,將Linux內(nèi)核工作環(huán)境做了一些變化,如圖1所示:
從上圖可以看出,在Linux內(nèi)核和硬件中斷的地方,加上了一個(gè)RT-Linux內(nèi)核的控制。Linux的控制信號(hào)都要先交給RT-Linux內(nèi)核先進(jìn)行處理。在RT-Linux內(nèi)核中實(shí)現(xiàn)了一個(gè)虛擬中斷機(jī)制,Linux本身永遠(yuǎn)不能屏蔽中斷,它發(fā)出的中斷屏蔽信號(hào)和打開中斷信號(hào)都修改成向RT-Linux發(fā)送一個(gè)信號(hào)。如在Linux里面使用“sti”和“cli”宏指令來屏蔽和使能中斷,是通過向x86處理器發(fā)送一個(gè)指令,而RT-Linux修改了這些宏指令,使得只是讓RT-Linux里面的某些標(biāo)記做了修改而已。對所有的中斷,分成Linux中斷和實(shí)時(shí)中斷兩類,如果RT-Linux內(nèi)核收到的中斷信號(hào)是普通Linux中斷,那就設(shè)置一個(gè)標(biāo)志位;如果是實(shí)時(shí)中斷,就繼續(xù)向硬件發(fā)出中斷。在RT Linux中執(zhí)行sti將中斷打開之后,那些設(shè)置了標(biāo)志位表示的Linux中斷就繼續(xù)執(zhí)行。因此,cli并不能禁止RT Linux內(nèi)核的運(yùn)行,卻可以用來中斷Linux。Linux不能中斷自己,而RT-Linux可以。
RT-Linux的設(shè)計(jì)原則:在實(shí)時(shí)內(nèi)核模塊中的工作盡量少,如果能在Linux中完成而不影響實(shí)時(shí)性能的話,就盡量在Linux中完成。因此,RTLinux內(nèi)核盡量做的簡單,在RT-Linux內(nèi)核中,不應(yīng)該等待資源,也不需要使用共享旋轉(zhuǎn)鎖(SpinLock),實(shí)時(shí)任務(wù)和Linux進(jìn)程間的通信也是非阻塞的,從來不用等待進(jìn)隊(duì)列和出隊(duì)列的數(shù)據(jù)。
RT-Linux將系統(tǒng)和設(shè)備的初始化交給了Linux完成,對動(dòng)態(tài)資源的申請和分配也交給了Linux。RT-Linux使用靜態(tài)分配的內(nèi)存來完成硬實(shí)時(shí)任務(wù),因?yàn)樵跊]有內(nèi)存資源的時(shí)候,被阻塞的線程不可能具有硬實(shí)時(shí)能力。
4.改變Linux內(nèi)核的體系結(jié)構(gòu)
Linux的內(nèi)核體系采用的是Monolithic,在這種體系結(jié)構(gòu)中,內(nèi)核的所有部分都集中在一起,而且所有的部件在一起編譯連接。這樣雖然能使系統(tǒng)的各部分直接溝通,有效地縮短任務(wù)之間的切換時(shí)間,提高了系統(tǒng)的響應(yīng)速度,實(shí)時(shí)性好并提高了CPU的利用率,但在系統(tǒng)比較大的時(shí)候體積也比較大,與嵌入式系統(tǒng)容量小、資源有限的特點(diǎn)不符合。而另外一種內(nèi)核體系結(jié)構(gòu)MicroKernel, 在內(nèi)核中只包括了一些基本的內(nèi)核功能如創(chuàng)建和刪除任務(wù)、任務(wù)調(diào)度、內(nèi)存管理和中斷處理等部分,而文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧等部分都是在用戶內(nèi)存空間運(yùn)行。這種結(jié)構(gòu)雖然執(zhí)行效率不如Monolithic內(nèi)核,但大大減小了內(nèi)核的體積,同時(shí)也極大地方便了整個(gè)系統(tǒng)的升級(jí)、維護(hù)和移植,因此更能滿足嵌入式系統(tǒng)的特點(diǎn)需要。為此,為使嵌入式Linux的應(yīng)用更加廣泛,可以考慮將Linux目前的Monolithic內(nèi)核結(jié)構(gòu)中的部分結(jié)構(gòu)改造成MicroKernel體系結(jié)構(gòu)。通過這種折中辦法,可以使得到的Linux既具有很好的實(shí)時(shí)性,又能滿足嵌入式系統(tǒng)體積小的要求。
上周熱點(diǎn)文章排行榜
- 外國牛人教你一步步快速打造首臺(tái)機(jī)器人(超詳
- 全球首款惠普Z1電腦拆解:德州儀器、英特爾成最
- 揭秘磁懸浮燈泡無線電力傳輸(附完整電路圖)
- 華為畢業(yè)四年菜鳥身價(jià)千萬 HTC最需要害怕的新對
- 華為內(nèi)部工資和待遇詳解,50%員工空談28萬年薪?
- 蘋果汽車iCar創(chuàng)意設(shè)計(jì)圖曝光:再次改變世界!
- 芯片級(jí)拆解:剖析新型LED燈泡設(shè)計(jì)的藝術(shù)
- 單片機(jī)設(shè)計(jì)經(jīng)驗(yàn)技巧精華集錦
- 最具創(chuàng)意LED發(fā)明:仿生LED隱形眼鏡 虛擬天空
- 震撼的顛覆性設(shè)計(jì)——液態(tài)金屬制造iPhone5
上周資料下載排行榜
論壇熱帖
- 7種你從沒想過的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動(dòng)正式上線 assingle
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 【畢業(yè)設(shè)計(jì)秀】謝謝A670521546在百忙之中幫我,原理圖已上傳 jiang874896
- 碉堡了,這是5星級(jí)賓館的標(biāo)準(zhǔn)阿~ 東十三少
- 【我們畢業(yè)啦】二逼青歡樂多-畢業(yè)照片回顧 cch6213
- 【我們畢業(yè)啦】那年 我們很快樂 hh824829
- 【畢業(yè)設(shè)計(jì)秀】電阻測量儀 hxp1989325
- 話說今天終于收到耳機(jī)了,曬圖 小鷹fighting
- 【我們畢業(yè)啦】大學(xué)里最遺憾的事就是…… xiaoliu241
熱門博文
創(chuàng)新實(shí)用技術(shù)專題
Linux技術(shù)應(yīng)用
Linux資料下載
- 嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì).rar
- ARM_Linux實(shí)現(xiàn)無線視頻監(jiān)控系統(tǒng)
- 基于嵌入式Linux系統(tǒng)的軟鍵盤實(shí)現(xiàn)
- 用Linux和Apache Hadoop進(jìn)行云計(jì)算
- Linux設(shè)備驅(qū)動(dòng)模型摘抄
- ARM-LINUX平臺(tái)的USB采集卡設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
- Linux下基于I2C協(xié)議的RTC驅(qū)動(dòng)開發(fā)
- 基于V4L2的Linux攝像頭驅(qū)動(dòng)的實(shí)現(xiàn)
- 基于嵌入式Linux智能家居監(jiān)控系統(tǒng)的設(shè)計(jì)
- 淺談Linux用戶管理
嵌入式技術(shù)應(yīng)用
嵌入式資料下載
- 基于北斗二代系統(tǒng)的嵌入式船用導(dǎo)航儀硬件設(shè)計(jì)
- 嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì).rar
- DAC7714在嵌入式激光跟蹤儀中的應(yīng)用
- 嵌入式RISC微處理器核設(shè)計(jì)研究
- 嵌入式VxWorks系統(tǒng)開發(fā)與應(yīng)用_王學(xué)龍
- 嵌入式藍(lán)牙PSTN網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)
- 嵌入式USB MiniHost系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 嵌入式雷達(dá)發(fā)射機(jī)故障監(jiān)測系統(tǒng)的研制
- 嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks實(shí)驗(yàn)教程_王韜
- 嵌入式壓力傳感器的偏置對脈搏信號(hào)的影響
熱評
- LM3S9B96開發(fā)板手冊及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發(fā)布全新設(shè)計(jì)DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費(fèi)下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費(fèi)破解版)
- TX-1C型單片機(jī)開發(fā)板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅(qū)動(dòng)電源設(shè)計(jì)
博文
- 問什么郵箱激活不了
- 八成大學(xué)生認(rèn)同先就業(yè)后擇業(yè)
- 我的心路
- 為什么郵箱激活不了
- 到底有多少人在校園里浪費(fèi)青春
- 你是否曾這樣傷害過一個(gè)人?
- 到底有多少人在校園里浪費(fèi)青春
- 小小的電阻,您真的吃透了它的用法嗎
- 寧愿睡地板,也要?jiǎng)?chuàng)業(yè)做老板!
- 2012.5.12 第一個(gè)DS18B20程序
帖子
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 7種你從沒想過的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 2012(單片機(jī)學(xué)習(xí)工具包)40G視頻教程 donghhao
- labview設(shè)計(jì)憤怒的小鳥 海角一客
- 【畢業(yè)設(shè)計(jì)秀】基于51單片機(jī)的音樂頻譜時(shí)鐘(附視頻鏈接) 我本邪惡
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計(jì)》暨-【送書活動(dòng)預(yù)告】 assingle
- 吐血狂薦----768頁的超詳盡學(xué)習(xí)書籍-----電子電路百科全書 dengyunhan
- 本人設(shè)計(jì)的一款游戲耳機(jī),給大家分享一下 qiu4466
- 【我們畢業(yè)啦】二逼青歡樂多-畢業(yè)照片回顧 cch6213
- 上傳本人當(dāng)年的畢業(yè)設(shè)計(jì)--優(yōu)等 天問地知
用戶評論
查看全部 條評論
查看全部 條評論>>