作者:雷志刚
转自:http://lzg-ad.blog.sohu.com/156237991.html
诞生
WES7(Windows Embedded Standard 7)是微软在2010年5月13日发布的基于X86平台,Windows 7组件化的嵌入式操作系统。WES7除了具有Windows 7最新的功能外,还具有适用于嵌入式设备的使嵌入式功能,例如EWF,FBWF,Dialog Filter,DISM,Register Filter等等。本文将揭开WES7最新的技术特性和神秘面纱,让我们了解基于Windows 7的更加简单,更加强大的新一代微软嵌入式操作系统。
技术概览
- 利用量身定做的基于Windows的操作系统构建设备
1.1 以组件和组件化的方式实现Windows 7的强大功能
1.2 提供专为嵌入式使用情形的功能 (Embedded Enabling Features)
1.3 支持多种语言的本地化 - Win32应用程序的的完美兼容,同时支持基于.NET\MFC\ATL 等开发框架开发的各类应用程序
- 与企业级的服务器和工具相集成,与微软的数据库,云计算体系及各类应用技术无缝连接
- 除了支持32位硬件和驱动程序,还支持64位的硬件平台及驱动程序 (x86 and x64)
- 适用于各类嵌入式设备,主要有:信息台, 瘦客户机, 零售终端设备, 车载电脑, 游戏机, 医疗设备,DVR, 无头设备,机顶盒等
- 增强的新功能:Boot time, SuperFetch, BitLocker and BitLocker to Go, AppLocker, Biometric Framework,Reduced idle power consumption, Timer Coalescing API,Windows Touch, Windows Aero, 64 Bit, Windows Presentation Foundation, Windows Sensor and Location platform
- 最新的Windows技术:Internet Explorer 8, Windows Media Player 12, RDP 7, .NET 3.5, PowerShell V2
- WES 7 开发工具
8.1 Wizard Experience – Image Builder Wizard (IBW) 将Windows Embedded Standard 7的映像交互式地直接装到目标设备,适用于快速的原形开发和产品评估
8.2 Advanced Experience – Image Configuration Editor (ICE) 高级的嵌入式开发情形,具有开发工具,类似于WES 2009中的目标设计器,但是因为组件是基于文件系统管理的,而不是使用SQL Server数据库,所以关联检查和生成镜像的速度都非常快。适用于OEM定制。
8.3 Deployment Image Servicing and Management (DISM) 将功能包安装于在线的或离线的Windows Embedded Standard 7 映像上。这是WES7构建的重大改变,以往我们使用XPE\WES2009的时候,如果我们已发布的设备中出现缺少组件的问题,我们则需要在目标设计器中添加该组件,然后重新生成和部署操作系统镜像到目标设备中。这对于已经批量发布的设备是非常致命的问题。现在在WES7中,有了DISM功能,我们可以直接在已发布的操作系统镜像中,通过光盘或者网络安装的方式,将未安装的组件添加到已发布的操作系统中。 - WES7 镜像构建过程
在WES7中,构建一个操作系统镜像有两种方式:
9.1 通过IBW的光盘直接在目标设备上进行安装,安装的过程中会自动识别目标设备的硬件信息,同时安装驱动程序,安装过程中也可以使用WES7预置的模板进行安装,也可以自己选取要安装的功能包。整个部署过程类似于Windows 7操作系统的安装过程,非常简单,稍微具备计算机知识的人员就能操作。
9.2 通过ICE光盘在开发机上安装开发工具,安装完成后使用类似于目标设计器的ICE开发工具来进行操作系统镜像的开发。开发过程也类似于WES2009中的目标设计器,完成开发后会生成XML文件格式的系统配置文件,我们可以通过IBW光盘加载该配置文件完成WES7的最终部署,也可以通过ICE直接生成配置好的安装镜像,再通过该镜像完成WES7的最终部署。
WES7 新的嵌入式特性
WES7除了具有XPE\WES2009所有的嵌入式功能外,还提供了很多新的嵌入式功能。
-
EWF\FBWF (写过滤器)
1.1 构建可靠、可信的嵌入式操作系统
1.2 保护目标磁盘避免写入操作
1.3 允许在只读的媒体下启动
1.4 帮助降低Flash存储介质的损耗
1.5 在异常掉电的状态下保护磁盘和系统文件
1.6 通过HORM来缩短系统启动时间
1.7 有选择性的控制文件写入原始磁盘
1.8 使文件交换的操作在内存中完成,有效的提高系统效率该功能不用多讲了,在我以往的文章中已经反复的描述了关于写过滤器的用法和原理。在WES7中,我需要强调一点的就是,WES7中的FBWF功能修正了XPE\WES2009中FBWF的的一个重要bug,就是WES7中的FBWF会随着覆盖层中的文件删除,自动的释放覆盖层空间。这对于内存的容量控制将起到至关重要的优化。举个例子,如果我们通过FBWF保护了C盘,那么当我们在C盘上拷贝一个100M的文件时,FBWF将在覆盖层中建立这个文件,换句话说,内存中将会损耗100M的空间用于存放这个文件。当我们再次拷入一个200M的文件,覆盖层中将会再次损耗200M的空间用于存放这个文件。这时,如果我们在C盘中删除这两个文件,那么意味着覆盖层中也将释放这两个文件,即内存的300M空间将被回收。但是在以往XPE\WES2009的设计中,覆盖层只是记录了删除这两个文件的动作,其实这两个文件并没有从覆盖层中删掉,所以内存的300M空间也不会被释放。这样将导致如果我们频繁的拷贝删除文件,覆盖层(内存)将很快被耗尽。现在在WES7中已经彻底解决这个问题,随着文件被删除,覆盖层(内存)也将被释放。所以,这是WES7中关于写过滤器最大的一个改进。下面这张图将描述写过滤器的工作原理:
-
Register Filter (注册表过滤器)
注册表过滤器和写过滤器的原理基本相同,区别在于注册表过滤器保护的是注册表中的某些键值不能被写入,这样可以有效地防止恶意的写入操作,从而保证系统的安全性和稳定性。下图描述了注册表过滤器的工作原理:注册表过滤器的读写原理:
注册表过滤器的提交操作原理:
-
HORM (Hibernate Once Resume Many)
3.1 结合EWF和Hibernate的休眠技术
3.2 每次重启都从相同的hiberfil.sys文件引导
3.3 显著的系统启动时间改进 (35s - 15s)
3.4 EWF RAM 或 RAM-REG 仅支持启动分区保护
3.5 所有的分区必须均被EWF保护
3.6 非保护分区或卷必须被卸载
3.7 支持断电,关机,重启下的休眠启动 -
USB\CD 引导启动
4.1 支持Windows从可移动磁盘启动( Removable USB Mass Storage devices)
4.2 设计成基于写过滤器的启动(EWF & FBWF)
4.3 不支持: paging, crash dumps, hibernate
4.4 统一的HAL保证在所有的硬件平台上正常启动
4.5 有效的降低 Flash 存储器的损耗 -
自定义的Shell和启动界面
在XPE\WES中,微软从授权上允许OEM更改操作系统的启动画面和商标,但是没有提供官方的修改方法。我在我的博客中提供了一些可以修改启动界面的办法。但是现在在WES7中,微软提供了官方的解决方案去修改启动画面和登录界面。通过修改启动界面和自定义外壳,我们可以构建出一个无品牌的启动界面,定制的登陆桌面面背景图像以及Shell Launcher。具体修改的方式我在后面的文章中将用一个专题来进行描述。下图是WES7中修改前和修改后的登录界面对比:
-
消息框\对话框自动回复
在WES 2009中,微软提供了消息框自动回复功能(Messagebox Auto Reply),该功能用于屏蔽所有Windows自动弹出的对话框,这样可以使设备在无人值守的情况下正常运行和显示。尤其适用于自动服务终端和数字看板平台。例如在机场的航班时刻表,如果有异常错误的对话框弹出的话,又无人去看守,设备就会一直呈现这个对话框,从而使用户体验变的非常糟糕。现在在WES7中,除了具有原来的消息框自动回复功能(Messagebox Auto Reply)外,还新增了对话框过滤器(Dialog Filter),该功能可以使我们设置需要屏蔽的系统对话框,屏蔽的依据是根据我们设置的条件来进行过滤的,符合设置条件的系统对话框将被屏蔽。而相关的提示信息会转记到系统日志中去。以下是对话框过滤器的界面截图: -
DISM (Deployment Image Servicing and Management)
7.1 WES7 中以 包的方式整合系统功能
7.2 每一个包都被Microsoft签名过,而且是可以被服务更新的
7.3 DISM 可以通过在线或者离线的方式更新系统功能包DISM是WES7中一个非常有用的新功能,以往我们使用XPE\WES2009的时候,如果我们已发布的设备中出现缺少组件的问题,我们则需要在目标设计器中添加该组件,然后重新生成和部署操作系统镜像到目标设备中。这对于已经批量发布的设备是非常致命的问题。现在在WES7中,有了DISM功能,我们可以直接在已发布的操作系统镜像中,通过光盘或者网络安装的方式,将未安装的组件添加到已发布的操作系统中。关于DISM的具体使用方法在后续的文章中将会详细介绍。
-
系统引导
8.1 USB Boot – 支持USB 2.0启动
8.2 VHD Boot – 支持脱离父操作系统的直接引导,即通过重启直接进入虚拟硬盘上的操作系统
8.3 SD Boot - 支持Flash介质的存储器引导
8.4 Virtual PC 7 - 支持基于Virtual PC 7的引导启动 -
Meida Center
Meida Center整合了图片,视频,电视,网络,应用程序,音乐,网络视频等多媒体应用的媒体中心。该功能是WES7提供的新的特性,非常适用于机顶盒,互联网电视及IPTV等设备的构建。是WES7中的一个重要功能。如果大家有兴趣的话,并且你的机器又安装Windows 7操作系统,那么赶紧点开开始菜单->Media Center去体验一下吧。 😃 -
Direct Computer
如果说WES7在内存优化,启动速度和操作界面上都做了很大的改进,那么其实在图形图像处理上,WES7的改进更为明显。最主要的体现为,WES7支持了DirectX 11,新增了Direct Computer的功能。那么什么是Direct Computer呢?简单点来说Direct Computer就是微软将图形厂商的不同图形加速技术进行了抽象,提供了统一的编程接口来方便OEM或者开发人员开发图形加速程序。举个例子,nVidia的图形加速技术是Cuta, ATI的图形加速技术是FileStream,那么我们开发的应用程序如果针对这两个技术编程,移植性就会非常差。如果我们针对Cuta技术编程,那应用程序就不能用到ATI显卡的加速技术。我们总不能对不同的显卡厂商编制不同的程序吧。现在有了Direct Computer技术,我们就不用担心了,因为WES7已经帮我们做到了统一接口的工作。
相关参考资料:
产品介绍 http://www.microsoft.com/windowsembedded/en-us/products/westandard/futureversion.mspx
测试版(RC)下载 http://www.microsoft.com/windowsembedded/zh-cn/products/westandard/default.mspx
MSDN 嵌入式中文论坛 http://social.msdn.microsoft.com/Forums/en-US/category/embeddedwindows/
团队博客
英文 http://blogs.msdn.com/embedded/
中文 http://blogs.msdn.com/embeddedchina/default.aspx
参加网络广播 https://swrt.worktankseattle.com/webcast/2672/preview.aspx