WinCE 的發(fā)展史及相關(guān)基礎(chǔ)知識
這兩天查找了一下 WinCE 的發(fā)展史,及其它一些基本的知識。將這些基礎(chǔ)的東東放在一起,以方便學(xué)習(xí)。如果有什么不對的地方,將提出來。
(1)Windows CE/Windows Embedded 的差別
WindowsCE是微軟公司嵌入式、移動計算平臺的基礎(chǔ),它是一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡的Windows 95,Windows CE的圖形用戶界面相當(dāng)出色。
Windows XP Embedded是一種嵌入式操作系統(tǒng),可以以組件化形式提供 Windows 操作系統(tǒng)功能。Windows XP Embedded 與 Windows XP Professional 一樣基于二進制,包含 10,000 多個獨立功能組件,因此開發(fā)人員在自定義設(shè)備映像中管理或降低內(nèi)存占用量時可以選擇并獲得最佳功能。
(2)WinCE 發(fā)展史?
1996年
第一代微軟移動設(shè)備操作系統(tǒng) Windows CE 1.0
Windows CE 1.0是一種基于 Windows95 的操作系統(tǒng),其實就是單純的 Windows95 簡化版本。
為手持式PC而設(shè)計。該手持式PC配有480*240或640*240的屏幕,有一個很小的矩形鍵盤。
1998年
Fall Comdex 97大會上,升級版本為Windows CE 2.0(設(shè)備稱為Palm-Size PC)
WinCE 2.0 不僅比 CE1.0 快的多,而且是彩色顯示,具有略大一些的鍵盤。Windows CE 2.0仍是基于Win95的操作系統(tǒng)。
2000年 4 月
新的操作系統(tǒng)改名為Pocket PC 2000(也簡稱為 Pocket PC或者Windows CE3.0)
WinCE3.0是微軟的Windows Compact Edition,是一個通用版本,并不針對掌上產(chǎn)品,標(biāo)準(zhǔn)PC、家電和工控設(shè)備上也可以安裝運行。WinCE3.0支持5系列CPU: x86,PowerPC,ARM,MIPS,SH3/4。WinCE3.0屬于付費軟件,安裝許可(Licence)費用為$20,10份起,批量時大致能降到$15/一份。在2002年8月,專門為手機優(yōu)化過的微軟Pocket PC 2002 Phone Edition操作系統(tǒng)匆匆問世,2002年10月,國內(nèi)第一款PPC手機--多普達686上市了,隨后熊貓推出了CH860、聯(lián)想推出ET180。
2001年
Pocket PC 2002問世
2002年末
推出增加手機功能的 Pocket PC Phone 2002,同年,Smartphone 2002(Smartphone不支持觸摸)誕生
2002 年 11 月
Windows CE. NET(即Windows CE 4.0)是微軟于2002年1月份推出的首個以.NET為名的操作系統(tǒng),從名字上我們就可以知道它是微軟的.NET的一部分。WinCE. NET是WinCE3.0的升級,同時還加入.NET Framework精簡版,支持藍牙和.NET應(yīng)用程序開發(fā)。
.NET特別強調(diào)網(wǎng)絡(luò)功能,該操作系統(tǒng)主要為移動用戶提供基于網(wǎng)絡(luò)的服務(wù)和內(nèi)容,它不但能夠支持藍牙和802.11b無線局域網(wǎng)技術(shù),同時還可以應(yīng)用于其他設(shè)備,如數(shù)碼相機、小型客戶端設(shè)備、機頂盒,以及自動化設(shè)備等。
2003 年 4 月
Windows CE. NET 4.2:Windows CE. NET 4.0 的升級版,對Windows CE先前版本的強大功能進行了進一步的擴充和豐富,基于其開發(fā)的設(shè)備將從這些微小但重要的變化中獲得更好的性能和更強的Windows集成功能。
2003年 6 月
微軟將Pocket PC 2003和Smart Phone 2003統(tǒng)一改稱為Windows Mobile 2003,依然包括Windows Mobile 2003 for Pocket PC、Windows Mobile2003 forPocket PC Phone Edition和Windows Mobile 2003 forSmartphone。
Windows Mobile 2003是以Windows CE 4.2為核心。 ? ??
2004 年 8 月
微軟宣布 Windows CE5.0 擴大開放程序源代碼。在這個開放源代碼計劃授權(quán)下,微軟開放 250 萬行源代碼程序作為評估套件(evaluation kit),支付 Win CE5.0 核心每臺機器3美元的授權(quán)費用。
? D3D Mobile、FastStart、GDI功能增強。?
? 增強安全性。?
? 廣泛的源代碼訪問和設(shè)計靈活性。?
? 增加25%的源代碼開放。
2005年
微軟沒有延續(xù)年號的命名方法,采用操作系統(tǒng)所采用的Windows CE內(nèi)核版本命名,將新的操作系統(tǒng)稱為WindowsMobile 5.0。依然包括Windows Mobile 5.0 for Pocket PC、WindowsMobile 5.0for Pocket PC Phone 和Windows Mobile 5.0 forSmartphone。
2006 年 11 月
微軟公司其最新的嵌入式平臺Windows Embedded CE 6.0正式上市。微軟將首次在“共享源計劃(Microsoft Shared Source programme)”中100%毫無保留地開放Windows Embedded CE 6.0內(nèi)核,(GUI圖形用戶界面不開放)比Windows Embedded CE的先前版本的開放比例整體高出56%。Windows Embedded CE 6.0重新設(shè)計的內(nèi)核具有32,000個處理器的并發(fā)處理能力,每個處理有2GB虛擬內(nèi)存尋址空間,同時還能保持系統(tǒng)的實時響應(yīng)。
2007年
微軟在1月份的SGSM大會上微軟正式推出WindowsMobile6.0移動設(shè)備操作系統(tǒng),包括三個版本,但是版本分類采用了不同的命名方式:Professional(支持觸摸屏智能手機)、Standard(非觸控屏智能手機)、Classic(不具備手機功能的手持設(shè)備)。
2008年
微軟推出Windows Mobile 6.1 操作系統(tǒng),其主要的特性在于穩(wěn)定性的提高方面。
2009年
即將發(fā)布Windows Mobile 6.5 操作系統(tǒng),新版系統(tǒng)重點強化了對觸摸操作的支持和優(yōu)化,比傳統(tǒng)方格式界面更易于觸摸點擊,例如蜂窩形的主菜單界面。新版本的Internet Explorer Mobile瀏覽器也增加了可觸摸的頁面縮放滑竿和常用命令?!癢indows Marketplace”在線商店將為手機提供各類應(yīng)用的直接下載
2010 年 6 月
在 2010 年6月1日-5日的臺北 COMPUTEX 展會上,微軟正式公布了其嵌入式產(chǎn)品線最新的一員 Windows Embedded Compact 7。微軟推出的 Windows Phone 7 所采用的內(nèi)核正是使用了類似的 WinCE 7 內(nèi)核。不僅如此,Windows Phone 平臺也是基于 WinCE 平臺而定制出來的產(chǎn)品。
2013 年 3 月
微軟發(fā)布一個嵌入式系統(tǒng)被公布出來,它的名字叫 Windows Embedded Compact 2013,它可以同時工作于 x86 和 ARM 架構(gòu)體系下。
核心操作系統(tǒng)的改進,包括內(nèi)存管理和網(wǎng)絡(luò)功能;
?文件系統(tǒng)的性能改進,使設(shè)備始終可用;
?啟動優(yōu)化,使用快照啟動,實現(xiàn)設(shè)備在幾秒鐘內(nèi)進入驅(qū)動程序加載,進入特定UI等已知狀態(tài);
?內(nèi)置支持Wi-Fi、蜂窩網(wǎng)絡(luò)和藍牙技術(shù),以及無縫連接到Windows Azure,實現(xiàn)強大的互聯(lián)智能系統(tǒng);
?對創(chuàng)建了HTML5瀏覽器等附加解決方案的成千上萬開發(fā)者和合作伙伴提供支持
(3)因為 WINCE 是 32 位的嵌入式操作系統(tǒng),所以 WINCE 的虛擬尋址能力可達4GB(為什呢,2^32=4GB)。
但是 WINCE5.0 和 XP 操作系統(tǒng)的每個進程獨享 4GB 虛擬地址空間不同,WINCE5.0 中所有的進程共享一個 4GB 的虛擬地址空間。這 4GB 的虛擬地址空間被分為兩個 2GB 的區(qū)域,其中低地址的那2GB區(qū)域 (0x00000000~0x7FFFFFFF)是用戶虛擬空間,這塊虛擬空間由應(yīng)用程序的共用,也就是說應(yīng)用程序申請的內(nèi)存都會從低2GB虛擬內(nèi)存空間分配的;而高2GB區(qū)域(0x80000000~0xFFFFFFFF)是操作系統(tǒng)的內(nèi)核虛擬空間,供WINCE操作系統(tǒng)本身使用。
WINCE5.0 的進程數(shù)量最多只能達到 32 個,而且每個進程只能獨享 32MB 的虛擬空間(這個 32MB 的空間也叫一個 slot),這33個進程(32+1,這個1就是指slot0,因為slot0用于映射當(dāng)前在處理器上執(zhí)行的線程所在的進程)占用的虛擬空間0x00000000~0x41FFFFFF(slot0~slot32),slot33~slot63對應(yīng)的虛擬地址空間是0x42000000~0x7FFFFFFF,這塊虛擬地址空間是由所有的進程共享的,如果每個進程獨享的32MB虛擬地址空間不夠用,那么進程可以在這個范圍申請?zhí)摂M地址空間,這個范圍包括對象存儲和內(nèi)存映射文件(.map文件,每個進程都有自己的map文件)。此范圍的最后一個slot(slot63)從0x7E000000~0x7FFFFFFF用來存放純資源DLL。如果某個DLL里面只有資源信息(比如圖標(biāo)、位圖、對話框及字符串表燈),這個DLL就會被加載到這個空間內(nèi)。
WinCE 6.0 重新設(shè)計的內(nèi)核具有 32,000 個處理器的并發(fā)處理能力,每個處理有 2GB 虛擬內(nèi)存尋址空間,同時還能保持系統(tǒng)的實時響應(yīng)。
(4) 驅(qū)動框架變化
(a)應(yīng)用層/內(nèi)核層
(b)框架的變化:從 4.2 到 5.0/從5.0 到 6.0
(5) 應(yīng)用框架變化
(a) Win32/MFC,變化不大
(b) ActiveSync 通過 USB 與開發(fā)板連接
(c) 模擬器
(6) WinCE 開發(fā)環(huán)境搭建分為兩部分:
(a)WinCE 系統(tǒng)定制與驅(qū)動開發(fā)
Platform Builder 與相關(guān) BSP(Board Support Package:板級支持包) 的開發(fā)。
早期的 PB 是一個獨立的工具,從 WinCE5.0 開發(fā) PB 做為 Visual Studio 的一個插件。所以,安裝 PB 前需要安裝對應(yīng)版本的 Visual Studio。
(b)應(yīng)用開發(fā)環(huán)境
? WinCE 1.0 和 2.0 的開發(fā)環(huán)境不明。
? EVT3.0(Embedded C++ 3.0 和 Embedded VB 3.0),Embedded C++ 4.0(沒有看到對應(yīng)的 VB版本),Visual Studio 2005/2008。
? 應(yīng)用開發(fā)需要安裝 SDK(Software Development Kit:軟件開發(fā)工具包),由于 WinCE 支持不同類型的 CPU,選擇 SDK后,就可以選擇 SDK 支持的 CPU 類型。
(7) 應(yīng)用框架
與 Windows 下的框架基本相同,需要注意的是字符的編碼。Windows CE下所有系統(tǒng) API 只有 Unicode 版本,默認的字符串也采用 Unicode 編碼。
API 只有 Windows API 的一個子集,但增加了一些移動設(shè)備特有的 API。
(a)Win32
(b)MFC
(8) 消息機制
Windows 的消息系統(tǒng)是由3個部分組成的:
a)消息隊列。Windows能夠為所有的應(yīng)用程序維護一個消息隊列。應(yīng)用程序必須從消息隊列中獲取消息,然后分派給某個窗口。
b)消息循環(huán)。通過這個循環(huán)機制應(yīng)用程序從消息隊列中檢索消息,再把它分派給適當(dāng)?shù)拇翱?,然后繼續(xù)從消息隊列中檢索下一條消息,再分派給適當(dāng)?shù)拇翱?,依次進行。
c)窗口過程。每個窗口都有一個窗口過程來接收傳遞給窗口的消息,它的任務(wù)就是獲取消息然后響應(yīng)它。窗口過程是一個回調(diào)函數(shù);處理了一個消息后,它通常要返回一個值給Windows。
注意回調(diào)函數(shù)是程序中的一種函數(shù),它是由 Windows 或外部模塊調(diào)用的。
一個消息從產(chǎn)生到被一個窗口響應(yīng),其中有5個步驟:
a) 系統(tǒng)中發(fā)生了某個事件。
b) Windows 把這個事件翻譯為消息,然后把它放到消息隊列中。
c) 應(yīng)用程序從消息隊列中接收到這個消息,把它存放在 TMsg 記錄中。
d) 應(yīng)用程序把消息傳遞給一個適當(dāng)?shù)拇翱诘拇翱谶^程。
e) 窗口過程響應(yīng)這個消息并進行處理。
步驟c和d構(gòu)成了應(yīng)用程序的消息循環(huán)。
消息循環(huán)往往是 Windows 應(yīng)用程序的核心,因為消息循環(huán)使一個應(yīng)用程序能夠響應(yīng)外部的事件。消息循環(huán)的任務(wù)就是從消息隊列中檢索消息,然后把消息傳遞給適當(dāng)?shù)拇翱凇?br />Windows 操作系統(tǒng)最大的特點就是其圖形化的操作界面,其圖形化界面是建立在其消息處理機制這個基礎(chǔ)之上的。如果不理解 Windows 消息處理機制,肯定無法深入的理解 Windows 編程。
(9)WinCE 下路徑的最大長度
一般都未達到 MAX_PATH(260)的限制,目錄的級數(shù)與目錄名的長度有一定的關(guān)系:目錄名越長,目錄級數(shù)越少。
WinCE 下每個目錄中最大文件個數(shù)