嵌入式操作系統(英語:Embedded Operating System,簡稱EOS)是一種支持嵌入式應用程序的操作系統,它用于控制和管理嵌入式系統中的軟硬件資源,提供系統服務的軟件結合。嵌入式操作系統主要包括嵌入式內核、嵌入式TCP/IP網絡系統、嵌入式文件系統三部分,其中內核功能包括內存管理、任務管理、進程管理、中斷管理、時間管理等;網絡系統提供符合TCP/IP協議標準的協議棧;文件系統具有文件的存儲、檢索、更新等功能。
嵌入式系統最早起源于20世紀60年代,早期的嵌入式系統功能單一、控制簡單,因此對嵌入式操作系統需求不大。進入20世紀80年代,開始出現簡單的操作系統,這一時期的操作系統雖然較為簡單,但具有了一定的兼容性和擴展性,內核精巧且效率高。20世紀90年代出現的嵌入式操作系統,其實時性大為提高,具有高度的模塊化和擴展性。到21世紀,嵌入式操作系統開始應用到各類網絡之中,其與云計算、大數據以及人工智慧進行了深度結合。按照實時性分類,嵌入式操作系統可分為硬實時操作系統和軟實時操作系統;按商業模式分類,嵌入式操作系統可分為商用型嵌入式操作系統和免費型嵌入式操作系統。
嵌入式操作系統的應用遍及人們的日常生活,例如應用于工控、網絡設備等領域的VxWorks,應用于通信、航空領域的Delta Os以及應用于WSN的Tiny Os等。隨著技術的發展,嵌入式操作系統逐漸向著定制化、網絡化、節能化、人性化的方向發展。
概念定義
嵌入式操作系統(Embedded Operating System,EOS)是一種支持嵌入式應用程序的實時操作系統,它用于控制和管理嵌入式系統中的軟硬件資源,提供系統服務的軟件結合。嵌入式操作系統通常包括與硬件相關的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。
發展歷程
無操作系統時期
嵌入式系統軟件和嵌入式硬件共同構成了嵌入式系統,而嵌入式操作系統便屬于嵌入式軟件得一部分,早期的嵌入式系統功能單一、控制簡單,因此并不需要嵌入式操作系統。嵌入式系統的出現最早可以追溯至20世紀60年代,當時在通信系統中針對電子機械電話交換的控制,被稱為“存儲是程序控制系統”(Stored Program ctrl),為了靈活兼容考慮,20世紀70年代開始出現了系統化、模塊化的單板機,包括Inter公司的iSBC系列、Zilog公司的MCB等。用戶和開發者都希望從不同的廠家選購最適合的OEM產品,插入外購或自制的機箱中形成新的系統,這樣就希望插件是互相兼容的,之后為了兼容不同廠家的OEM產品,促進了工業控制微型計算機系統總線的誕生。
20世紀70年底,微處理器得出現使得嵌入式系統才獲得了飛速發展。1971年11月,Inter公司推出了全球首款微處理器Inter 4004,在這款微處理器上,Inter公司第一次將算術運算器和控制器電路集成在一起。在此之后不同的廠家相繼推出了包括Inter 8080/8085/8086、Motorola 6800/68000以及Zilog的Z80、Z8000等在內的8位、16位的微處理器,以這些微處理器為核心的系統被廣泛應用于武器裝備、儀器儀表、醫療裝備等領域。
隨著微處理器的廣泛應用,計算機廠家開始以插件方式向用戶提供OEM產品,再由用戶根據自己的需求選擇一套適合的CPU板、存儲器板以及各式I/O插件板,從而構成專用的嵌入式計算機系統,并將其嵌入自己的系統設備中。
這一階段嵌入式系統的主要特點是系統結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于使用簡便、價格低廉,因此曾經在工業控制領域中得到了非常廣泛的應用。
簡單操作系統時期
現代意義上的通用嵌入式操作系統是起源于20世紀80年代,在當時隨著微電子學工藝水平的提高,集成電路(Very large Scale Integration Circuit,VLSI)制造商開始把嵌入式應用中所需要的微處理器、I/O接口、A/D和D/A轉換、串口調試軟件以及RAM、ROM等部件集成在一個VLSI中,從而制造出面向I/O設計的微控制器,即單片機,其隨后發展的DSP(Digital Signal Processor)產品進一步提升了嵌入式計算機系統的技術水平,并迅速滲入國防軍事、消費電子、醫用電子、通信電子等領域。這一時期出現了控制系統負載和監視應用程序運行的簡單嵌入式操作系統。1981年,ReadySystem公司發布了第一款商用嵌入式操作系統(VRTX),并先后被應用于早期的軍事和民用產品中。
這一階段嵌入式系統的主要特點是出現了大量高可靠、低功耗的嵌人式CPU(如PowerPC等),也出現了各種簡單的嵌入式操作系統。此時的嵌入式操作系統已經初步具有了一定的兼容性和擴展性,內核精巧且效率高,主要用來控制系統負載以及監控應用程序的運行。
實時操作系統時期
20世紀90年代,面向實時信號處理算法的DSP產品向著高速度、高精度、低功耗方向發展,同時由于硬件的實時性要求提高,嵌入式系統軟件的規模也逐漸擴大,嵌入式操作系統也發展為實時多任務操作系統(Real 時間 multi-taskingOperation System,RTOS)。其實時性得到了很大改善,已經能夠運行在各種不同類型的微處理器上,具有高度的模塊化和擴展性。
在這一時期,嵌入式操作系統已經具備了文件和目錄管理、設備管理、多任務、網絡、圖形用戶界面(GUI)等功能,并提供了大量的應用程序接口(API),從而使應用軟件的開發變得更加簡單。
面向網絡時期
進入21世紀,隨著網絡化的普及,嵌入式操作系統也將應用到各類網絡之中,它的功能、接口以及可拓展性也隨之增強,用于適配網絡化的運行場景。同時隨著云計算、大數據以及人工智能的發展,嵌入式操作系統也會與之結合,發揮更大的作用。
由于不同領域間的需求差異,因此在不同領域的嵌入式操作系統的相關標準隨之出臺,典型的有面向綜合模塊化航電系統(Integrated Modular Avionics,簡稱IMA)領域的ARINC 653標準、面向汽車領域的OSEK(AUTOSAR)標準等。圍繞這些標準要求各個軟件公司推出了相應的嵌入式操作系統,如WindRiver公司的vxworks 653和OSEK產品,BAE公司的CsLE OS產品等。各類linux嵌入式應用操作系統迅速發展,由于具有源代碼開放、系統內核小、執行效率高、網絡結構完整等特點,很適合3C產品等嵌入式系統的需要,目前已經形成了能與Windows CE、Palm OS等嵌入式操作系統進行有力競爭的局面。
分類
典型的嵌入式操作系統可以按實時性分類分為硬實時操作系統和軟實時操作系統,按商業模式分為商用型嵌入式操作系統和免費型嵌入式操作系統。
按實時性分類
硬實時操作系統
硬實時操作系統又稱嵌入式實時操作系統,其主要功能是對多個外部事件,尤其是異步事件進行實時處理。雖然事件可能在無法預知的時刻到達,但是在軟件上,必須在事件發生時能夠及時地進行響應(系統響應時間),并在時間耗盡之前提交響應結果,即使在尖峰負荷下也應如此。因此,對嵌入式實時操作系統的實時性要求除快速性外,另一個重要特點就是系統的確定性,即系統能對運行在最好和最壞的情況下做出精確的估計。其主要用于通信、軍事、航天、控制等領域,在這些領域中,人機交互要求相對較弱,可靠性和實時性要求高,運行環境復雜多變,其典型代表有VxWork、RTEMS、QNX、μC/OS-Ⅱ、Nucleus等。
軟實時操作系統
軟實時操作系統僅要求事件響應是實時的,并不要求限定某一任務必須在多長時間內完成。主要用于類PC、手持設備、家用電器、個人通信終端等消費電子產品,這類系統的典型代表是嵌入式分時操作系統。嵌入式分時操作系統也是一種多任務操作系統,但任務之間的耦合關系比較松散,任務間的調度一般采用時間片輪轉方式。對于嵌入式分時操作系統,軟件的執行在時間上并不嚴格,時間上的錯誤一般不會造成災難性的后果。這類系統的設計目標是實現大的任務吞吐量,因此算法的核心是分時思想。典型的嵌入式軟實時操作系統如Window CE、Palm、EPOC、Embedded Linux等。
按商用模式分類
免費嵌入式操作系統
免費嵌入式操作系統是完全開源的,允許開發者免費獲得源代碼,其典型代表有Rtems、eCOS、FreeRTOS等。
商用嵌入式操作系統
商用嵌入式操作系統的開發是以營利為目的的,這類操作系統的穩定性好,可靠性高,有完善的技術支持和售后服務,類如μC/OS-Ⅱ、VxWork、Window CE等。
系統特點
嵌入式操作系統具有專業性強、實時性好、可裁剪性好、可靠性高等特點。
組成與功能
嵌入式操作系統的組成主要包括嵌入式內核、嵌入式TCP/IP網絡系統、嵌入式文件系統。系統軟件層由實時多任務操作系統(Real-time Operation System,RTOS)、文件系統、圖形用戶接口(Graphic User Interface,GUI)、網絡系統及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發平臺。
內核
嵌入式內核是嵌入式操作系統的基礎,主要完成內存管理、任務管理、進程管理、中斷管理、時間管理等。
進程管理
操作系統的基本任務之一就是進程管理,其需要為進程分配資源,實現進程間共享和減緩信息,保護進程資源,以及實現進程間同步。在嵌入式操作系統中,其進程狀態分為三種:運行狀態(Running)、就緒狀態(Ready)、等待狀態(Waitting)。在嵌入式應用中,多采用多任務的設計策略來實現任務調度,其大致可以分為3種,即優先級調度、輪轉調度和時間片調度。
優先級調度按照高優先級任務被激活后,是否搶占CPU運行,分為優先級搶占和優先級不搶占。輪轉調度是任務管理者讓就緒任務按照一個固定的時間輪流運行。時間片運行就是任務管理者根據各任務不同的情況在不同數量的單位時間的時間片內運行。在嵌入式操作系統種一般配備有上述3種調度函數的庫函數,來滿足不同用戶的差異化需求。
內存管理
在嵌入式操作系統中,通常不采用虛擬存儲管理,而是采用靜態內存分配(固定大小內存分配)和動態內存分配(可變大小內存分配),進程的數量和可能用到的內存容量可以在開發時預測,同時其存儲管理也沒有垃圾收集的功能。在內存分配的策略上,嵌入式操作系統具有一定的可裁剪性,即可以提供幾種分配策略,以供用戶在開發嵌入式系統時使用。
內存管理的另一特性為內存保護,在不同的嵌入式系統中也存在差異,例如在智能手機等領域,其代碼很小,在內存保護方面較為薄弱,但在航空武器系統等領域中則要求其具有很強的內存保護功能。
中斷管理
在多任務操作系統中,由于采用查詢方式需要消耗大量的CPU時間。因此在嵌入式操作系統中基本上都采用中斷方式來處理事件或I/O請求。在嵌入式操作系統中,中斷管理負責中斷的初始化安裝、現場的保存和恢復、中斷棧的嵌套管理等。在中斷處理上,嵌入式操作系統由于受到代碼量的限制,中斷現場的保護往往由中斷處理程序來完成。中斷處理程序引發的任務切換過程是:任務A運行→響應中斷并執行中斷處理程序,切換到任務B→任務B運行退出后,切換到任務A→任務A繼續運行。
時間管理
嵌入式操作系統可以提供高精度、應用可設置的系統時鐘,其可以設置為10 ms以下,其提供日歷時間,負責與時間相關的任務管理工作。其與中斷管理息息相關,特別是在中斷發生和退出時,為提高實時性,須提供快速的時間管理機制。此外,嵌入式操作系統還提供一定數量的時間管理服務例程供用戶使用,例如任務自己等待一段時間以讓出CPU、獲取系統時間等。
用戶接口
操作系統一般為用戶提供兩類接口,一是人機交互,包括視窗形式和命令行形式;二是操作系統提供給用戶開發應用程序的接口,即系統調用。在嵌入式操作系統中,由于應用領域非常廣泛,因此在不同的應用中,其提供的系統調用數量和功能也是不同的,其會根據實際被嵌入系統的具體需求來確定系統調用,以便達到在提供最有效的系統調用的同時具有最小的代碼量。
網絡系統
在嵌入式計算機系統中廣泛使用了TCP/IP協議,嵌入式TCP/IP網絡系統可以提供符合TCP/IP協議標準的協議棧,提供Socket編程接口。其主要特點為:
文件系統
嵌入式文件系統主要具有文件的存儲、檢索、更新等功能,一般不提供保護和加密等安全機制。它以系統調用和命令方式提供對文件的各種操作,其中包括設置和修改對文件和目錄的存取權限;提供建立、修改、改變、刪除目錄等服務;提供創建、打開、讀、寫、關閉、撤銷文件等服務。
體系結構
根據內核的設計(在內核包含哪些功能組件)以及系統中集成了哪些其他系統軟件(如設備驅動程序和中間件),嵌入式操作系統可分為三類:宏內核結構、分層結構、微內核結構。
宏內核結構
宏內核結構又稱整體結構、單體結構,適用于低端嵌入式應用開發,也是早期嵌入式軟件開發的唯一體系結構。其特點是系統中每個函數有唯一定義好的接口參數和返回值,函數間調用不受限制;軟件開發是設計、函數編碼/調試、鏈接成系統的反復過程,所有函數相互可見,不存在任何的信息隱藏;函數調用可以有簡單的分類,如核心調用、系統調用、用戶調用等,用以簡化編程;系統有唯一的主程序入口(如C程序的main函數)。
在宏內核內部,可以劃分為不同個模塊(或是層次或其他),但在其運行時,其模塊間的通信并非消息傳遞,而是通過直接調用其他模塊中的函數實現的,這也大大提高了代碼的執行效率,降低了額外開銷。但由于系統內眾多的函數,相互之間復雜的調用關系使得操作系統維護困難,可移植性和擴展性非常差。
分層結構
分層結構是最常用的嵌入式軟件體系之一,許多嵌入式操作系統、嵌入式數據庫均為層次結構。其特點是每一層對其上層而言好像是一個虛擬的計算機(virtualmachine);下層為上層提供服務,上層利用下層提供的服務;層與層之間定義良好的接口,上下層之間通過接口進行交互與通信;每層劃分為一個或多個模塊(又稱組件),在實際應用中可根據需要配置個性化的RTOS。
分層結構的優缺點也十分明顯,它有利于將復雜的功能簡化,便于設計實現;每層的接口都是抽象的,支持標準化,因此很容易支持軟件的重用;可移植性、可替換性好;開發和維護簡單,當要替換系統中的某一層時,只要接口不變,不會影響到其他層。其缺點是:系統效率低,由于每個層次都要提供一組API接口函數,從而影響系統的性能;底層修改時會產生連鎖反應。
微內核結構
微內核結構又稱客戶機/服務器結構,為現代軟件常用結構之一。其特點是僅保留操作系統中最核心的功能單元,將其他大部分功能剝離出去,在微內核中,只提供例如任務調度、任務間通信、底層的網絡通信、實時時鐘等基本服務,其他服務則以內核上的協作任務形式出現(功能服務器),需要時向服務器任務發出申請。
基于微內核的操作系統一般包含基本內核、擴展內核、設備驅動接口、應用編程接口。其優點為內核小,擴展性好;客戶單元和服務單元的內存地址空間是相互獨立的,因此系統的安全更高;各個服務器模塊具有相對獨立性,便于移植和維護。其缺點為內核與各個服務器之間通過通信機制進行交互,使微內核結構的效率降低;由于它們的內存地址空間是相互獨立的,所以切換時,會增加額外的開銷。
應用
領域
嵌入式操作系統的應用遍及人們的日常生活,例如無線通信和網絡設備、智能家電、航空航天和軍事裝備、汽車電子以及物聯網設備領域等。
工業控制領域
在工業控制領域,工業自動化設備發展的基礎便是嵌入式芯片,特別是8位、16位、32位嵌入式微控制器的使用,使得網絡化在工業過程控制、數字機床、電力系統、電網安全等方面得到普及,這一方面提高了生產效率和產品質量,另一方面也減少了人力成本。
同時在大量醫療儀器,如嵌入式心臟起搏器、嵌入式放射設備、分析監護設備,各種化驗設備等采用嵌入式操作系統進行控制,其功能與性能都將得到大幅度的提高。
消費電子領域
3C產品、智能家居、機頂盒、掌上計算機、游戲機等設備都可以采用嵌入式操作系統。它可以通過電話線以及網絡進行遠程控制,此外還可以實現水、電、煤氣的遠程自動抄表,安全防火、防盜系統的使用使得智能生活更為安全便捷。
通信監測領域
在各種網絡設備、手機、尋呼機、各類控制設備等領域,這些無線通信設備都會大量使用到嵌入式操作系統,不僅是通信,在水文監測、防洪、堤壩安全以及地震監測中均可實現智能化監管,特別是在一些環境惡劣的地區,嵌入式系統還可以實現無人監測。
智能汽車及交通領域
隨著無線通信與全球定位技術的日益成熟和廣泛應用,智能化車機系統將會集通信、信息、導航、娛樂和各類汽車安全電子系統于一體。智能交通系統(ITS)、車流量控制也會獲得相應的發展。特定應用的嵌入式操作系統將是發展智能綜合路口控制機、路車交互系統、新型停車系統、高速公路的信息監控與收費綜合管理系統的關鍵技術,其應用將確保智能交通系統的低成本與高性能,大大提高系統的可靠性和智能化程度。
典型代表
不同操作系統可應用于不同領域,其典型應用有:
參考資料:
發展趨勢
隨著技術的發展,嵌入式操作系統逐漸向著定制化、網絡化、節能化、人性化的方向發展。
參考資料 >