炎黃職業(yè)技術(shù)學(xué)院信息工程系 熊 丹
常見的嵌入式操作系統(tǒng)
炎黃職業(yè)技術(shù)學(xué)院信息工程系 熊 丹
嵌入式系統(tǒng)由嵌入式系統(tǒng)硬件平臺(tái)和嵌入式軟件平臺(tái)組成,而嵌入式軟件平臺(tái)又包括嵌入式操作系統(tǒng)和嵌入式系統(tǒng)應(yīng)用。其中,嵌入式操作系統(tǒng)是指在嵌入式硬件平臺(tái)上運(yùn)行的操作系統(tǒng)。目前主流的嵌入式操作系統(tǒng)有Windows CE、VxWorks、Palm OS、QNX、嵌入式Linux、μC/OS、TinyOS等。
嵌入式系統(tǒng);嵌入式操作系統(tǒng);Windows CE;VxWorks;Palm OS;QNX;嵌入式Linux;μC/OS;TinyOS
根據(jù)電氣和電子工程師協(xié)會(huì)(IEEE)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”(de-vices used to control,monitor,or assist the operation of equipment,machinery or plants)。從中可看出,嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,具有很強(qiáng)的專用性,必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的裁減利用。目前國內(nèi)一個(gè)普遍被認(rèn)同的定義是:嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
嵌入式系統(tǒng)由嵌入式系統(tǒng)硬件平臺(tái)和嵌入式軟件平臺(tái)組成,而嵌入式軟件平臺(tái)又包括嵌入式操作系統(tǒng)和嵌入式系統(tǒng)應(yīng)用。其中,嵌入式操作系統(tǒng)是指在嵌入式硬件平臺(tái)上運(yùn)行的操作系統(tǒng)。目前主流的嵌入式操作系統(tǒng)有Windows CE、VxWorks、Palm OS、QNX、嵌入式Linux、μC/OS、TinyOS等。
Windows CE是微軟公司嵌入式、移動(dòng)計(jì)算平臺(tái)的基礎(chǔ),它是一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡(jiǎn)的Windows 95,Windows CE的圖形用戶界面相當(dāng)出色。
Windows CE作業(yè)系統(tǒng)是Windows家族中最新的成員,專門設(shè)計(jì)給掌上型電腦(HPCs)所使用的電腦環(huán)境。這樣的作業(yè)系統(tǒng)可使完整的可攜式技術(shù)與現(xiàn)有的Windows桌面技術(shù)整合工作。Windows CE被設(shè)計(jì)成針對(duì)小型設(shè)備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng),Windows CE可以通過設(shè)計(jì)一層位于內(nèi)核和硬件之間代碼來用設(shè)定硬件平臺(tái),這即是眾所周知的硬件抽象層(HAL)。
不象其它的微軟Windows操作系統(tǒng),Windows CE并不是代表一個(gè)標(biāo)準(zhǔn)的相同的對(duì)所有平臺(tái)適用的軟件。為了足夠靈活以達(dá)到適應(yīng)廣泛產(chǎn)品需求,Windows CE采用標(biāo)準(zhǔn)模式,這就意味著,它能夠由一系列軟件模式做出選擇,從而使產(chǎn)品定制。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過從一套可利用的組份做出選擇,從而成為標(biāo)準(zhǔn)模式,通過選擇,能夠達(dá)到系統(tǒng)要求的最小模式,OEM能夠減少存儲(chǔ)腳本和操作系統(tǒng)的運(yùn)行。
Windows CE中的C代表袖珍(Compact)、消費(fèi)(Consumer)、通信能力(Connectivity)和伴侶(Companion);E代表電子產(chǎn)品(Electronics)。與Windows 95/98、Windows NT不同的是,Windows CE是所有源代碼全部由微軟自行開發(fā)的嵌入式新型操作系統(tǒng),其操作界面雖來源于Windows 95/98,但Windows CE是基于WIN32 API重新開發(fā)、新型的信息設(shè)備的平臺(tái)。Windows CE具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口和與處理器無關(guān)等特點(diǎn)。Windows CE不僅繼承了傳統(tǒng)的Windows圖形界面,并且在Windows CE平臺(tái)上可以使用Windows 95/98上的編程工具(如Visual Basic、Visual C++等)、使用同樣的函數(shù)、使用同樣的界面風(fēng)格,使絕大多數(shù)的應(yīng)用軟件只需簡(jiǎn)單的修改和移植就可以在Windows CE平臺(tái)上繼續(xù)使用。Windows CE并非是專為單一裝置設(shè)計(jì)的,所以微軟為旗下采用Windows CE作業(yè)系統(tǒng)的產(chǎn)品大致分為三條產(chǎn)品線,Pocket PC(掌上電腦)、Handheld PC(手持設(shè)備)及Auto PC。
VxWorks是美國Wind River System公司(即WRS公司)1983年推出的一個(gè)嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS,Real-time Open System),具有良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域牢牢占據(jù)著一席之地,廣泛應(yīng)用于通信、國防、工業(yè)控制、醫(yī)療設(shè)備等嵌入式實(shí)時(shí)應(yīng)用領(lǐng)域。VxWorks所具有的顯著特點(diǎn)是可靠性、實(shí)時(shí)性和可裁剪性。它支持多種處理器,例如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS和Power PC等。Tornado 是WRS公司推出的一套實(shí)時(shí)操作系統(tǒng)開發(fā)環(huán)境,類似Microsoft Visual C,但是提供了更豐富的調(diào)試、仿真環(huán)境和工具。
Palm OS是Palm公司開發(fā)的專用于PDA上的一種操作系統(tǒng),這是PDA上的霸主,一度普占據(jù)了90%的PDA市場(chǎng)的份額。雖然其并不專門針對(duì)于手機(jī)設(shè)計(jì),但是Palm OS的優(yōu)秀性和對(duì)移動(dòng)設(shè)備的支持同樣使其能夠成為一個(gè)優(yōu)秀的手機(jī)操作系統(tǒng)。其最新的版本為Palm OS 5.2。目前具有手機(jī)功能的Palm PDA如Palm公司的Tungsten W。而Handspring公司(目前已被Palm公司收購)的Treo系列則是專門使用Palm OS的手機(jī)。
Palm OS是一種32位的嵌入式操作系統(tǒng),用于掌上電腦。此系統(tǒng)是3Com公司的Palm Computing部開發(fā)的。(Palm Computing目前已經(jīng)獨(dú)立成一家公司。)Palm OS與同步軟件HotSync結(jié)合可以使掌上電腦與PC機(jī)上的信息實(shí)現(xiàn)同步,把臺(tái)式機(jī)的功能擴(kuò)展到了手掌上。目前,基于Palm OS的掌上電腦主要是3Com的系列產(chǎn)品,如Palm IIIx,Palm V,Palm VII,IBM WorkPad c3用的也是Palm OS。Sony等公司也獲得了Palm Computing的許可,將開發(fā)基于Palm OS的掌上電腦。Palm OS與Windows CE間的搏斗正在展開。
Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他們根據(jù)大學(xué)時(shí)代的一些設(shè)想寫出了一個(gè)能在IBM PC上運(yùn)行的名叫QUNIX(Quick UNIX)的系統(tǒng),直到AT&T發(fā)律師函過來才把名字改成QNX。
QNX是一個(gè)分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時(shí)操作系統(tǒng)。它遵循POSIX.1(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(實(shí)時(shí)擴(kuò)展)。它最早開發(fā)于1980年,到現(xiàn)在已相當(dāng)成熟。
QNX是一個(gè)微內(nèi)核實(shí)時(shí)操作系統(tǒng),其核心僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它OS服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶進(jìn)程,因此QNX核心非常小巧(QNX4.x大約為12Kb)而且運(yùn)行速度極快。
嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng),它被廣泛應(yīng)用在移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、媒體播放器、消費(fèi)性電子產(chǎn)品以及航空航天等領(lǐng)域中。
嵌入式linux是將日益流行的Linux操作系統(tǒng)進(jìn)行裁剪修改,使之能在嵌入式計(jì)算機(jī)系統(tǒng)上運(yùn)行的一種操作系統(tǒng)。嵌入式linux既繼承了Internet上無限的開放源代碼資源,又具有嵌入式操作系統(tǒng)的特性。嵌入式Linux的特點(diǎn)是版權(quán)費(fèi)免費(fèi);購買費(fèi)用媒介成本技術(shù)支持全世界的自由軟件開發(fā)者提供支持網(wǎng)絡(luò)特性免費(fèi),而且性能優(yōu)異,軟件移植容易,代碼開放,有許多應(yīng)用軟件支持,應(yīng)用產(chǎn)品開發(fā)周期短,新產(chǎn)品上市迅速,因?yàn)橛性S多公開的代碼可以參考和移植,實(shí)時(shí)性能RT_Linux Hardhat Linux等嵌入式Linux支持,實(shí)時(shí)性能穩(wěn)定性好安全性好。
近年來,隨著微控制器性能的不斷提高,嵌入式應(yīng)用越來越廣泛。目前市場(chǎng)上的大型商用嵌入式實(shí)時(shí)系統(tǒng),如VERTEX,VXWORK,PSOS等等,已經(jīng)十分成熟,并為用戶提供了強(qiáng)有力的開發(fā)和調(diào)試工具。但商用嵌入式實(shí)時(shí)系統(tǒng)價(jià)格昂貴,而且都針對(duì)特定的硬件平臺(tái)。對(duì)于國內(nèi)中小型系統(tǒng)的開發(fā),購買商用實(shí)時(shí)系統(tǒng)并不劃算。此時(shí),采用免費(fèi)軟件和開放代碼不失為一種選擇。目前源碼開放(C代碼)的嵌入式系統(tǒng)有μC/OS的uCLinux。μC/OS簡(jiǎn)單易學(xué),提供了嵌入式系統(tǒng)的基本功能,其核心代碼短小精悍,如果針對(duì)硬件進(jìn)行優(yōu)化,還可以獲得更高的執(zhí)行效率。但是μC/OS相對(duì)商用嵌入式系統(tǒng)來說還是過于簡(jiǎn)單,而且存在開發(fā)調(diào)試?yán)щy的問題。uCLinux是免費(fèi)軟件運(yùn)動(dòng)的產(chǎn)物,包含豐富的功能,包括文件系統(tǒng)、各種外調(diào)驅(qū)動(dòng)程序、通訊模塊、TCP/IP、PPP、HTTP,甚至WEB服務(wù)器的代碼。在INTERNET上流傳的uCLinux已經(jīng)被移植到當(dāng)前幾乎所有的硬件平臺(tái)上,功能與PC機(jī)上運(yùn)行的Linux不相上下,其代碼也十分復(fù)雜。完全移植沒有必要也十分困難,但uCLinux的代碼經(jīng)過世界范圍內(nèi)的優(yōu)化,穩(wěn)定可靠而且高效,所有模塊的代碼都可以從INTERNET上獲得,可以進(jìn)行模塊移植。在應(yīng)用中,我們可以在ColdFire硬件平臺(tái)上運(yùn)行了μC/OS的核心,并實(shí)現(xiàn)uCLinux的文件系統(tǒng),使得在嵌入式應(yīng)用中可以進(jìn)行文件操作。同時(shí)針對(duì)μC/OS調(diào)試?yán)щy的問題。還移植了uCLinux的用戶Shell,使得用戶可以用命令行方式進(jìn)行程序的調(diào)試和開發(fā)。
TinyOS是UC Berkeley(加州大學(xué)伯克利分校)開發(fā)的開放源代碼操作系統(tǒng),專為嵌入式無線傳感網(wǎng)絡(luò)設(shè)計(jì),操作系統(tǒng)基于構(gòu)件(component-based)的架構(gòu)使得快速的更新成為可能,而這又減小了受傳感網(wǎng)絡(luò)存儲(chǔ)器限制的代碼長度。
TinyOS的構(gòu)件包括網(wǎng)絡(luò)協(xié)議、分布式服務(wù)器、傳感器驅(qū)動(dòng)及數(shù)據(jù)識(shí)別工具。其良好的電源管理源于事件驅(qū)動(dòng)執(zhí)行模型,該模型也允許時(shí)序安排具有靈活性。TinyOS已被應(yīng)用于多個(gè)平臺(tái)和感應(yīng)板中。TinyOS操作系統(tǒng)、庫和程序服務(wù)程序是用nesC寫的。nesC是一種開發(fā)組件式結(jié)構(gòu)程序的語言,是一種C語法風(fēng)格的語言,但是支持TinyOS的并發(fā)模型,以及組織、命名和連接組件成為健壯的嵌入式網(wǎng)絡(luò)系統(tǒng)的機(jī)制。nesC應(yīng)用程序是由有良好定義的雙向接口的組件構(gòu)建的,它還定義了一個(gè)基于任務(wù)和硬件事件處理的并發(fā)模型,并能在編譯時(shí)檢測(cè)數(shù)據(jù)流組件。
[1]郎璐紅,梁金柱.基于ARM的嵌入式系統(tǒng)接口技術(shù)[M].清華大學(xué)出版社,2011.
[2]陳卓,王田,梁新元.嵌入式系統(tǒng)開發(fā)[M].電子工業(yè)出版社,2009.
[3]豈興明,胡小冬,周火金.DSP嵌入式開發(fā)入門與典型實(shí)例[M].人民郵電出版社,2011.
[4]周潤景,袁偉亭.基于PROTEUS的ARM虛擬開發(fā)技術(shù)[M].北京航空航天大學(xué)出版社,2007.
[5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京航空航天大學(xué)出版社,2008.
熊丹(1984—),女,湖北麻城人,學(xué)士,工程碩士研究生在讀,現(xiàn)供職于淮安炎黃職業(yè)技術(shù)學(xué)院,研究方向:電子基礎(chǔ)類及計(jì)算機(jī)硬件。