2.4 主要的嵌入式操作系統
迄今為止,世界上到底有多少種嵌入式操作系統呢?有人統計是200多種,有人統計是400多種,還有人統計是500多種。實際上這個問題已經不重要了。這幾個數字共同說明了一個問題,那就是嵌入式操作系統的數目很多,已經多到了不太好統計的地步。但是在眾多的嵌入式操作系統中,有一些經常使用,而另一些卻很少用到。所以如果有人問常用的嵌入式操作系統有多少種,可以粗略地回答,最常用的嵌入式操作系統不過10余種,比較常用的也不超過100種。當然這個數字也遠比通用操作系統的種類多很多。本節中將介紹一些主要的嵌入式操作系統。
2.4.1 一些有典型特色的嵌入式操作系統
不同的嵌入式操作系統在功能和應用領域等方面有比較大的差異,每種系統都有自己的特點。下面從幾個不同的角度出發,介紹一些比較有代表性的嵌入式操作系統。
1. 最早的嵌入式操作系統
VRTX和pSOS是早期嵌入式操作系統的典型代表。VRTX的研發者是Microtec Research公司,一般認為它是世界上第一個商用嵌入式操作系統。pSOS的開發者是Integrated Systems公司。它也是最早問世的嵌入式操作系統之一,同時也是最早進入中國市場的嵌入式操作系統。Integrated Systems公司在2000年2月被WindRiver Systems公司兼并,所以pSOS的所有權現在屬于WindRiver公司。
2. 最小的嵌入式操作系統
就代碼的精簡程度而言OSE是一個典型的代表。該操作系統的開發者是美國ENEA公司。OSE的代碼大約只有5KB,被認為是最小的嵌入式操作系統之一。除此之外,一些專門為無線傳感網開發的嵌入式操作系統也非常小。
3. 典型微內核結構的嵌入式操作系統
QNX是微內核結構嵌入式操作系統的一個典型代表。該操作系統的開發者是加拿大的QNX Software Systems公司。QNX的內核非常小巧。例如,QNX4.x的內核大約只有1.2KB。
4. 開源的嵌入式操作系統
有相當多的嵌入式操作系統都對外開放源代碼。嵌入式Linux、μC/OS、eCOS、Nucleus、RTEMS是其中的典型代表。
嵌入式Linux是經裁減后,可執行代碼只有幾十千字節或幾百千字節的Linux系統。嵌入式Linux的應用日益廣泛,是一種很有前途的嵌入式操作系統。
μC/OS是一個結構精煉、應用范圍很廣的嵌入式操作系統。它可以在從8位到64位的40多種不同架構上的微處理器上運行。
eCOS(embedded Configuration Operating System)的最初開發者是美國的Cygnus Solutions公司。它的特點是代碼精煉(內核可精簡至約10KB)、結構模塊化、內核可配置性強。
Nucleus的開發者是Accelerated Technology公司。它雖然可以向用戶提供源代碼,但要收取一定的費用。
RTEMS(Real Time Executive for Multiprocessor Systems)是美國軍方開發的一個實時嵌入式操作系統。該操作系統在航空、航天和軍工領域使用較多。
開源嵌入式操作系統多數使用GPL許可證對外發布,但也有使用其他開源軟件許可證的情況。開源軟件的許可證主要有GPL許可證、MPL許可證、Apache許可證和BSD許可證等幾種。這些許可證向開源軟件的使用者賦予了不同的權利。下面簡要介紹。
GPL(General Public License)的意思是GNU通用公共許可證。GNU通用公共許可證與GNU計劃有密切的歷史淵源。GNU計劃又稱革奴計劃,是一項在1983年9月27日開始實施的計劃。該計劃的目標是開發一個完全自由的操作系統,包括可以自由使用、復制和修改。為此,GNU計劃規定,在計劃范圍內開發的所有軟件都要遵守一項授予所有權利給其他任何人的協議。由此就產生了GNU通用公共許可證。按照GPL許可證的要求,許可證的被授權者如果如對軟件進行了修訂和擴充,那么修訂和擴充部分也必須同樣以GPL許可證進行發布,以便其他人自由使用、復制和修改這些內容。可以看出,GPL許可證有著強烈的反版權性質。1991年,Linux操作系統問世并采用GPL許可證發布后取得了巨大的成功,因此以后有很多的開源軟件都采用了GPL許可證進行發布。
MPL(Mozilla Public License)最初是1998年Netscape公司的Mozilla項目組用于發布其開源軟件的許可證。同樣作為開源軟件的許可證,GPL和MPL的條款雖然在許多地方很相似,但也有顯著的區別。最主要的區別是:如果許可證的被授權者對源代碼進行了修改,MPL雖然也要求對修改部分必須同樣以MPL進行發布,以保證其他人可以在MPL條款下共享這些修改的內容,但MPL允許許可證的被授權者可以把自己開發的源代碼包裝在源代碼庫之中,并給源代碼庫加一個接口,除了接口程序的源代碼以MPL許可證對外發布外,源代碼庫中的源代碼就可以不再用MPL許可證對外發布了。這樣,就為利用開源軟件開發商用軟件留下了一條途徑。
Apache許可證是Apache軟件基金會發布自由軟件時使用的一種許可證。此外,許多非Apache基金會發布的軟件也在使用這種許可證。Apache許可證不是一個完全反版權的許可證。按照它的規定,許可證的被授權者如果如對軟件進行了修改和擴充,可以對修改和擴充部分做出保留版權的聲明。
BSD(Berkly Software Distribution)許可證最初是美國加州大學伯克利分校在發布其開源軟件時使用的許可證。BSD許可證的條款很寬松,許可證的被授權者享有很大的自由。
5. 國內自主開發的嵌入式操作系統
國內自主開發的嵌入式操作系統指包括操作系統內核在內的整個系統都是重新設計和開發的嵌入式操作系統。不包括在開源軟件基礎上進行定制、修改和擴充而形成的嵌入式操作系統。Hopen、DeltaOS、和欣是這一類嵌入式操作系統的典型代表。
Hopen的開發者是凱思昊鵬公司。它是一個嵌入式操作系統的大家族,Hopen雙內核操作系統、Hopen-RT實時操作系統都是其中的成員。目前Hopen操作系統已經在智能手機、數字電視、網絡計算機等產品上得到了很好的應用。截至2006年,僅在智能手機上就已安裝100余萬套。
DeltaOS的開發者是科銀京城公司。該嵌入式操作系統已經在航空、航天等領域得到了成功應用。
和欣的英文名稱為Zyco。它是科泰世紀公司研發的一個采用組件技術的32位嵌入式操作系統。它的最大特點是采用了組件化編程模型,包括它本身在內的模塊都為組件形態。
6. 用于智能手機的嵌入式操作系統
Symbian、Windows Mobile、Android、iPhoneOS、PalmOS是在智能手機領域中使用最廣泛的幾個嵌入式操作系統。它們共同占據了這一領域的大部分市場份額。
Symbian的前身是EPOC,其開發者是Psion公司。EPOC(Electronic Piece of Cheese)意為“使用電子產品時可以像吃乳酪一樣簡單”,這是該嵌入式操作系統在設計時所堅持的理念。1998年諾基亞、愛立信、摩托羅拉、三菱、Psion等公司聯手成立了專門研發智能手機的Symbi-an公司。該公司選用了EPOC作為操作系統平臺,并將其更名為Symbian。
Windows Mobile是微軟公司專門為移動終端設備開發的一個嵌入式操作系統。除Win-dows Mobile之外,微軟公司還有Windows CE、Windows NT Embedded、Windows XP Embedded等一些嵌入式操作系統產品。
Android是以做搜索引擎著名的Google公司開發的一個嵌入式操作系統。它的基礎是Linux內核,屬于嵌入式Linux中的一種。
iPhoneOS是蘋果公司開發的一個嵌入式操作系統。它主要使用在蘋果公司的iTouch和iPhone產品上。iTouch是一款集媒體播放器和上網裝置為一體的電子產品。iPhone則在iTouch的基礎上進一步集成了移動電話功能。
PalmOS的開發者是Palm Computing公司。它主要用在PDA上,并曾經在PDA上占有主導地位。
7. 用于汽車電子的嵌入式操作系統
在汽車電子領域,嵌入式系統經常用于控制汽車發動機、ABS和安全氣囊。因此用于這一領域的嵌入式操作系統有很強的實時性,可靠性要求也相對很高。
OSEK/VDX是汽車電子領域的一個重要技術標準(OSEK是德語“用于汽車電子的、帶有接口的開放式系統”的縮寫,VDX是Vehicle Distributed eXecutive的縮寫)。其制定者是歐洲的一些汽車制造商。目前國際標準化組織已經將其接納為國際標準(ISO 17356)。OSEK/VDX不僅與操作系統有關,它還涉及通信(COM)、網絡管理(NM)和實現語言(OIL)等方面的內容。
在具體產品方面,已經出現了一些遵循OSEK/VDX標準的嵌入式操作系統。例如,Metrowerks公司的OSEKturbo、WindRiver公司的OSEKworks、3SOFT公司的proOSEK、西曼自動化技術公司的PowerOSEK等。
8. 用于無線傳感網的嵌入式操作系統
無線傳感網中的網絡結點硬件資源極其有限,相對于其他的嵌入式系統,它的存儲器更小,處理器的處理能力更弱。專門用于無線傳感網的嵌入式操作系統必須適應這一特點。如果把一般的嵌入式操作系統用在無線傳感網中是不可行的。
目前已經出現了一些適用于微傳感器上的嵌入式操作系統。如TinyOS、Coniki、MANTIS、SOS、SenSpire等。它們的一個共同特點是,可以在資源極其受限的條件下運行。但這些操作系統的功能都比較有限,如多數都不能支持多線程(除MANTIS之外)。
2.4.2 VxWorks
VxWorks是WindRiver公司開發的一個實時嵌入式操作系統。它可以在ARM、PowerPC、SPARC、x86、MIPS等多種處理器上運行,是目前控制領域中應用最廣泛的嵌入式操作系統之一。VxWorks的一個顯著特點是它有很好的集成軟件開發環境,開發者可以使用界面友好、功能豐富的開發工具進行應用軟件的開發。
如圖2.44所示,VxWorks主要由與硬件無關的實時操作系統內核(Wind)、輸入/輸出系統、文件系統、網絡系統、實用庫和與硬件相關的板級支持包等部分組成。
1. 實時操作系統內核
VxWorks的內核稱為Wind。Wind里面包含任務管理與調度(采用搶占式最高優先級優先調度算法)、任務通信、中斷管理、看門狗和內存管理等功能。它提供了一個多任務環境,任何程序都可以作為單獨的任務運行,擁有自己的上下文和堆棧。任務之間通過任務通信功能進行同步,協調相互的行為。通過Wind任務管理功能可以建立任務、刪除任務、阻塞任務、喚醒任務、使任務睡眠或改變任務的優先級。
Wind主要通過信號量進行任務間的同步和互斥。在Wind中有互斥信號量、二進制信號量、計數信號量和POSIX信號量等幾種類型的信號量。這些信號量既可以被應用在操作系統內部,也可以被應用在VxWorks的應用程序中。除信號量之外,Wind還支持隊列、管道、事件和條件變量等任務通信功能。

