潘志安
摘要:該文介紹了目前主流的幾種嵌入式操作系統(tǒng)WinCE、VxWorks、μC/OS-Ⅲ、嵌入式Linux,闡述了其特點,并從系統(tǒng)內(nèi)核、技術(shù)支持、開發(fā)難度等方面進(jìn)行了分析與比較,并為高職院校嵌入式實驗室中操作系統(tǒng)的選擇提出了建議。
關(guān)鍵詞:嵌入式操作系統(tǒng);WinCE;VxWorks;μC/OS-Ⅲ;嵌入式Linux
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)05-0144-02
Choosing Embedded Operating System in the Embedded Lab
PAN Zhi-an
(Information Technology Department, Hubei Polytechnic Institute, Xiaogan 432000, China)
Abstract: In this paper, several mainstream embedded operating systems, i.e., WinCE, VxWorks, μC/OS-Ⅲ and embedded Linux are introduced. Moreover, by making comparison of the 4 operating systems from many aspects including system core, technical support, development difficulty etc., this paper provides advice for embedded laboratory to choose the appropriate embedded systems.
Key words: Embedded Operating System; WinCE; VxWorks; μC/OS-Ⅲ; Embedded Linux
1 引言
隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,嵌入式設(shè)備已經(jīng)滲透到人們工作、生活、娛樂的各個方面。嵌入式設(shè)備的核心——嵌入式操作系統(tǒng)EOS(Embedded Operating System)負(fù)責(zé)嵌入式設(shè)備的全部軟、硬件資源的分配、調(diào)度工作,控制、協(xié)調(diào)并發(fā)活動;它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能[1]。目前,市場上較流行的EOS產(chǎn)品有Microsoft公司的WinCE,Wind River System公司的VxWorks,Micrium公司的μC/OS-Ⅲ,以及開源的嵌入式Linux。
2 常見操作系統(tǒng)介紹
2.1 WinCE
WinCE是微軟公司開發(fā)的一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上電腦類的電子設(shè)備操作系統(tǒng)。它擁有多線程、多任務(wù)、確定性的實時、完全搶先式優(yōu)先級的操作系統(tǒng)環(huán)境,專門面向只有有限資源的硬件環(huán)境。WinCE除了具有Windows系統(tǒng)的許多共性外,又具有嵌入式系統(tǒng)所要求的實時性、內(nèi)存小、模塊化、結(jié)構(gòu)化以及與處理器無關(guān)等特點。WinCE的圖形用戶界面相當(dāng)出色,同時Embedded Visual C++給嵌入式系統(tǒng)應(yīng)用程序的開發(fā)提供了極大的方便。因此, 利用WinCE開發(fā)嵌入式系統(tǒng)或裝置不僅可以獲得最好的性能,而且能縮短開發(fā)周期和降低技術(shù)風(fēng)險[2]。WinCE的特點有:
1)具有靈活的電源管理功能,包括睡眠/喚醒模式;
2)使用了對象存儲(object store)技術(shù),包括文件系統(tǒng)、注冊表及數(shù)據(jù)庫。它還具有很多高性能。高效率的操作系統(tǒng)特性,包括按需換頁、共享存儲、交叉處理同步、支持大容量堆(heap)等;
3)擁有良好的通信能力。廣泛支持各種通信硬件,亦支持直接的局域網(wǎng)連接以及撥號連接,并提供與PC、內(nèi)部網(wǎng)以及Internet的連接,還提供與計算機(jī)上Windows系統(tǒng)的最佳集成和通信;
4)支持嵌套中斷。允許更高優(yōu)先級別的中斷首先得到響應(yīng),而不是等待低級別的ISR完成,以達(dá)到實時性的目的;
5)更好的線程響應(yīng)能力。對高級別IST(中斷服務(wù)線程)的響應(yīng)時間上限的要求更加嚴(yán)格,在線程響應(yīng)能力方面有所改進(jìn)。
6)實時性支持。WinCE擁有256個優(yōu)先級別,可使開發(fā)人員在控制嵌入式系統(tǒng)的時序安排方面有更大的靈活性;
7)WinCE的API是Win32 API的一個子集,支持近1500個Win32 API。
8)內(nèi)核精簡。WinCE的內(nèi)核可以很小,最小內(nèi)核可以不足350kB。
9)模塊化設(shè)計方法。WinCE的模塊化設(shè)計使得它能夠在大量的平臺上定制使用,開發(fā)者可以使用滿足平臺系統(tǒng)需求的最小軟件模塊和組件集合來設(shè)計嵌入式系統(tǒng)平臺,從而使內(nèi)存用量最小并最大可能地提供操作系統(tǒng)的性能[2]。
2.2 VxWorks
VxWorks是美國WindRiver公司于1983年開發(fā)的一種嵌入式實時操作系統(tǒng),由于其良好的持續(xù)發(fā)展能力、高性能的內(nèi)核、友好的用戶開發(fā)環(huán)境、良好的可靠性、卓越的實時性,在嵌入式實時操作系統(tǒng)領(lǐng)域占據(jù)一席之地,被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實時性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等[3]。VxWorks的特點有:
1)高實時性。VxWorks的實時性非常好,其系統(tǒng)本身的開銷很小,進(jìn)程調(diào)度、進(jìn)程間通信、中斷處理等系統(tǒng)公用程序精練而有效,它們造成的延遲很短[4]。
2)可裁剪性。VxWorks由一個體積很小的內(nèi)核及一些可以根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成,能使開發(fā)者根據(jù)自己應(yīng)用程序的需要來選擇操作系統(tǒng)中的部件。
3)內(nèi)核精簡。VxWorks內(nèi)核最小為8kB,即便加上其他必要模塊,所占用的空間也很小,且不失其實時、多任務(wù)的系統(tǒng)特征。
4)友好的開發(fā)調(diào)試環(huán)境。VxWorks的開發(fā)環(huán)境Tornado是一個友好的開發(fā)環(huán)境,它可以運(yùn)行在多種主機(jī)上。擁有可視化圖形界面和調(diào)試工具,支持應(yīng)用程序的動態(tài)鏈接和動態(tài)下載。
2.3 μC/OS-Ⅲ
μC/OS-Ⅲ是可升級、具有基于優(yōu)先級的實時內(nèi)核的嵌入式操作系統(tǒng)。它對任務(wù)的個數(shù)無限制,支持現(xiàn)代實時內(nèi)核的大部分功能,如資源管理、同步、任務(wù)間的通信等。μC/OS-Ⅲ 的特點如下:
1)實時性。μC/OS-Ⅲ是基于靜態(tài)優(yōu)先級的搶占式的多任務(wù)處理內(nèi)核,它正在運(yùn)行的經(jīng)常是最緊急的就緒任務(wù)。μC/OS-III采用時間片輪轉(zhuǎn)調(diào)度機(jī)制,即允許多個任務(wù)擁有相同的優(yōu)先級,當(dāng)多個相同優(yōu)先級的任務(wù)就緒且該優(yōu)先級是當(dāng)前最高時,μC/OS-Ⅲ會分配用戶定義的時間片給每個任務(wù)去運(yùn)行。
2)可移植性。μC/OS-Ⅲ的源代碼絕大部分是根據(jù)ANSI-C標(biāo)準(zhǔn)寫的,便于移植到其他微處理器上。
3)可裁剪。有選擇地使用所需的系統(tǒng)服務(wù),以減少內(nèi)核存儲空間。
4)可確定性。μC/OS-Ⅲ的中斷響應(yīng)時間是可以確定的,提供的大部分服務(wù)的執(zhí)行時間也是可以確定的,不依賴于任務(wù)的多少[5]。
2.4 嵌入式Linux
Linux從1991年問世到現(xiàn)在,已發(fā)展成為一個功能強(qiáng)大、設(shè)計完善的操作系統(tǒng),不僅能運(yùn)行于 PC平臺,還在嵌入式系統(tǒng)方面大放光芒,這與Linux的良好特性是分不開的[6]。簡單地說,嵌入式Linux操作系統(tǒng)具有以下主要特性:
1)內(nèi)核精簡、性能高、運(yùn)行穩(wěn)定,支持多任務(wù)。
2)適用于不同CPU,支持多種體系結(jié)構(gòu),如X86、ARM、MIPS、ALPHA,SPARC等。
3)能夠提供完善的嵌入式GUI以及嵌入式X.Wifld.WS。
4)提供嵌入式瀏覽器、郵件程序、MP3 M放器、MPEG播放器、記事本等應(yīng)用程序。
5)提供完整的開發(fā)工具和SDK,同時提供PC上的開發(fā)版本。
6)用戶可定制,可提供圖形化的定制和配置工具。
7)常用嵌入式芯片的驅(qū)動集,支持大量的周邊硬件設(shè)備,驅(qū)動豐富。
8)針對嵌入式的存儲方案,提供實時版本和完善的嵌入式解決方案。
9)完善的中文支持,強(qiáng)大的技術(shù)支持,完整的文檔。
10)開放源碼,豐富的軟件資源,廣泛的軟件開發(fā)者的支持,價格低廉,結(jié)構(gòu)靈活,適用面廣[7]。
3 嵌入式實驗室中操作系統(tǒng)的選擇
3.1 幾種嵌入式系統(tǒng)的比較
根據(jù)上述特點,對這幾種嵌入式操作系統(tǒng)的特性進(jìn)行對比,能更清晰直觀地看出其異同點,對選型使用有更好的參考作用。表1從一系列方面對四種嵌入式操作系統(tǒng)進(jìn)行了比較。
3.2 嵌入式教學(xué)實驗室操作系統(tǒng)的選擇
通過以上比較可以看出,總體來說VxWorks、μC/OS-Ⅲ以及嵌入式Linux性能優(yōu)于WinCE。考慮到VxWorks需要支付昂貴的版權(quán)費,嵌入式教學(xué)實驗室使用開源的操作系統(tǒng)(如Linux與μC/OS-Ⅲ)更為合適,考慮到嵌入式Linux在全世界擁有許多愛好者與社區(qū)論壇,對于學(xué)生的學(xué)習(xí)非常有幫助,因此建議實驗室采用嵌入式Linux操作系統(tǒng)。
參考文獻(xiàn):
[1] 郭峰. 計算機(jī)嵌入式操作系統(tǒng)研究[J]. 卷宗, 2011(8):79-79.
[2] 陳立定, 楊俊輝, 肖力揚(yáng). 三種通用嵌入式操作系統(tǒng)的分析與比較[J]. 微計算機(jī)信息, 2009 (11): 89-91.
[3] 楊衛(wèi)軍, 胡寶成, 孟巧鳳. 嵌入式實時操作系統(tǒng)多任務(wù)管理研究[C].全國計算機(jī)新科技與計算機(jī)繼續(xù)教育學(xué)術(shù)會議, 2003.
[4] 李艷軍, 高華, 顧欣莉. 實時嵌入式操作系統(tǒng)VxWorks設(shè)備驅(qū)動程序的設(shè)計[J]. 電子設(shè)計工程, 2011, 19(5):130-133. DOI:10.3969/j.issn.1674-6236.2011.05.039.
[5] 李慧. 三種嵌入式操作系統(tǒng)綜述[J]. 電腦知識與技術(shù), 2014(20).
[6] 張文. 基于嵌入式Linux操作系統(tǒng)的LXI多功能儀器系統(tǒng)軟件的研究與實現(xiàn)[D]. 西安電子科技大學(xué), 2008. DOI:10.7666/d.y1245786.
[7] 王海濱. 基于ARM9和linux移動通訊信息平臺軟硬件設(shè)計[D]. 長春工業(yè)大學(xué), 2007. DOI:10.7666/d.y1204401.