微軟公司推出了兩款嵌入式操作系統Windows CE和Windows XP Embedded。兩款操作系統都可以在嵌入式系統中使用。但是,該如何確定哪一款更適合您的設備呢?
乍一看,Windows CE和Windows XP Embedded似乎并無區別。兩個系統都屬于組件化操作系統,均配備相似的程序接口(Win32、MFC、ATL以及對.NET應用的支持),采用相似操作系統技術,均支持網絡、互聯網瀏覽器、媒體播放器等等。如果了解每款操作系統的設計目標,選擇時就會更容易。
Windows CE是一款體積小巧和組件化實時操作系統,它可以在多處理器架構上運行。而另一方面,則可以將Windows XP Embedded視為集成了內嵌功能的Windows XP Professional Service Pack 2的組件化版本?,F在我們來分析一下兩款操作系統的某些特性。
我們已經知道Windows XP Embedded是Windows XP Professional Service Pack 2的組件化版本。此操作系統包含了近12,000個獨立組件,內置約9,000個設備驅動程序,采用了3,000項操作系統技術。你可以挑選在嵌入式操作系統映象中需要包含的驅動程序、服務與應用。如果您不需要媒體播放器、Notepad或IE,也就沒必要在你的操作系統映象中選擇相應的功能。這種挑選單獨組件的能力可以縮小操作系統的尺寸,這自然也就降低了惡意代碼攻擊的風險。就Windows XP Embedded SP2而言,它具備Windows XP SP2中所有的安全更新,這其中包括被默認關閉的所有端口(HTTP除外)。當然,系統構建者可以根據設備需要決定打開哪個端口。基于XP Embedded結構構建的普通操作系統以40 MB為基數遞增,其大小取決于終鏡像中包含哪種操作系統組件/技術。
在嵌入式系統中使用Windows XP Embedded的一個優勢是,可以提高開發速度。基于Windows XP Embedded的系統運行于我們非常熟悉的x86處理器和PC 架構的硬件之上。這意味著現有任何Windows 2000或Windows XP的設備驅動程序或應用無需修改就可以在Windows XP Embedded上運行。這是因為Windows XP Embedded操作系統擁有一套預制的兼容桌面的二進制組件,它能確保應用和驅動程序之間的兼容性。
Windows XP Embedded設備典型的開發過程是:首先使用名為Target Analyzer的工具保存底層硬件的快照,生成一個XML格式文件,并以該文件定義目標設備中的所有硬件組件。然后,將XML文件導入組件設計器(Component Designer)工具,保存為定制組件,然后利用該組件定義設備的硬件。另外,組件設計器也可導入.INF格式的文件,這樣可以輕松地在Windows 2000或Windows XP設備驅動程序中生成組件。組件設計器還可用于創建定制元件,或為定制的外殼或應用程序定義元件。創建的元件可以定義文件、注冊設置以及操作系統對元件的依賴性。一旦將被定義元件插入到Windows XP Embedded組件數據庫中,則可以用于嵌入式設計。
開發Windows XP Embedded操作系統映像的下一個步驟是使用目標設計器(Target Designer)工具。此工具支持Windows XP操作系統的所有技術和驅動程序,以及嵌入特性(下面我們就會介紹)。系統開發人員只需選擇所需組件,并將這些組件添加到項目工作區即可。可選組件包括目標分析器創建的硬件定義組件,可為許多設備定義起點的設計模板,包括Windows Based Terminal(瘦客戶機)、銷售點(Point of Sale)設備,機頂盒等。您還可以拖動目錄中的單個組件,將其添加到項目設計中。在構建時,目標設計器將在項目工作區運行依賴性分析程序,以確保終操作系統映像中包括所需的操作系統功能。例如,開發人員選擇.NET設計框架,添加其.NET應用程序,然后構建操作系統鏡像。在這一過程中,系統設計人員無需知道和了解.NET框架的依賴性,就可構建操作系統映像。
我們已經提到,Windows XP Embedded擁有某些嵌入的特定功能,包括從CD-ROM或閃存磁盤上啟動和運行Windows XP Embedded。在這兩種情況下,開發人員都希望將底層媒介設置為只讀,因為閃存僅支持有限的寫入,而CD-ROM在該啟動環境中也是只讀的。Windows XP Embedded配備的增強型寫入過濾(Enhanced Write Filter)組件將截取操作系統和應用寫入指令,而并不會將啟動介質內容寫入內置高速緩存。這意味著在關機狀態下,底層介質不會產生錯誤,設備總能保持啟動狀態。因為Windows XP Embedded的增強型寫入過濾組件允許多次使用休眠文件,所以您將擁有的啟動環境,在這種啟動環境下,系統啟動時間和消費電子產品啟動時間相仿。
那么,如何對Windows XP Embedded和Windows CE進行比較呢?Windows CE體積小巧,是一種硬實時嵌入式操作系統,它可以在多種處理器架構(如x86、MIPS、ARM和SH4)上運行。其內核僅為200kb,當然操作系統大小取決于設計中包含的組件。該操作系統配置一個典型的、支持802.11a/b/g的駐留網關,它可以通過一個基于Web的接口進行遠程管理;一款容量不足4 MB的安全軟件;一個功能齊備的掌上瀏覽器(Web Pad)鏡像(包括Web瀏覽器、媒體播放器、辦公文件瀏覽器,它支持.NET Compact Framework;以及一個約18 MB的Windows Explorer Shell。
Windows CE和Windows XP Embedded存在諸多本質區別。首先,Windows CE是一款全32位、Unicode操作系統,它不支持MS-DOS或Windows 3.x應用。此外,Windows CE的架構也與臺式機不同。在臺式機中,您可以找到三款核心操作系統組件:Kernel32、GDI32和User32。而Windows CE則不存在這些組件,具有相同功能的組件包括Coredll (kernel32)和GWES,Graphics Windowing以及Event Subsystem(相當于GDI32與User32的組合)。這意味著即使是簡單的臺式機應用也不能在Windows CE上運行,小的臺式機應用也需重新編譯后才能在Windows CE設備上運行,這不僅因為架構不同,也因為Windows CE設備更適合在非x86處理器上運行。
您可能認為Windows CE只能在手持設備、電池供電設備如Windows Mobile設備上運行,而事實上這只是Windows CE基本的應用,Windows CE具有強大的電源管理能力, 在Windows Mobile設備上運行當然不成問題。Windows CE可以運行于工業控制系統、醫療監控設備、機器人、銷售設備零售點以及其它很多嵌入式操作系統中。Windows CE是一款硬實時嵌入式操作系統,它支持低于10微秒的中斷延遲,遠遠優于其它實時嵌入式系統。
Windows CE配備的一整套工具可用于配置、構建和調試嵌入式操作系統鏡像。Platform Builder工具和Windows XP Embedded 目標設計器工具極其相似,開發人員可以使用Platform Wizard(類似于Windows XP Embedded設計模板)對操作系統進行初始配置,然后再從操作系統設計中添加或刪除某些功能。Platform Builder還包含對操作系統功能依賴性的支持功能,例如,將.NET Compact Framework添加到某設計中,同樣為所需的操作系統技術提供支持。
通常Windows CE都是運行在定制的硬件上,這種設計的優點是可以通過縮小操作系統鏡像尺寸來減少使用的材料,降低處理器的功耗,并減少所支持的外設數量,而與此同時,則增強了對操作系統技術的支持能力。此流程通常要求將Windows CE移植到新定制的硬件上。為了實現這一移植過程,Windows CE裝載了數以百萬計的源代碼,開發人員可以利用這些源代碼檢驗Windows CE的工作方式。另外,修正提供源代碼的方式也有助于實現該移植過程。
Windows CE操作系統鏡像構建成功后,可以利用許多工具(如源代碼調試器、性能監控器和評測工具)調試或測試Windows CE操作系統鏡像。
我們只是概述了Windows CE和Windows XP Embedded所采用的部分技術,難免掛一漏萬。微軟提供Windows CE和Windows XP Embedded的評估版本,您可以登錄http://www.windowsembeddedkit.com 免費下載。在實際開始供應設備之前,不要求客戶取得操作系統鏡像許可。此外,微軟還會對嵌入式操作系統提供長達10年的支持!為了您的下一代嵌入式產品,趕快對Windows CE或Windows XP進行評估吧。