本文介绍了Windows Embedded Standard 2009和Windows Embedded Standard 7在组件化、工具和映像构建流程等方面的部分不同。目的是使用户深入了解这两款嵌入式产品之间的差异,以及这两款产品在创建和部署嵌入式设备映像时在功能、工具和用户整体体验方面的部分不同。
组件化对比
本文将比较Windows Embedded Standard 2009和Windows Embedded Standard 7在以下方面的不同:
•组件架构
•功能集包
•驱动程序包
•语言包
•组件依赖关系
•宏组件与模板
•SMI(Settings Management Infrastructure,设置管理架构)的设置与配置设置
•嵌入式功能(EEFs)
•客户化组件支持
•组件架构
Windows Embedded Standard 2009和Windows Embedded Standard 7具有相似的组件化概念,即将注册表信息、依赖关系和其他资源定义在一个统一的二进制文件集中,所有这些数据都作为一个集合安装在运行的映像中。但是,两款产品在组件实现和使用上是不同的。
对于Windows Embedded Standard 2009而言,其组件的实现是从头开始的。因为Windows Embedded Standard 2009从Windows XP Pro继承来的二进制文件并未进行组件化。因此,Windows Embedded Standard 2009的组件无法与包括Windows Embedded Standard 7在内的新推出的操作系统兼容。此外,这些组件只是用来导入到用于开发的Windows Embedded Standard 2009的组件数据库中,而无法导入到嵌入式设备中。要为这些设备提供服务,需要OEM开发人员使用更新后的组件重新创建整个运行时的映像。
Windows Embedded Standard 7的组件继承自Windows 7,这些组件都列在组件清单上。除了个别的是为了满足某些嵌入式的特殊需求而没有包括在Windows 7中,其他的都与Windows 7清单一样。因此,Windows Embedded Standard 7与Windows 7的设计完全兼容。组件更新升级与Windows 7也相似,仅需创建一个嵌入式开发的专用更新包,用户可将该更新包导入部署在OEM开发人员计算机上的Windows Embedded Standard 7分发共享目录(distribution share)中,或直接安装到嵌入式运行映像上。
Windows Embedded Standard 7与Windows Embedded Standard 2009在组件设计上的另一个不同之处体现在嵌入式核心(eCore)这一概念上。eCore包括一系列操作系统基本组件(内核、网络、安全、某些驱动程序等),这些基本组件用于引导有系统安全和网络功能的嵌入式设备。eCore是嵌入式设备的最小映像,支持OEM开发人员在其上面添加其他功能集、驱动程序和语言包,本文将在下面对此进行讨论。
功能集包
对于Windows Embedded Standard 2009,当用户创建自己的设备映像时,需要在组件的层面上选择功能集包。甚至某些重要功能(如,Windows Media Player、Windows Internet Explorer、Microsoft Remote Desktop Protocol等)都是作为组件实现的,这是因为这些功能是由大量二进制文件聚集而成。因此,组件和功能的区分不很明显。此外,由于Windows Embedded Standard 2009有1万多个组件,因此用户如何从中选择合适的组件创建自己的映像成为一种挑战。
对于Windows Embedded Standard 7,创建功能集包的目的是聚合相关的组件(如,Windows Media Player、Windows Internet Explorer、Microsoft Remote Desktop Protocol等),OEM开发人员只需选择他们所要部署的功能集即可。由于要将功能集包的数量保持在最低水平(约为150个),所以功能选择流程更简单,设计和创建设备映像也更容易。
驱动包
在Windows Embedded Standard 2009中,每个驱动程序都作为独立组件实现,共有约9000个独立的驱动程序,对OEM开发人员而言,将这些驱动程序与相应的硬件设备配在一起是一项重大的挑战。
与功能集包类似,Windows Embedded Standard 7也提供包层面的驱动程序。但是,为了降低程序的大小,各驱动程序都是以独立的包的形式提供,只有一个例外是USB 驱动程序,此外,我们还提供了一个可选的支持USB 启动的驱动程序包。。实际上,这些驱动程序包与Windows Embedded Standard 2009中的各个驱动程序组件相似。Windows Embedded Standard 7放弃了Windows 7中部分陈旧的驱动程序,创建了大约400个独立的驱动程序包。此外,嵌入式核心(eCore)中还包括了约100个驱动程序的列表,能够满足例如系统引导、网络通信等基本需要。
总体而言,Windows Embedded Standard 2009和Windows Embedded Standard 7的驱动程序基本相似,但Windows Embedded Standard 7中的驱动程序数量明显减少,而且eCore中还包含了部分基本的驱动程序。
语言包
Windows XP并不是由语言中性的组件组成,所以,它不支持将单个语言包安装在一个语言中性的操作系统上。每个操作系统二进制文件必须对不同的语言进行本地化,以满足不同国家和地区的需要。这种设计不仅使错误修复、测试和OS组件服务复杂化,而且对需要多种语言支持映像的终端设备而言,还大大增加了操作系统的大小。Windows Embedded Standard 继承了Windows XP相同的语言设计,但是,它额外提供了非英语的语言资源包,从而使得用户能够选择是否创建一种或多种语言的设备映像。尽管如此,这并未解决上述的错误修复和OS组件维护复杂、占用内存太大等问题。
Windows Embedded Standard 7继承了与Windows 7相同的支持语言中性的设计模型,可以将不同的语言包安装在同一个语言中性的操作系统上。那些存在于Windows XP和Windows Embedded Standard 2009中的问题在这得到了改善。与Windows 7一样,Windows Embedded Standard 7提供了多达36个完全本地化的语言包(LP),但实际安装的LIP语言包(language-interface package)的数量取决于用户的需求。此外,Windows Embedded Standard 7中的某种语言包只包含与功能和驱动程序包(及Embedded core)中的语言中性组件相对应的某种语言资源文件,从而,与Windows 7相比,大大减小了包的大小。语言包更小,使得OEM开发人员可根据具体需求,更容易地在专业设备上部署各种语言包。