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