圖2.44 VxWorks實時嵌入式操作系統的結構
2. 輸入/輸出系統
輸入/輸出系統的作用是實現對輸入/輸出設備的管理。VxWorks將所有的輸入/輸出設備都看成是文件,采用與文件操作一致的方法對輸入/輸出設備進行操作。管理輸入/輸出設備離不開設備驅動程序,設備驅動程序雖然是硬件相關軟件,但它們與輸入/輸出系統有很密切的關系,甚至可以認為是輸入/輸出系統的一部分。VxWorks提供的設備驅動程序包括:網絡驅動、RAMDISK驅動、SCSI驅動、鍵盤驅動、顯示驅動、磁盤驅動、串/并口驅動等。
3. 文件系統
VxWorks對磁盤、磁帶、閃存、CD-ROM等各種常用的存儲設備都支持一種適用的文件系統。它能夠支持的文件系統包括以下6種。
① DOSFS:一種與MS-DOS操作系統兼容的文件系統。
② RT11FS:一種與RT11操作系統兼容的文件系統。
③ RawFS:一種適用于磁盤設備的文件系統。
④ TapeFS:一種適用于磁帶設備的文件系統。
⑤ TrueFFS:一種適用于閃存的文件系統。
⑥ CDROMFS:一種適用于CD-ROM的文件系統。
4. 網絡系統
VxWorks的網絡系統實現完整的TCP/IP協議族,支持與BSD Socket兼容的網絡編程接口。除此之外,VxWorks還支持許多其他的網絡協議和功能。
5. 實用庫
實用庫擴展了VxWorks的系統調用,它向應用程序開發者提供中斷處理、看門狗、內存分配、緩沖區管理、鏈表管理等方面的功能。
6. 板級支持包
板級支持包屏蔽了不同硬件的特征,向VxWorks硬件無關軟件提供一個統一的接口。它所包含的功能有硬件初始化、中斷的產生和處理、實時時鐘和定時器/計數器管理、內存地址映射、內存分配等。
2.4.3 嵌入式Linux
嵌入式Linux是經過裁減后,可以被裝入到幾十千字節或幾百千字節的存儲器中的Linux系統。它的特點是不需要硬盤,也不需要鍵盤和鼠標等外部設備,并且可以適應于某種特定的硬件環境。
1. Linux的嵌入式化
將普通的Linux操作系統改造為嵌入式操作系統的時候需要遵循一個原則,同時有兩個重點工作。一個原則是在建立嵌入式Linux操作系統時,不應刻意去增強Linux操作系統的功能。恰恰相反,考慮到實際應用的單一性,往往要刪繁就簡。兩個重點工作是:一要設法提高Linux的實時處理能力;二要想辦法降低Linux的文件系統所占的存儲空間。
(1)提高實時處理能力的措施
影響Linux的實時處理能力的因素很多,最主要的是任務調度算法和內存管理機制。因此,在采取提高實時處理能力的措施時應把重點放在這兩個方面。
Linux內核一般采用“先來先服務”和“輪轉”兩種調度算法。這兩種算法對實時任務的實時性都沒有給予足夠的考慮。為提高嵌入式Linux的實時處理能力必須采用“先來先服務”和“輪轉”之外的調度算法,如采取搶占式最高優先級優先調度算法,保證總是選取優先級最高的任務來運行。
采用虛擬存儲技術之外的內存管理技術是提高Linux實時性能的另一個方法。Linux操作系統使用虛擬存儲技術的目的是為了增加可供任務使用的內存,使得系統中可以同時運行更多的任務。但是,同時運行的任務越多,每個任務所能分配到的CPU時間片就越短。操作系統的理論證明:CPU控制權的切換越快,資源的使用效率就越低,而且存儲頁面的換入與換出也會使任務的執行時間變得難以確定,所以去掉虛擬內存管理機制最能改善Linux的實時性能。
(2)降低文件系統所占存儲空間的措施
Linux上的標準文件系統是EXT2。這個文件系統有功能強、性能優、易擴充的特點,但結構比較繁瑣,文件系統本身所占用的空間過大。如果去掉EXT2文件系統,采用專門為嵌入式系統設計的文件系統,如CRAMFS、ROMFS、JFFS,會節省一定的存儲空間。

