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