微软公司推出了两款嵌入式操作系统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的组件化版本。现在我们来分析一下两款操作系统的某些特性。
我们已经知道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 进行评估吧。