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