摘要:文章介紹了微軟的嵌入式操作系統(tǒng)產(chǎn)品線,分析了WinCE 6.0和.NET Micro framework技術(shù)特點。根據(jù)嵌入式系統(tǒng)的要求,還比較了微軟和嵌入式Linux、VxWorkss的差異和各自特色。
關(guān)鍵詞:嵌入式操作系統(tǒng);WinCE Windows Mobile單片機(jī);NET Micro framework
引言
在嵌入式操作系統(tǒng)領(lǐng)域,微軟的Windows Mobile正在智能手機(jī)市場快速增長,“2007 Windows硬件工程大會”及“2007移動與嵌入式開發(fā)者大會”的資料顯示,全球55個國家的110個運營商采用Windows Mobile,近50家設(shè)備制造商生產(chǎn)了100多款Windows Mo-bile手機(jī)和便攜式設(shè)備。微軟的其他嵌入式軟件發(fā)展也非常快,51%的零售商考慮使用基于Windows Embedded的POS(銷售點)系統(tǒng),2005年有60%的瘦客戶端運行著WinCE。微軟最新發(fā)表的面向單片機(jī)的.NET MicroFramework在2006發(fā)布后,今年3月在美國的ESC(嵌入式系統(tǒng)大會)又發(fā)表了一個擴(kuò)展版本。由此可見,微軟的嵌入式操作系統(tǒng)正在成為商業(yè)嵌入式操作系統(tǒng)的重要選擇。
但是比較起不少已經(jīng)有20多年歷史的老牌嵌入式操作系統(tǒng)公司,微軟還是一個新兵,整個產(chǎn)品線還在發(fā)展和豐富之中。
微軟嵌入式產(chǎn)品發(fā)展歷史
在探討微軟的嵌入式操作系統(tǒng)技術(shù)細(xì)節(jié)之前,讓我們先了解一下其名稱、相互關(guān)系和發(fā)展歷史。微軟從96年發(fā)表WinCE第一個版本,到目前為止,可以看到有兩個主要嵌入式操作系統(tǒng)品牌。其一是針對移動終端的操作系統(tǒng)Windows Mobile,在5.0版本之前,Win-dows Mobile分為針對智能手機(jī)的版本W(wǎng)in-dows Mobile for SmartPhone,針對PDA手機(jī)的版本W(wǎng)indows Mobile for Pocket PC Phone,針對PDA的版本W(wǎng)indows Mobile for PocketPC。
其二是微軟的嵌入式操作系統(tǒng)平臺Win-dows Embedded,這個平臺目前包括微軟核心的嵌入式實時操作系統(tǒng)-Windows CE(簡稱WinCE),它可以支持各種便攜設(shè)備和廣泛的嵌入式應(yīng)用。嵌入式XP-Windows EmbeddedXP(簡稱XPE),是模塊化的XP版本,支持各種嵌入式應(yīng)用。嵌入式POS系統(tǒng)-Windows Embedded for POS(簡稱WEPOS),一個專門為零售終端定制的嵌入式XP版本。
微軟這些嵌入式操作系統(tǒng)里面實際上只有兩個內(nèi)核,一個是WinCE內(nèi)核,包括Win-dows Mobile也是使用這個內(nèi)核,目前Windows Mobile 5.0和6.0版本使用的都是WinCE 5.x版本的內(nèi)核。該版本2004年推出,是目前廣泛使用的一個產(chǎn)品。WinCE目前的最新版本是6.0,2006年底正式發(fā)布。另外一個內(nèi)核是XPE和WEPOS使用的Windows XP的核心。
由此可見微軟在嵌入式系統(tǒng)的策略,即WinCE和Windows Mobile是具有硬實時的嵌入式操系統(tǒng),目標(biāo)是移動和通用的嵌入式設(shè)備,如手機(jī)、導(dǎo)航、PMP、機(jī)頂盒、工業(yè)控制設(shè)備和醫(yī)療儀器等。Windows Embedded XP是一個非實時的可以嵌入的操作系統(tǒng),目標(biāo)是瘦客戶機(jī)、零售機(jī)器、工廠生產(chǎn)線控制和技術(shù)外設(shè)存儲和顯示設(shè)備。另外,微軟最新推出的NET Micro Framework是針對微型設(shè)備和單片機(jī)市場的一個新產(chǎn)品,它補(bǔ)償WinCE不能支持的更小型的嵌入式應(yīng)用。
微軟嵌入式平臺核心
WinCE技術(shù)特色
WinCE是一款典型的嵌入式操作系統(tǒng),具有層次化和模塊化的體系結(jié)構(gòu)。WinCE分為硬件、OEM(委托制造)、操作系統(tǒng)和應(yīng)用軟件四個清晰的層次,硬件層即WinCE可以支持不同的微處理器和外設(shè),如x86、ARM、XS cale等,OEM層是指引導(dǎo)程序(bootloader)、設(shè)備驅(qū)動等,操作系統(tǒng)層是內(nèi)核模塊、圖形模塊、文件和存儲模塊、設(shè)備管理和加載系統(tǒng)的服務(wù)模塊組成,應(yīng)用軟件層是WinCE自身的應(yīng)用軟件,如MS Office、Media Player、IE和第三方應(yīng)用軟件。應(yīng)用軟件層和操作系統(tǒng)層有一個Win32本地API和基于.Net Com-pact Framework的被管理代碼。
WinCE內(nèi)核
WinCE是微內(nèi)核操作系統(tǒng),這是目前嵌入式操作系統(tǒng)都在使用的先進(jìn)的內(nèi)核技術(shù),例如,VxWorks、QNX和最新的L4內(nèi)核都實現(xiàn)了微內(nèi)核技術(shù)。微內(nèi)核是指在內(nèi)核里面只實現(xiàn)一些基本服務(wù),如進(jìn)程調(diào)度、進(jìn)程間通信和中斷處理等,其他的服務(wù)和功能都放在內(nèi)核外。顯然,微內(nèi)核的好處是易于移植到不同的處理器和硬件平臺,內(nèi)核外的服務(wù)如設(shè)備驅(qū)動和文件管理模塊是運行在不同的地址空間,這樣相較于整個系統(tǒng)都是平板結(jié)構(gòu)的實時內(nèi)核(如uc/os-Ⅱ、nucleus、threadx)要更加安全和可靠。微內(nèi)核的核心也非常小巧,一般幾K~幾十K字節(jié)。當(dāng)然事物永遠(yuǎn)是辨正的兩個方面,微內(nèi)核系統(tǒng)因為要經(jīng)常在內(nèi)核態(tài)和用戶態(tài)之間轉(zhuǎn)換,所以系統(tǒng)的某些性能和實時響應(yīng)能力可能要比平板結(jié)構(gòu)的實時內(nèi)核要低(不同的性能指標(biāo)取決于不同的微內(nèi)核系統(tǒng)的設(shè)計)。
同Windows一樣,WinCE每個運行程序都是一個進(jìn)程,WinCE 5.0版本支持32個進(jìn)程,每個進(jìn)程有32M的虛擬地址空間,WinCE6.0則可以支持3.2萬個進(jìn)程,每個進(jìn)程有2G的虛擬地址空間。WinCE是一個基于搶占的多線程操作系統(tǒng)。在線程這一級,WinCE可以實現(xiàn)類似嵌入式操作系統(tǒng)任務(wù)的調(diào)度、通訊、同步功能。為了支持可以搶占的硬實時調(diào)度,WinCE已經(jīng)實現(xiàn)了優(yōu)先級反轉(zhuǎn)機(jī)制(prior-ity inversion)。
6.0版本的WinCE內(nèi)核相較以前的5.0有了很大的改進(jìn),重要的一點就是把一部分關(guān)鍵文件、圖形管理和驅(qū)動程序放到內(nèi)核里面,好處是減少了模塊在用戶態(tài)和內(nèi)核態(tài)切換的開銷,還減少了應(yīng)用程序訪問這些模塊調(diào)用的開銷。WinCE 6.0的內(nèi)核結(jié)構(gòu)見圖1。