圖2.45 嵌入式Linux的結構
2. 嵌入式Linux的結構
嵌入式Linux沒有采用微內核結構,它是一個單塊結構的嵌入式操作系統。如圖2.45所示,嵌入式Linux的內核中一般有以下幾個部分:任務管理(包括任務通信)、內存管理、中斷管理、文件管理。在最簡單的系統中,還可將文件管理部分去掉。
從圖2.45中可以看出,應用程序通過系統調用或者庫函數來訪問Linux內核資源。內核又可通過設備驅動程序來完成必要的工作。
3. 典型的嵌入式Linux
目前可供用戶選擇的嵌入式Linux操作系統已經很多。這些系統分為收費型和免費型兩類。雖然嵌入式Linux系統是一種開源的自由軟件,不收取版權費,但用戶在使用某些嵌入式Linux時需要向提供商支付一定的服務費。
收費型的嵌入式Linux系統一般都針對某些嵌入式處理器做了專門的優化設計,能支持多種半導體廠家的開發評估板和豐富的設備驅動程序,并提供技術支持和培訓服務。除了國內的一些產品外,收費型嵌入式Linux系統的價格目前還很昂貴。根據配置和服務的不同,在幾千到幾萬美元之間。但收費型嵌入式Linux的開發工具相對于Windows CE和VxWork來說,在易用性和豐富性方面還有待提高和改進。
此外,還有一部分嵌入式Linux系統可以免費獲得。使用免費型嵌入式Linux,無法得到服務商的技術支持,所以對用戶有比較高的要求。
BlueCat Linux、Embedix、MontaVista Linux、μClinux、RT-Linux、XLinux、紅旗嵌入式Linux等一些系統是嵌入式Linux操作系統的典型代表。它們有收費型的也有免費型的。
BlueCat Linux的開發者是LynuxWorks公司。它是一個收費型系統。它的實時性雖然不很強,但它與LynuxWorks公司的實時嵌入式操作系統LynxOS有很好的兼容性,基于BlueCat Linux開發的應用軟件只需略加修改就可以在LynxOS上運行。
Embedix的開發者是Lineo公司。它像Lineo公司的其他Linux版本一樣,可以免費獲得。Embedix是根據嵌入式系統的特點重新設計的一個操作系統,有比較強的功能,但整個系統所占的存儲空間較大,最小需要8MB RAM,3MB ROM。
MontaVista Linux開發者是MontaVista公司。它是一個收費型系統,能支持較多種的開發評估板和設備驅動程序。
μClinux是在GNU計劃的推動下,專門為微型系統(μ表示Micro)開發的一個Linux操作系統。它可以在沒有內存管理單元(MMU)的微控制器上運行。目前μClinux是應用最廣泛的免費型嵌入式操作系統之一。
RT-Linux的開發者是美國新墨西哥理工學院。它有很強的實時性,可以滿足硬實時要求。它可以免費獲得,并將其用于科研目的。
XLinux的開發者是美國的網虎公司。它的內核只有143KB,是存儲空間最小的嵌入式Linux系統之一。
紅旗嵌入式Linux的開發者是中科紅旗公司。它是一個收費型嵌入式操作系統,是該公司Linux系列產品中的一員。
- 導游實務案例與分析
- 證券投資學實驗教程
- 鄒為誠《綜合英語教程(3)》(第3版)學習指南【詞匯短語+課文精解+全文翻譯+練習答案】
- 2020年翻譯碩士(MTI)357英語翻譯基礎詞語翻譯高分特訓1400題
- 服務營銷(原書第7版)
- 中小學生制服技術標準規范
- 2019年期貨從業資格考試《期貨基礎知識》【教材精講+真題解析】講義與視頻課程【29小時高清視頻】
- 童明《美國文學史》課后習題詳解
- AutoCAD 2009基礎與實例教程
- PLC應用技術
- 農產品電商教程:從入門到精通
- 工程力學
- 電子設備故障診斷與排除(原書第4版)
- 精細化工概論(第三版)
- 2020年浙江公務員錄用考試專項教材:言語理解與表達【考點精講+典型題(含歷年真題)詳解】