嵌入式作業系統(Embedded OperatingSystem,簡稱:EOS)是指用於嵌入式系統的作業系統。嵌入式作業系統是一種用途廣泛的系統軟體,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。嵌入式作業系統負責嵌入式系統的全部軟、硬體資源的分配、任務調度,控制、協調並發活動。它必須體現其所在系統的特徵,能夠通過裝卸某些模塊來達到系統所要求的功能。
接下來跟隨小編來了解一下常用的十款嵌入式作業系統吧。
一、VxWorks
VxWorks作業系統是美國WindRiver公司於1983年設計開發的一種嵌入式實時作業系統(RTOS),是Tornado嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在嵌人式實時作業系統領域逐漸佔據一席之地。
VxWorks具有可裁剪微內核結構;高效的任務管理;靈活的任務間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴展標準;支持多種物理介質及標準的、完整的TCP/IP網絡協議等。
然而其價格昂貴。由於作業系統本身以及開發環境都是專有的,價格一般都比較高,通常需花費10萬元人民幣以上才能建起一個可用的開發環境,對每一個應用一般還要另外收取版稅。一般不通供原始碼,只提供二進位代碼。由於它們都是專用作業系統,需要專門的技術人員掌握開發技術和維護,所以軟體的開發和維護成本都非常高。支持的硬體數量有限。
二、Windows CE
Windows CE與Windows系列有較好的兼容性,無疑是Windows CE推廣的一大優勢。其中WinCE3.0是一種針對小容量、移動式、智能化、32位、了解設備的模塊化實時嵌人式作業系統。為建立針對掌上設備、無線設備的動態應用程式和服務提供了一種功能豐富的作業系統平臺,它能在多種處理器體系結構上運行,並且通常適用於那些對內存佔用空間具有一定限制的設備。它是從整體上為有限資源的平臺設計的多線程、完整優先權、多任務的作業系統。它的模塊化設計允許它對從掌上電腦到專用的工業控制器的用戶電子設備進行定製。
作業系統的基本內核需要至少200KB的ROM。由於嵌入式產品的體積、成本等方面有較嚴格的要求,所以處理器部分佔用空間應儘可能的小。系統的可用內存和外存數量也要受限制,而嵌入式作業系統就運行在有限的內存(一般在ROM或快閃記憶體)中,因此就對作業系統的規模、效率等提出了較高的要求。從技術角度上講,Windows CE作為嵌入式作業系統有很多的缺陷:沒有開放原始碼,使應用開發人員很難實現產品的定製;在效率、功耗方面的表現並不出色,而且和Windows一樣佔用過的系統內存,運用程序龐大;版權許可費也是廠商不得不考慮的因素。
三、嵌入式Linux
這是嵌入式作業系統的一個新成員,其最大的特點是原始碼公開並且遵循GPL協議,在近一年多以來成為研究熱點,據IDG預測嵌入式Linux將佔未來兩年的嵌入式作業系統份額的50%。
由於其原始碼公開,人們可以任意修改,以滿足自己的應用,並且查錯也很容易。遵從GPL,無須為每例應用交納許可證費。有大量的應用軟體可用。其中大部分都遵從GPL,是開放原始碼和免費的。可以稍加修改後應用於用戶自己的系統。 有大量的免費的優秀的開發工具,且都遵從GPL,是開放原始碼的。有龐大的開發人員群體。無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟體的開發和維護成本很低。優秀的網絡功能,這在Internet時代尤其重要。穩定——這是Linux本身具備的一個很大優點。內核精悍,運行所需資源少,十分適合嵌入式應用。
支持的硬體數量龐大。嵌入式Linux和普通Linux並無本質區別,PC上用到的硬體嵌入式Linux幾乎都支持。而且各種硬體的驅動程序原始碼都可以得到,為用戶編寫自己專有硬體的驅動程序帶來很大方便。
在嵌入式系統上運行Linux的一個缺點是Linux體系提供實時性能需要添加實時軟體模塊。而這些模塊運行的內核空間正是作業系統實現調度策略、硬體中斷異常和執行程序的部分。由於這些實時軟體模塊是在內核空間運行的,因此代碼錯誤可能會破壞作業系統從而影響整個系統的可靠性,這對於實時應用將是一個非常嚴重的弱點。
四、μC/OS一Ⅱ
μC/OS一Ⅱ是著名的原始碼公開的實時內核,是專為嵌入式應用設計的,可用於8位,16位和32位單片機或數位訊號處理器(DSP)。它是在原版本μC/OS的基礎上做了重大改進與升級,並有了近十年的使用實踐,有許多成功應用該實時內核的實例。它的主要特點如下:
公開原始碼,容易就能把作業系統移植到各個不同的硬體平臺上;
可移植性,絕大部分原始碼是用C語言寫的,便於移植到其他微處理器上; 可固化;
可裁剪性,有選擇的使用需要的系統服務,以減少鬥所需的存儲空間;
佔先式,完全是佔先式的實時內核,即總是運行就緒條件下優先級最高的任務;
多任務,可管理64個任務,任務的優先級必須是不同的,不支持時間片輪轉調度法; 可確定性,函數調用與服務的執行時間具有其可確定性,不依賴於任務的多少; 實用性和可靠性,成功應用該實時內核的實例,是其實用性和可靠性的最好證據。 由於μC/OS一Ⅱ僅是一個實時內核,這就意味著它不像其他實時存在系統那樣提供給用戶的只是一些API函數接口,還有很多工作需要用戶自己去完成。
五、TInyOS
TInyOS是一個開源的嵌入式作業系統,它是由加州大學的伯利克分校開發出來的,主要應用於無線傳感器網絡方面。程序採用的是模塊化設計,所以它的程序核心往往都很小,一般來說核心代碼和數據大概在400 Bytes左右,能夠突破傳感器存儲資源少的限制。TInyOS提供一系列可重用的組件,一個應用程式可以通過連接配置文件(A Wiring Specification)將各種組件連接起來,以完成它所需要的功能。
六、嵌入式實時作業系統(RTOS)
在工業控制、 軍事設備、航空航天等領域對系統的響應時間有苛刻的要求,這就需要使用實時系統。當外界事件或數據產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,並控制所有實時任務協調一致運行的嵌入式作業系統。故對嵌入式實時作業系統的理解應該建立在對嵌入式系統的理解之上加入對響應時間的要求。
七、FreeRTOS
FreeRTOS是一個迷你作業系統內核的小型嵌入式系統。作為一個輕量級的作業系統,功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能等,可基本滿足較小系統的需要。FreeRTOS任務可選擇是否共享堆棧,並且沒有任務數限制,多個任務可以分配相同的優先權。相同優先級任務的輪轉調度,同時可設成可剝奪內核或不可剝奪內核。
八、WinCE
WinCE是微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、可升級的32位嵌入式作業系統,是基於掌上型電腦類的電子設備作業系統,它是精簡的 Windows 95,Win CE的圖形用戶界面相當出色。WinCE是從整體上為有限資源的平臺設計的多線程、完整優先權、多任務的作業系統。它的模塊化設計允許它對於從掌上電腦到專用的工業控制器的用戶電子設備進行定製。作業系統的基本內核需要至少200K的ROM。
一般來說,一個WinCE系統包括四層結構:應用程式、WinCE內核映像、板級支持包(BSP)、硬體平臺。而基本軟體平臺則主要由 WinCE系統內核映像(OS Image)和板卡支持包(BSP)兩部分組成。因為WinCE系統是一個軟硬體緊密結合的系統,因此即使CPU處理器相同,但是如果開發板上的外圍硬體不相同,這個時候還是需要修改BSP來完成一個新的BSP。因此換句話說,就是WinCE的移植過程主要是改寫BSP的過程。
九、Android
Android 是一個包括作業系統,中間件以及一些重要應用程式的專門針對行動裝置的層次結構的軟體集。Android 作為一個完全開源的作業系統,是由作業系統Linux、中間件以及核心應用程式組成的軟體棧。通過 android SDK 提供的 API 以及相應的開發工具, 程式設計師可以很方便的開發android平臺上的應用程式。其整個系統由應用程式,應用程式框架,應用程式庫,Android運行庫,Linux內核 (Linux Kernel)五個部分組成。Android作業系統內置了一部分應用程式, 包括電子郵件客戶端、SMS程序、日曆、地圖、瀏覽器、通訊錄以及其他的程序,值得一提的是這些所有的程序都是用java編寫的。
移植的主要的工作是驅動,硬體抽象層的移植。為了更好地理解和調試系統,也應該適當地了解上層對硬體抽象層的調用情況。
十、QNX
QNX由加拿大QNX軟體系統有限公司開發,廣泛應用於自動化、控制、機器人科學、電信、數據通信、航空航天、計算機網絡系統、醫療儀器設備、交通運輸、安全防衛系統、POS機、零售機等任務關鍵型應用領域。
QNX獨特的微內核和消息傳遞結構使其運行和開發時非常方便。QNX具有非常好的伸縮性,用戶可以把應用程式代碼和QNX內核直接編譯在一起,使之為簡單的嵌入式應用生成單一的映像。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