嵌入式操作系統(tǒng)是什么
嵌入式操作系統(tǒng)(Embedded OperatingSystem,簡稱:EOS)是指用于嵌入式系統(tǒng)的操作系統(tǒng)。嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能。
接下來跟隨小編來了解一下常用的十款嵌入式操作系統(tǒng)吧。
常見的嵌入式操作系統(tǒng)
一、VxWorks
VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),是Tornado嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌人式實時操作系統(tǒng)領(lǐng)域逐漸占據(jù)一席之地。
VxWorks具有可裁剪微內(nèi)核結(jié)構(gòu);高效的任務(wù)管理;靈活的任務(wù)間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴(kuò)展標(biāo)準(zhǔn);支持多種物理介質(zhì)及標(biāo)準(zhǔn)的、完整的TCP/IP網(wǎng)絡(luò)協(xié)議等。
然而其價格昂貴。由于操作系統(tǒng)本身以及開發(fā)環(huán)境都是專有的,價格一般都比較高,通常需花費(fèi)10萬元人民幣以上才能建起一個可用的開發(fā)環(huán)境,對每一個應(yīng)用一般還要另外收取版稅。一般不通供源代碼,只提供二進(jìn)制代碼。由于它們都是專用操作系統(tǒng),需要專門的技術(shù)人員掌握開發(fā)技術(shù)和維護(hù),所以軟件的開發(fā)和維護(hù)成本都非常高。支持的硬件數(shù)量有限。
二、Windows CE
Windows CE與Windows系列有較好的兼容性,無疑是Windows CE推廣的一大優(yōu)勢。其中WinCE3.0是一種針對小容量、移動式、智能化、32位、了解設(shè)備的模塊化實時嵌人式操作系統(tǒng)。為建立針對掌上設(shè)備、無線設(shè)備的動態(tài)應(yīng)用程序和服務(wù)提供了一種功能豐富的操作系統(tǒng)平臺,它能在多種處理器體系結(jié)構(gòu)上運(yùn)行,并且通常適用于那些對內(nèi)存占用空間具有一定限制的設(shè)備。它是從整體上為有限資源的平臺設(shè)計的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計允許它對從掌上電腦到專用的工業(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或快閃存儲器)中,因此就對操作系統(tǒng)的規(guī)模、效率等提出了較高的要求。從技術(shù)角度上講,Windows CE作為嵌入式操作系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實現(xiàn)產(chǎn)品的定制;在效率、功耗方面的表現(xiàn)并不出色,而且和Windows一樣占用過的系統(tǒng)內(nèi)存,運(yùn)用程序龐大;版權(quán)許可費(fèi)也是廠商不得不考慮的因素。
三、嵌入式Linux
這是嵌入式操作系統(tǒng)的一個新成員,其最大的特點是源代碼公開并且遵循GPL協(xié)議,在近一年多以來成為研究熱點,據(jù)IDG預(yù)測嵌入式Linux將占未來兩年的嵌入式操作系統(tǒng)份額的50%。
由于其源代碼公開,人們可以任意修改,以滿足自己的應(yīng)用,并且查錯也很容易。遵從GPL,無須為每例應(yīng)用交納許可證費(fèi)。有大量的應(yīng)用軟件可用。其中大部分都遵從GPL,是開放源代碼和免費(fèi)的。可以稍加修改后應(yīng)用于用戶自己的系統(tǒng)。 有大量的免費(fèi)的優(yōu)秀的開發(fā)工具,且都遵從GPL,是開放源代碼的。有龐大的開發(fā)人員群體。無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的開發(fā)和維護(hù)成本很低。優(yōu)秀的網(wǎng)絡(luò)功能,這在Internet時代尤其重要。穩(wěn)定——這是Linux本身具備的一個很大優(yōu)點。內(nèi)核精悍,運(yùn)行所需資源少,十分適合嵌入式應(yīng)用。
支持的硬件數(shù)量龐大。嵌入式Linux和普通Linux并無本質(zhì)區(qū)別,PC上用到的硬件嵌入式Linux幾乎都支持。而且各種硬件的驅(qū)動程序源代碼都可以得到,為用戶編寫自己專有硬件的驅(qū)動程序帶來很大方便。
在嵌入式系統(tǒng)上運(yùn)行Linux的一個缺點是Linux體系提供實時性能需要添加實時軟件模塊。而這些模塊運(yùn)行的內(nèi)核空間正是操作系統(tǒng)實現(xiàn)調(diào)度策略、硬件中斷異常和執(zhí)行程序的部分。由于這些實時軟件模塊是在內(nèi)核空間運(yùn)行的,因此代碼錯誤可能會破壞操作系統(tǒng)從而影響整個系統(tǒng)的可靠性,這對于實時應(yīng)用將是一個非常嚴(yán)重的弱點。
四、μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代碼公開的實時內(nèi)核,是專為嵌入式應(yīng)用設(shè)計的,可用于8位,16位和32位單片機(jī)或數(shù)字信號處理器(DSP)。它是在原版本μC/OS的基礎(chǔ)上做了重大改進(jìn)與升級,并有了近十年的使用實踐,有許多成功應(yīng)用該實時內(nèi)核的實例。它的主要特點如下:
公開源代碼,容易就能把操作系統(tǒng)移植到各個不同的硬件平臺上;
可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上; 可固化;
可裁剪性,有選擇的使用需要的系統(tǒng)服務(wù),以減少斗所需的存儲空間;
占先式,完全是占先式的實時內(nèi)核,即總是運(yùn)行就緒條件下優(yōu)先級最高的任務(wù);
多任務(wù),可管理64個任務(wù),任務(wù)的優(yōu)先級必須是不同的,不支持時間片輪轉(zhuǎn)調(diào)度法; 可確定性,函數(shù)調(diào)用與服務(wù)的執(zhí)行時間具有其可確定性,不依賴于任務(wù)的多少; 實用性和可靠性,成功應(yīng)用該實時內(nèi)核的實例,是其實用性和可靠性的最好證據(jù)。 由于μC/OS一Ⅱ僅是一個實時內(nèi)核,這就意味著它不像其他實時存在系統(tǒng)那樣提供給用戶的只是一些API函數(shù)接口,還有很多工作需要用戶自己去完成。
五、TInyOS
TInyOS是一個開源的嵌入式操作系統(tǒng),它是由加州大學(xué)的伯利克分校開發(fā)出來的,主要應(yīng)用于無線傳感器網(wǎng)絡(luò)方面。程序采用的是模塊化設(shè)計,所以它的程序核心往往都很小,一般來說核心代碼和數(shù)據(jù)大概在400 Bytes左右,能夠突破傳感器存儲資源少的限制。TInyOS提供一系列可重用的組件,一個應(yīng)用程序可以通過連接配置文件(A Wiring Specification)將各種組件連接起來,以完成它所需要的功能。
六、嵌入式實時操作系統(tǒng)(RTOS)
在工業(yè)控制、 軍事設(shè)備、航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時間有苛刻的要求,這就需要使用實時系統(tǒng)。當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運(yùn)行的嵌入式操作系統(tǒng)。故對嵌入式實時操作系統(tǒng)的理解應(yīng)該建立在對嵌入式系統(tǒng)的理解之上加入對響應(yīng)時間的要求。
七、FreeRTOS
FreeRTOS是一個迷你操作系統(tǒng)內(nèi)核的小型嵌入式系統(tǒng)。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能等,可基本滿足較小系統(tǒng)的需要。FreeRTOS任務(wù)可選擇是否共享堆棧,并且沒有任務(wù)數(shù)限制,多個任務(wù)可以分配相同的優(yōu)先權(quán)。相同優(yōu)先級任務(wù)的輪轉(zhuǎn)調(diào)度,同時可設(shè)成可剝奪內(nèi)核或不可剝奪內(nèi)核。
八、WinCE
WinCE是微軟公司嵌入式、移動計算平臺的基礎(chǔ),它是一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡的 Windows 95,Win CE的圖形用戶界面相當(dāng)出色。WinCE是從整體上為有限資源的平臺設(shè)計的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計允許它對于從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200K的ROM。
一般來說,一個WinCE系統(tǒng)包括四層結(jié)構(gòu):應(yīng)用程序、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的過程。
九、Android
Android 是一個包括操作系統(tǒng),中間件以及一些重要應(yīng)用程序的專門針對移動設(shè)備的層次結(jié)構(gòu)的軟件集。Android 作為一個完全開源的操作系統(tǒng),是由操作系統(tǒng)Linux、中間件以及核心應(yīng)用程序組成的軟件棧。通過 android SDK 提供的 API 以及相應(yīng)的開發(fā)工具, 程序員可以很方便的開發(fā)android平臺上的應(yīng)用程序。其整個系統(tǒng)由應(yīng)用程序,應(yīng)用程序框架,應(yīng)用程序庫,Android運(yùn)行庫,Linux內(nèi)核 (Linux Kernel)五個部分組成。Android操作系統(tǒng)內(nèi)置了一部分應(yīng)用程序, 包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、通訊錄以及其他的程序,值得一提的是這些所有的程序都是用java編寫的。
移植的主要的工作是驅(qū)動,硬件抽象層的移植。為了更好地理解和調(diào)試系統(tǒng),也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。
十、QNX
QNX由加拿大QNX軟件系統(tǒng)有限公司開發(fā),廣泛應(yīng)用于自動化、控制、機(jī)器人科學(xué)、電信、數(shù)據(jù)通信、航空航天、計算機(jī)網(wǎng)絡(luò)系統(tǒng)、醫(yī)療儀器設(shè)備、交通運(yùn)輸、安全防衛(wèi)系統(tǒng)、POS機(jī)、零售機(jī)等任務(wù)關(guān)鍵型應(yīng)用領(lǐng)域。
QNX獨(dú)特的微內(nèi)核和消息傳遞結(jié)構(gòu)使其運(yùn)行和開發(fā)時非常方便。QNX具有非常好的伸縮性,用戶可以把應(yīng)用程序代碼和QNX內(nèi)核直接編譯在一起,使之為簡單的嵌入式應(yīng)用生成單一的映像。
評論
查看更多