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