嵌入式操作系統(tǒng)(EOS)是指用于嵌入式系統(tǒng)的操作系統(tǒng)。嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式系統(tǒng)分為4層:硬件層、驅(qū)動(dòng)層、操作系統(tǒng)和應(yīng)用層。嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度、控制、協(xié)調(diào)并發(fā)活動(dòng)。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能,是一種用途廣泛的系統(tǒng)軟件。
溫總理用經(jīng)典的四個(gè)字“感知中國”全面描述和定義了物聯(lián)網(wǎng)產(chǎn)業(yè)的內(nèi)涵。從字面上來理解,“感”既是信息采集(傳感器);“知”信息處理(運(yùn)算、處理、控制、通信并通過互聯(lián)網(wǎng)進(jìn)行信息傳遞和控制)。這些都是嵌入式系統(tǒng)的特征表現(xiàn)。如果歸納一句話來理解總理“感知中國”的含義,既是通過嵌入式系統(tǒng)智能終端產(chǎn)品網(wǎng)絡(luò)化的過程可以實(shí)現(xiàn)感和知的目的。
【嵌入式操作系統(tǒng)的主要特點(diǎn)】
1.可裝卸性。開放性、可伸縮性的體系結(jié)構(gòu)。
2.強(qiáng)實(shí)時(shí)性。EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制當(dāng)中。
3.統(tǒng)一的接口。提供各種設(shè)備驅(qū)動(dòng)接口。
4.操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學(xué)易用。
5.提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP/IP協(xié)議及其它協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口。
6.強(qiáng)穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運(yùn)行就不需要用戶過多的干預(yù),這就要負(fù)責(zé)系統(tǒng)管理的EOS具有較強(qiáng)的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù)。
7.固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。輔助存儲(chǔ)器在嵌入式系統(tǒng)中很少使用,因此,嵌入式操作系統(tǒng)的文件管理功能應(yīng)該能夠很容易地拆卸,而用各種內(nèi)存文件系統(tǒng)。
8.更好的硬件適應(yīng)性,也就是良好的移植性。
【嵌入式操作系統(tǒng)的種類】
國際上常見的嵌入式操作系統(tǒng)大約有40種左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他們基本可以分為兩類,一類是面向控制、通信等領(lǐng)域的實(shí)時(shí)操作系統(tǒng),如windriver公司的vxworks、isi的psos、qnx系統(tǒng)軟件公司的qnx、ati的nucleus等;另一類是面向消費(fèi)電子產(chǎn)品的非實(shí)時(shí)操作系統(tǒng),這類產(chǎn)品包括個(gè)人數(shù)字助理(pda)、移動(dòng)電話、機(jī)頂盒、電子書、webphone等,系統(tǒng)有Microsoft的WinCE,3Com的Palm,以及Symbian和Google的Android等。
1.VxWorks
VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是Tornado嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌人式實(shí)時(shí)操作系統(tǒng)領(lǐng)域逐漸占據(jù)一席之地。
VxWorks實(shí)時(shí)操作系統(tǒng)由400多個(gè)相對獨(dú)立、短小精悍的目標(biāo)模塊組成,用戶可根據(jù)需要選擇適當(dāng)?shù)哪K來裁剪和配置系統(tǒng);提供基于優(yōu)先級(jí)的任務(wù)調(diào)度、任務(wù)間同步與通信、中斷處理、定時(shí)器和內(nèi)存管理等功能,內(nèi)建符合POSIX(可移植操作系統(tǒng)接口)規(guī)范的內(nèi)存管理,以及多處理器控制程序;并且具有簡明易懂的用戶接口,在核心方面甚至可以微縮到8 KB。
2.WindowsCE
Windows CE與Windows系列有較好的兼容性,無疑是Windows CE推廣的一大優(yōu)勢。其中WinCE3.0是一種針對小容量、移動(dòng)式、智能化、32位、了解設(shè)備的模塊化實(shí)時(shí)嵌入操作系統(tǒng)。對建立針對掌上設(shè)備、無線設(shè)備的動(dòng)態(tài)應(yīng)用程序服務(wù)提供了一種功能豐富的操作系統(tǒng)平臺(tái),它能在多種處理器體系結(jié)構(gòu)上運(yùn)行,并且通常適用于那些對內(nèi)存占用空間具有一定限制的設(shè)備。它是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200KB的ROM。由于嵌入式產(chǎn)品的體積、成本等方面有較嚴(yán)格的要求,所以處理器部分占用空間應(yīng)盡可能的小。系統(tǒng)的可用內(nèi)存和外存數(shù)量也要受限制,而嵌入式操作系統(tǒng)就運(yùn)行在有限的內(nèi)存(一般在ROM或快閃存儲(chǔ)器)中,因此就對操作系統(tǒng)的規(guī)模、效率等提出了較高的要求。從技術(shù)角度上講,Windows CE作為嵌入式操作系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實(shí)現(xiàn)產(chǎn)品的定制;在效率、功耗方面的表現(xiàn)并不出色,而且和Windows一樣占用過的系統(tǒng)內(nèi)存,運(yùn)用程序龐大;版權(quán)許可費(fèi)也是廠商不得不考慮的因素。
3.嵌入式Linux
這是嵌入式操作系統(tǒng)的一個(gè)新成員,其最大的特點(diǎn)是源代碼公開并且遵循GPL協(xié)議,在近年來成為研究熱點(diǎn),據(jù)IDG預(yù)測嵌入式Linux將占未來兩年的嵌入式操作系統(tǒng)份額的50%。
Linux是開放源代碼,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者優(yōu)勢Linux開發(fā)者的強(qiáng)大技術(shù)支持;并且Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快,Linux是可以定制的,其系統(tǒng)內(nèi)核最小只有約134KB。Linux還是免費(fèi)的OS,在價(jià)格上極具競爭力。因?yàn)樗拈_放性對于技術(shù)方面的要求不高只要懂Unix/Linux和C語言即可。隨著Linux在國內(nèi)的普及,這類人才越來越多。所以軟件的開發(fā)和維護(hù)成本很低,優(yōu)秀的網(wǎng)絡(luò)工能,這在Internet時(shí)代尤其重要,穩(wěn)定是Linux本身具備的一個(gè)很大的優(yōu)點(diǎn),內(nèi)核精悍,運(yùn)行所需資源少,十分適合嵌入式應(yīng)用。
支持的硬件數(shù)量龐大,嵌入式Linux和普通的Linux沒有本質(zhì)區(qū)別,PC上用到的硬件嵌入式Linux幾乎都支持,而且各種硬件的驅(qū)動(dòng)程序源代碼都可以得到,為用戶編寫自己專有硬件的驅(qū)動(dòng)程序帶來了很大方便。
4.μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代碼公開的實(shí)時(shí)內(nèi)核,是專為嵌入式應(yīng)用設(shè)計(jì)的,可用于8位,16位和32位單片機(jī)或數(shù)字信號(hào)處理器(DSP)。它是在原版本μC /OS的基礎(chǔ)上做了重大改進(jìn)與升級(jí),并有了近十年的使用實(shí)踐,有許多成功應(yīng)用該實(shí)時(shí)內(nèi)核的實(shí)例。它的主要特點(diǎn)如下:
1)公開源代碼,容易就能把操作系統(tǒng)移植到各個(gè)不同的硬件平臺(tái)上;
2)可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上;
可固化;
3)可裁剪性,有選擇的使用需要的系統(tǒng)服務(wù),以減少斗所需的存儲(chǔ)空間;
4)占先式,完全是占先式的實(shí)時(shí)內(nèi)核,即總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù);
5)多任務(wù),可管理64個(gè)任務(wù),任務(wù)的優(yōu)先級(jí)必須是不同的,不支持時(shí)間片輪轉(zhuǎn)調(diào)度法;
6)可確定性,函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有其可確定性,不依賴于任務(wù)的多少;
7)實(shí)用性和可靠性,成功應(yīng)用該實(shí)時(shí)內(nèi)核的實(shí)例,是其實(shí)用性和可靠性的最好證據(jù);
由于μC/OS一Ⅱ僅是一個(gè)實(shí)時(shí)內(nèi)核,這就意味著它不像其他實(shí)時(shí)存在系統(tǒng)那樣提供給用戶的只是一些API函數(shù)接口,還有很多工作需要用戶自己去完成。
5.QNX
QNX是一種商用的類Unix實(shí)時(shí)操作系統(tǒng),遵從POSIX規(guī)范,目標(biāo)市場主要是嵌入式系統(tǒng)。QNX的應(yīng)用范圍極廣,包含了控制保時(shí)捷跑車的音樂和媒體功能,核電站和美國陸軍無人駕駛Crusher坦克的控制系統(tǒng),還有RIM公司的BlackBelly PlayBook平板電腦。QNX是一個(gè)分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時(shí)操作系統(tǒng)。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(實(shí)時(shí)擴(kuò)展)。
QNX操作系統(tǒng)核心僅包含了CPU任務(wù)排程、進(jìn)程間通訊、中斷重導(dǎo)向以及定時(shí)器等部份,而除此之外包含驅(qū)動(dòng)程序、檔案系統(tǒng)堆疊協(xié)議以及使用者應(yīng)用程序的所有程序都是屬于在使用者階段執(zhí)行。QNX操作系統(tǒng)有個(gè)相當(dāng)特殊的Proc階段,專門負(fù)責(zé)程序process的建立,以及存儲(chǔ)器管理等交集在系統(tǒng)微核心中的組件?;旧?,QNX所有的組件都能透過消息傳遞這個(gè)函式來進(jìn)行溝通,而具有良好定義的通訊機(jī)制,也能保障所有的組件都有完全獨(dú)立且被保護(hù)的儲(chǔ)存及執(zhí)行空間。因此有問題的應(yīng)用程序不會(huì)影響到其它組件的穩(wěn)定性,發(fā)生問題的程序?qū)?huì)被自動(dòng)終止并重新啟動(dòng)。
與傳統(tǒng)的操作系統(tǒng)架構(gòu)相較起來,微核心架構(gòu)可以讓嵌入式系統(tǒng)獲得更為快速的平均回覆時(shí)間(MTTR),當(dāng)硬件驅(qū)動(dòng)程序失效,QNX可以在數(shù)毫秒之內(nèi),就對該驅(qū)動(dòng)程序進(jìn)行終止、回收資源并重新啟動(dòng)的步驟,讓嵌入式設(shè)備可接近無停擺時(shí)間表現(xiàn)。
不過微核心RTOS的架構(gòu)除了優(yōu)點(diǎn)以外,由于其process間的訊息傳遞功能將會(huì)占用存儲(chǔ)器頻寬,影響到校能表現(xiàn),因此在實(shí)際應(yīng)用上,就必須采用特殊的最佳化手段,以避免掉訊息傳遞功能所帶來的性能耗損。
6.、Nucleus Plus
這款嵌入式操作系統(tǒng)主要特征就是輕薄短小,其架構(gòu)上的延展性,可以讓Nucleus RTOS所占的儲(chǔ)存空間壓縮到僅有13K左右,而且Nucleus Plus是一款不需授權(quán)費(fèi)的操作系統(tǒng),并且提供了原始碼。
Nucleus Plus本身只是Acclerated Technology公司完整解決方案里面的其中一環(huán),這個(gè)RTOS本身架構(gòu)屬于先占式多工設(shè)計(jì),有超過95%的原始碼是用標(biāo)準(zhǔn)的ANSI C語言所編寫,因此可以非常有效率的移植到各種不同的平臺(tái)。Nucleus Plus在CISC架構(gòu)處理器中,核心部份大約占去20KB左右的儲(chǔ)存空間,而在RISC處理器上則是40KB左右,核心資料結(jié)構(gòu)僅占約1.5KB,由于其即時(shí)回應(yīng)、先占式多工、以及多process并行,并且開放原始碼等特性,在國防、工控、航天工業(yè)、鐵路、網(wǎng)絡(luò)、POS、自動(dòng)化控制以及信息家電等領(lǐng)域廣泛受到應(yīng)用。
就如同QNX一般,Nucleus Plus也可以根據(jù)目標(biāo)產(chǎn)品的需求,來自行剪裁所需要的系統(tǒng)功能,達(dá)到精簡體積的目的。而配合相對應(yīng)的編譯器(Borland c/c++、Microsoft c/c++)以及動(dòng)態(tài)連結(jié)程序庫和各種底層驅(qū)動(dòng)程序,在開發(fā)上擁有非常相當(dāng)大的便利性。諸如飛思卡爾(Freescale)、羅技(Logitech)公司、美國NEC、SK Telecom等公司,都有采用Nucleus Plus嵌入式操作系統(tǒng)作為開發(fā)產(chǎn)品使用。
7.WinCE
WinCE是微軟公司嵌入式、移動(dòng)計(jì)算平臺(tái)的基礎(chǔ),它是一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡的Windows 95,Win CE的圖形用戶界面相當(dāng)出色。WinCE是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對于從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200K的ROM。
一般來說,一個(gè)WinCE系統(tǒng)包括四層結(jié)構(gòu):應(yīng)用程序、WinCE內(nèi)核映像、板級(jí)支持包(BSP)、硬件平臺(tái)。而基本軟件平臺(tái)則主要由WinCE系統(tǒng)內(nèi)核映像(OS Image)和板卡支持包(BSP)兩部分組成。因?yàn)閃inCE系統(tǒng)是一個(gè)軟硬件緊密結(jié)合的系統(tǒng),因此即使CPU處理器相同,但是如果開發(fā)板上的外圍硬件不相同,這個(gè)時(shí)候還是需要修改BSP來完成一個(gè)新的BSP。因此換句話說,就是WinCE的移植過程主要是改寫B(tài)SP的過程。
8.Android
Android是一個(gè)包括操作系統(tǒng)、中間件以及一些重要應(yīng)用程序的專門針對移動(dòng)設(shè)備的層次結(jié)構(gòu)的軟件集。Android作為一個(gè)完全開源的操作系統(tǒng),是由操作系統(tǒng)Linux、中間件以及核心應(yīng)用程序組成的軟件棧,通過Android SDK提供的API以及想用的開發(fā)工具,程序員可以很方便的開發(fā)Android平臺(tái)上的應(yīng)用程序。其整個(gè)系統(tǒng)由應(yīng)用程序,應(yīng)用程序框架,應(yīng)用程序庫,Android運(yùn)行庫,Linux內(nèi)核(Linux Kernel)五個(gè)部分組成。Android操作系統(tǒng)內(nèi)置了一部分應(yīng)用程序, 包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、通訊錄以及其他的程序,值得一提的是這些所有的程序都是用java編寫的。
移植的主要的工作是驅(qū)動(dòng),硬件抽象層的移植。為了更好地理解和調(diào)試系統(tǒng),也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。
9.嵌入式實(shí)時(shí)操作系統(tǒng)
在工業(yè)控制、 軍事設(shè)備、航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時(shí)間有苛刻的要求,這就需要使用實(shí)時(shí)系統(tǒng)。當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的嵌入式操作系統(tǒng)。故對嵌入式實(shí)時(shí)操作系統(tǒng)的理解應(yīng)該建立在對嵌入式系統(tǒng)的理解之上加入對響應(yīng)時(shí)間的要求。
10.FreeRTOS
FreeRTOS是一個(gè)迷你操作系統(tǒng)內(nèi)核的小型嵌入式系統(tǒng)。作為一個(gè)輕量級(jí)的操作系統(tǒng),功能包括:任務(wù)管理、時(shí)間管理、信號(hào)量、消息隊(duì)列、內(nèi)存管理、記錄功能等,可基本滿足較小系統(tǒng)的需要。FreeRTOS任務(wù)可選擇是否共享堆棧,并且沒有任務(wù)數(shù)限制,多個(gè)任務(wù)可以分配相同的優(yōu)先權(quán)。相同優(yōu)先級(jí)任務(wù)的輪轉(zhuǎn)調(diào)度,同時(shí)可設(shè)成可剝奪內(nèi)核或不可剝奪內(nèi)核。
FreeRTOS 的移植主要需要改寫如下三個(gè)文件。1.portmacro.h 2.port.c 3. port.a(chǎn)sm
【嵌入式操作系統(tǒng)和通用計(jì)算機(jī)系統(tǒng)的區(qū)別】
嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)有著完全不同的技術(shù)要求和技術(shù)發(fā)展方向。通用計(jì)算機(jī)系統(tǒng)的技術(shù)要求是高速、海量的數(shù)值計(jì)算,其技術(shù)發(fā)展方向是總線速度的無限提升、存儲(chǔ)容量的無限擴(kuò)大;而嵌入式計(jì)算機(jī)系統(tǒng)的技術(shù)要求則是智能化控制,技術(shù)發(fā)展方向是與對象系統(tǒng)密切相關(guān)的潛入性能、控制能力與控制的可靠性不斷提高。
嵌入式操作系統(tǒng)和通用計(jì)算機(jī)系統(tǒng)的主要區(qū)別包括以下幾點(diǎn):
1、形式與類型:
通用計(jì)算機(jī)系統(tǒng):實(shí)實(shí)在在的計(jì)算機(jī)。按其體系結(jié)構(gòu)、運(yùn)算速度和規(guī)??煞譃榇笮蜋C(jī)、中型機(jī)、小型機(jī)和微機(jī);嵌入式操作系統(tǒng):“看不見”的計(jì)算機(jī),形式多樣,應(yīng)用領(lǐng)域廣泛,按應(yīng)用進(jìn)行分類。
2、組成:
通用計(jì)算機(jī)系統(tǒng):通用處理器、標(biāo)準(zhǔn)總線和外設(shè)、軟硬件相對獨(dú)立;嵌入式操作系統(tǒng):面向特定應(yīng)用的微處理器,總線和外設(shè)一般集成在處理器內(nèi)部,軟硬件緊密結(jié)合。
3、系統(tǒng)資源:
通用計(jì)算機(jī)系統(tǒng):系統(tǒng)資源充足,有豐富的編譯器、集成開發(fā)環(huán)境、調(diào)試器等;嵌入式操作系統(tǒng):系統(tǒng)資源緊缺,沒有編譯器等相關(guān)開發(fā)工具。
4、開發(fā)方式:
通用計(jì)算機(jī)系統(tǒng):開發(fā)平臺(tái)和運(yùn)行平臺(tái)都是通用計(jì)算機(jī);嵌入式操作系統(tǒng):采用交叉編譯方式,開發(fā)平臺(tái)一般是通用計(jì)算機(jī),運(yùn)行平臺(tái)是嵌入式系統(tǒng)。
5、二次開發(fā)性:
通用計(jì)算機(jī)系統(tǒng):應(yīng)用程序可重新編程;嵌入式操作系統(tǒng):一般不能重新編程開發(fā)。
6、發(fā)展目標(biāo):
通用計(jì)算機(jī)系統(tǒng):編程功能電腦,普遍進(jìn)入社會(huì);嵌入式操作系統(tǒng):變?yōu)閷S秒娔X,實(shí)現(xiàn)“普及計(jì)算”。