乍一看,Windows CE和Windows XP Embedded似乎并无区别。两个系统都属于组件化操作系统,均配备相似的程序接口(Win32、MFC、ATL以及对.NET应用的支持),采用相似操作系统技术,均支持网络、互联网浏览器、媒体播放器等等。如果了解每款操作系统的设计目标,选择时就会更容易。
Windows CE是一款体积小巧和组件化实时操作系统,它可以在多处理器架构上运行。而另一方面,则可以将Windows XP Embedded视为集成了内嵌功能的Windows XP Professional Service Pack 2的组件化版本。现在我们来分析一下两款操作系统的某些特性。
我们已经知道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配备的一整套工具可用于配置、构建和调试嵌入式操作系统镜像。Platform Builder工具和Windows XP Embedded 目标设计器工具极其相似,开发人员可以使用Platform Wizard(类似于Windows XP Embedded设计模板)对操作系统进行初始配置,然后再从操作系统设计中添加或删除某些功能。Platform Builder还包含对操作系统功能依赖性的支持功能,例如,将.NET Compact Framework添加到某设计中,同样为所需的操作系统技术提供支持。