WinCE的BSP
嵌入式操作系統(tǒng)是運行在不同的微處理器上,如手機(jī)和移動設(shè)備大量使用的ARM體系結(jié)構(gòu)的CPU,市場上有三星ARM24lO/2430、TI OMAP730/1710/2430和MarvelXScale體系的PXA270等,除此之外,還有數(shù)字電視、Ip機(jī)頂盒系統(tǒng)使用的MIPS體系結(jié)構(gòu),如東芝、博通、IDT等公司的芯片。當(dāng)然,x86在各種通用嵌入式系統(tǒng)方面也有大量的應(yīng)用。

微軟的嵌入式操作系統(tǒng)也是使用BSP(Board Support Package)的概念支持各種CPU和硬件平臺的移植工作,在WinCE 5.0里已經(jīng)有包括三星2410、Marvel PXA270等許多流行的BSP,微軟的OEM廠商如研華、飛思卡爾、NXP等也提供他們移植的OEM BSP。WinCE 6.0將會在CE5.0支持ARM V4基礎(chǔ)上支持ARM V6,包括三星、飛思卡爾的ARM11核的SoC都將得到支持。在x86方面,微軟依托在桌面系統(tǒng)的強(qiáng)勢,得到了眾多IPC(工業(yè)PC)和EPC(嵌入式PC)廠家的擁戴和支持。
在BSP結(jié)構(gòu)方面,新的WinCE6.0的內(nèi)核和OAL是完全獨立的兩個模塊,好處是在修改BSP后,內(nèi)核不需要重新構(gòu)建了,減少了多次構(gòu)建、測試和發(fā)布內(nèi)核的過程,提高了系統(tǒng)的可靠性。這種結(jié)構(gòu)還可以讓微軟發(fā)布針對OEM的內(nèi)核,而OEM可以因為自身知識產(chǎn)權(quán)的考慮,以二進(jìn)制方式向最終用戶發(fā)布BSP(如圖2)。WinCE自身包含OEM BSP定制和發(fā)布工具,這樣OEM可以很方便地發(fā)行自己的BSP SDK包。