分類
一般情況下,嵌入式作業系統可以分為兩類,一類是面向控制、通信等領域的實時作業系統,如windriver公司的vxworks、isi的psos、qnx系統軟體公司的qnx、ati的nucleus等;另一類是面向消費電子產品的非實時作業系統,這類產品包括個人數字助理(pda)、行動電話、機頂盒、電子書、webphone等。a. 非實時作業系統
早期的嵌入式系統中沒有作業系統的概念,程式設計師編寫嵌入式程式通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程式分成兩部分,即前台程式和後台程式。前台程式通過中段來處理事件,其結構一般為無限循環;後台程式則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的調度,是一個系統管理調度程式。這就是通常所說的前後台系統。一般情況下,後台程式也叫任務級程式,前台程式也叫事件處理級程式。在程式運行時,後台程式檢查每個任務是否具備運行條件,通過一定的調度算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程式中標記事件的發生,不再做任何工作就退出中斷,經過後台程式的調度,轉由前台程式完成事件的處理,這樣就不會造成在中斷服務程式中處理費時的事件而影響後續和其他中斷。
實際上,前後台系統的實時性比預計的要差。這是因為前後台系統認為所有的任務具有相同的優先權別,即是平等的,而且任務的執行又是通過fifo佇列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於前台程式是一個無限循環的結構,一旦在這個循環體中正在處理的任務崩潰,使得整個任務佇列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要ram/rom的額外開銷,因而在簡單的嵌入式套用被廣泛使用。
b. 實時作業系統
實時系統是指能在確定的時間內執行其功能並對外部的異步事件做出回響的計算機系統。其操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關。“在確定的時間內”是該定義的核心。也就是說,實時系統是對回響時間有嚴格要求的。
實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序出現偏差將會引起嚴重後果。實時系統有兩種類型:軟實時系統和硬實時系統。軟實時系統僅要求事件回響是實時的,並不要求限定某一任務必須在多長時間內完成;而在硬實時系統中,不僅要求任務回響要實時,而且要求在規定的時間內完成事件的處理。通常,大多數實時系統是兩者的結合。實時套用軟體的設計一般比非實時套用軟體的設計困難。實時系統的技術關鍵是如何保證系統的實時性。
實時多任務作業系統是指具有實時性、能支持實時控制系統工作的作業系統。其首要任務是調度一切可利用的資源完成實時控制任務,其次才著眼於提高計算機系統的使用效率,重要特點是要滿足對時間的限制和要求。實時作業系統具有如下功能:任務管理(多任務和基於優先權的任務調度)、任務間同步和通信(信號量和信箱等)、存儲器最佳化管理(含rom的管理)、實時時鐘服務、中斷管理服務。實時作業系統具有如下特點:規模小,中斷被禁止的時間很短,中斷處理時間短,任務切換很快。
實時作業系統可分為可搶占型和不可搶占型兩類。對於基於優先權的系統而言,可搶占型實時作業系統是指核心可以搶占正在運行任務的cpu使用權並將使用權交給進入就緒態的優先權更高的任務,是核心搶了cpu讓別的任務運行。不可搶占型實時作業系統使用某種算法並決定讓某個任務運行後,就把cpu的控制權完全交給了該任務,直到它主動將cpu控制權還回來。中斷由中斷服務程式來處理,可以激活一個休眠態的任務,使之進入就緒態;而這個進入就緒態的任務還不能運行,一直要等到當前運行的任務主動交出cpu的控制權。使用這種實時作業系統的實時性比不使用實時作業系統的系統性能好,其實時性取決於最長任務的執行時間。不可搶占型實時作業系統的缺點也恰恰是這一點,如果最長任務的執行時間不能確定,系統的實時性就不能確定。
可搶占型實時作業系統的實時性好,優先權高的任務只要具備了運行的條件,或者說進入了就緒態,就可以立即運行。也就是說,除了優先權最高的任務,其他任務在運行過程中都可能隨時被比它優先權高的任務中斷,讓後者運行。通過這種方式的任務調度保證了系統的實時性,但是,如果任務之間搶占cpu控制權處理不好,會產生系統崩潰、當機等嚴重後果。
特點
(1)可裝卸性。開放性、可伸縮性的體系結構。(2)強實時性。EOS實時性一般較強,可用於各種設備控制當中。
(3)統一的接口。提供各種設備驅動接日。
(4)操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學易用。
(5)提供強大的網路功能,支持TCP/IP協定及其它協定,提供TCP/UDP/IP/PPP協定支持及統一的MAC訪問層接口,為各種移動計算設備預留接口。
(6)強穩定性,弱互動性。嵌入式系統一旦開始運行就不需要用戶過多的干預,這就要負責系統管理的EOS臭有較強的穩定性。嵌入式作業系統的用戶接日一般不提供操作命令,它通過系統調用命令向用戶程式提供服務。
(7)固化代碼。在嵌入系統中,嵌入式作業系統和套用軟體被固化在嵌入式系統計算機的ROM中。輔助存儲器在嵌入式系統中很少使用,因此,嵌入式作業系統的檔案管理功能應該能夠很容易地拆卸,而用各種記憶體檔案系統。
(8)更好的硬體適應性,也就是良好的移植性。國際上用於信息電器的嵌入式作業系統有40種左右。現在,市場上非常流行的EOS產品,包括3Corn公司下屬子公司的Palm OS,全球占有份額達50%,MicroS。fi公司的Wind。ws CE不過29%。在美國市場,Palm OS更以80%的占有率遠超Windows CE。開放原始碼的Linux很適於做信息家電的開發。
比如:中科紅旗軟體技術有限公司開發的紅旗嵌入式Linux和美商網虎公司開發的基於Xlinux的嵌人式作業系統“夸克"。“夸克”是目前全世界最小的Linux,它有兩個很突出的特點,就是體積小和使用GCS編碼。
常用系統
其實,嵌入式系統並不是一個新生的事物,從二十世紀八十年代起,國際上就有一些IT組織、公司,開始進行商用嵌入式系統和專用作業系統的研發。這其中湧現了一些著名的嵌入式系統:
WindowsCE
MicrosoftWindowsCE是從整體上為有限資源的平台設計的多執行緒、完整優先權、多任務的作業系統。它的模組化設計允許它對於從掌上電腦到專用的工業控制器的用戶電子設備進行定製。作業系統的基本核心需要至少200K的ROM。
VxWorks
VxWorks是目前嵌入式系統領域中使用最廣泛、市場占有率最高的系統。它支持多種處理器,如x86、i960、SunSparc、MotorolaMC68xxx、MIPSRX000、POWERPC等等。大多數的VxWorksAPI是專有的。採用GNU的編譯和調試器。
pSOS
ISI公司已經被WinRiver公司兼併,現在pSOS屬於WindRiver公司的產品。這個系統是一個模組化、高性能的實時作業系統,專為嵌入式微處理器設計,提供一個完全多任務環境,在定製的或是商業化的硬體上提供高性能和高可靠性。可以讓開發者根據作業系統的功能和記憶體需求定製成每一個套用所需的系統。開發者可以利用它來實現從簡單的單個獨立設備到複雜的、網路化的多處理器系統。
QNX
QNX是一個實時的、可擴充的作業系統,它部分遵循POSIX相關標準,如:POSIX.1b實時擴展。它提供了一個很小的微核心以及一些可選的配合進程。其核心僅提供4種服務:進程調度、進程間通信、底層網路通信和中斷處理,其進程在獨立的地址空間運行。所有其它OS服務,都實現為協作的用戶進程,因此QNX核心非常小巧(QNX4.x大約為12Kb)而且運行速度極快。這個靈活的結構可以使用戶根據實際的需求,將系統配置成微小的嵌入式作業系統或是包括幾百個處理器的超級虛擬機作業系統。
PalmOS
PalmOS是Palm公司開發的專用於PDA上的一種作業系統,這是PDA上的霸主,一度普占據了90%的PDA市場的份額。雖然其並不專門針對於手機設計,但是PalmOS的優秀性和對移動設備的支持同樣使其能夠成為一個優秀的手機作業系統。其最新的版本為PalmOS5.2。目前具有手機功能的PalmPDA如Palm公司的TungstenW。而Handspring公司(目前已被Palm公司收購)的Treo系列則是專門使用PalmOS的手機,如Treo270以及最新的倍受矚目的Treo650。PalmOS是一種32位的嵌入式作業系統,用於掌上電腦。此系統是3Com公司的PalmComputing部開發的。(PalmComputing目前已經獨立成一家公司。)PalmOS與同步軟體HotSync結合可以使掌上電腦與PC機上的信息實現同步,把台式機的功能擴展到了手掌上。目前,基於PalmOS的掌上電腦主要是3Com的系列產品,如PalmIIIx,PalmV,PalmVII,IBMworkpadc3用的也是PalmOS。Sony等公司也獲得了PalmComputing的許可,將開發基於PalmOS的掌上電腦。
Microwave的OS-9是為微處理器的關鍵實時任務而設計的作業系統,廣泛套用於高科技產品中,包括消費電子產品、工業自動化、無線通訊產品、醫療儀器、數位電視/多媒體設備。它提供了很好的安全性和容錯性。與其他的嵌入式系統相比,它的靈活性和可升級性非常突出。
LynxOS
LynxReal-timeSystems的LynxOS是一個分散式、嵌入式、可規模擴展的實時作業系統,它遵循POSIX.1a、POSIX.1b和POSIX.1c標準。LynxOS支持執行緒概念,提供256個全局用戶執行緒優先權;提供一些傳統的、非實時系統的服務特徵;包括基於調用需求的虛擬記憶體,一個基於Motif的用戶圖形界面,與工業標準兼容的網路系統以及套用開發工具。
合璧作業系統(HybridOS)
合璧作業系統(HybridOS)是一整套專為嵌入式設備打造的快速開發平台,包括嵌入式圖形支持系統(MiniGUI)、嵌入式瀏覽器系統(mDolphin)、嵌入式Java系統(mPeer)、所見即所得的可視化集成開發平台(mStudio),使眾多的希望在嵌入式設備上做開發的中小型企業,可以擺脫“不穩定的核心以及驅動程式”、“交叉編譯工具鏈、基礎函式館存在大量缺陷”、”不恰當的開源軟體“、“高水平嵌入式開發工程師缺乏”等這些問題的困擾,從而能夠在一個運行穩定、功能強大的小巧系統核心基礎上,專注開發產品。合璧作業系統(HybridOS)採用新的商業授權模式,性價比頗高。
目前,世面上有很多商業性嵌入式系統都在努力地為自己爭取著嵌入式市場的份額。但是,這些專用作業系統均屬於商業化產品,價格昂貴;而且,由於它們各自的原始碼不公開,使得每個系統上的套用軟體與其它系統都無法兼容。並且,由於這種封閉性還導致了商業嵌入式系統在對各種設備的支持方面存在很大的問題,使得對它們的軟體移植變得很困難。在嵌入式這個IT產業的新的關鍵領域,Linux作業系統適時地出現在了國家和國內各嵌入式廠商面前,由於Linux自身諸多優勢,吸引了許多開發商的目光,成為嵌入式作業系統的新寵。它的出現無疑為國家發展嵌入式作業系統事業提供了一個極有吸引力的機會。
套用示例
嵌入式作業系統是掌上電腦的靈魂,廣泛套用於個人數字助理、攜帶型電話及各種手持設備、公用電話亭、遊戲控制板、數據式製造設備、機頂盒等消費類家電信息產品。1998年,全球智慧型手持設備銷售總量達820萬台,預計2001年,達到2000萬台,而中國的掌上信息產品產量1999年突破350萬台,2000年已接近500萬台,這預示著掌上電腦產業將進入高速發展時期,掌上電腦超過桌上型電腦時代即將來臨。掌上電腦市場的迅猛發展,為嵌入式作業系統帶來了廣闊的市場前景。深圳桑夏高科技股份有限公司是國家863項目研發基地。在國家863計畫的大力支持下,他們經過多年潛心研究,投入了大量人力物力,終於開發出擁有自主智慧財產權的全中文嵌入式作業系統-桑夏2000,目前該系統已成功地集成於各類掌上電腦,打破了微軟的壟斷局面,在嵌入式作業系統市場開拓出自己的一片天地。
隨著網際網路的發展,無線及有線上網成為掌上電腦的發展趨勢,對此桑夏2000設計了豐富的圖形界面工具接口及靈活有效的檔案及數據管理機制,而且可隨意選配有線及無線通訊接口,以適合不同用戶的套用需求。桑夏2000還採用非常精簡的核心設計,極大地節省了記憶體資源,降低了成本。另外桑夏2000還支持硬體的可擴充設計和記憶體配置的自動識別,使用戶有更多的系統配置的空間,對硬體的要求較低。而微軟的windows CE系統過於臃腫,模組化不強,在版本控制上又不能實現量體載衣的設計,對硬體的基本配置要求較高,而且裝有windows CE的掌上電腦成本較高。目前在國內市場上還不能形成很大的優勢。記事是掌上電腦最常用的功能,但欄位的長短很難事先知道。為充分利用每一單位記憶體,桑夏2000設計了一套不定長欄位資料庫管理系統,這給應用程式的資料庫管理帶來了很大的靈活性,同時桑夏2000還提供對標準資料庫管理系統的支持,基本資料庫操作如建立、編輯、查詢、統計等與桌上型電腦完全兼容。
行業套用是掌上電腦的一大市場,作業系統廠商不可能對所有行業的套用軟體-開發。因此,桑夏2000採用全開放的設計方式,研製了一套套用軟體開發調試環境,適應於不同行業的應用程式,具有極強的二次開發的能力,從而為嵌入式作業系統的套用帶來了廣闊的空間。目前,桑夏2000已成功套用於商務、教育、金融、保險、法律、航空、石油、企業管理等領域。