WinCE的历史(转)
WindowsCE为微软研发的嵌入式操作系统,可以应用在各种嵌入式系统,或是硬件规格层次较低的计算机系统(例如很少的存储器,较慢的中央处理器等)。微软并未定义CE缩写由来,一般解释则有Compact Edition、Customer Embedded、ConsumerElectronics等等。在2008年4月15日举行的嵌入式系统大会上,微软宣布将Windows EmbeddedCE系列更名为Windows Embedded Compact,与Windows Embedded Enterprise、WindowsEmbedded Standard和Windows Embedded POSReady组成Windows Embedded系列产品。
概览
Windows CE 1.0最早于1996年推出,是单色的Windows 95简化版本。1997年Fall Comdex大会上公布的Windows CE 2.0仍是基于Win95的操作系统,效率远高于1.0版。Windows CE 3.0是微软的WindowsCompact Edition,已摆脱旧有的Windows 95简化格式,是一套全新的操作系统,支持5种 CPU:x86, PowerPC,ARM, MIPS, SH3/4。并且改名为 Windows for Pocket PC,简称 PocketPC。2002年1月微软又推出Windows CE.Net,即Windows CE 4.0。2004年5月份推出Windows CE5.0,开放有250万行源代码。2006年11月,微软推出Windows Embedded CE 6.0。
Windows CE可以使用在各式各样的系统上,最有名的是PocketPC以及微软的SmartPhone。其他较不为人知的设备包括微软的车用计算机、机上盒、生产在线的控制设备、公共场所的信息站(Kiosk)、电子辞典及导航机等等,有些设备甚至没有任何人机界面。
Windows CE并非从台式机的Windows(NT,98,XP...)修改缩小而来,而是使用一套完全重新设计的内核,所以它可以在功能非常有限的硬件上运行。虽然内核不同,但是它却提供了高度的Win32API软件开发界面的兼容性,功能有内存管理、文件操作、多线程、网络功能等。因此,开发台式机软件的人可以很容易编写甚或直接移植软件到WindowsCE上。
一个与其他微软操作系统的差异是 Windows CE 提供源代码,首先已经提供了源代码给部分厂商,让厂商能够依照他们自己的硬件架构修改源代码,例如在 Windows CE 的开发 IDE 软件 Platform Builder中就提供了许多开放原码的常用软件元件,但是一些与硬件架构的软件元件仍然以二进制文件形式来提供。
版本
Windows CE 1.0是最早期的版本,非常不稳定,随着版本不断的释出,使得WinCE日趋稳定。
Windows CE 1.0(Pegasus)
Windows CE 2.0, 2.11, 2.12(Mercury)
Windows CE 3.0(Cedar)
Windows CE .NET(4.0, 4.1, 4.2)(Talisker)
Windows CE 5.0(Macallan)
Windows Embedded CE 6.0(Yamazaki)
最新功能
目前最新的Windows CE为Windows CE 6.0,这个版本在内核部分有很大的进步:
所有系统元件都由EXE改为DLL,并移到 kernel space.
全新设计的虚拟内存架构
全新的设备驱动程序架构,同时支持 User Mode 与 Kernel Mode 两种驱动程序。
突破只能运行 32 个工作元(process)的限制,可以运行 32768 个工作元。
每一工作元的的虚拟内存限制由32 M 增加到全系统总虚拟内存。
Platform Builder IDE 集成到 Microsoft Visual Studio 2005。
新的安全架构,确保只有被信任的软件可以在系统中运行。
UDF 2.5 文件系统。
支持 802.11i (WPA2)及 802.11e (QoS) 等无线规格,及多重 radio support.
支持 x86, ARM, SH4, MIPS 等各种处理器。
提供新的 Cellcore components 使系统在移动电话网络中更容易建立数据链接及激活通话。
在开发环境上,微软也提供兼容于.NET Framework的开发元件:.NET Compact Framework,让正在学习.NET或已拥有.NET程序开发技术的开发人员能迅速而顺利的在搭载Windows CE .NET系统的设备上开发应用程序。
用于掌上电脑Pocket PC以及智能手机Smart Phone上的Windows CE系统称为Windows Mobile,目前的最新版本为Windows Mobile 6.5。
开发工具
Windows CE 可支持 MFC,ATL,STL,COM,ActiveX,以及 .NET Compact Framework。开发工作可以分为:
Platform Builder: 这个工具是一个编译平台(BSP + 操作系统内核)、驱动程序以及应用程序,是一个可以做单部运行的开发环境,也可以用来传送 SDK 到目标平台再搭配另外一个下面的工具来使用。
Free Pascal and Lazarus: 版本 2.2.0 以后的 Free Pascal 都有 Windows CE 支持 (包括ARM 和 x86)。随后,Windows CE 头文件也被翻译,供 Lazarus(一个基于 Free Pascal的快速应用开发(RAD)软件包)使用。用户可以使用 Lazarus IDE 来设计 Windows CE应用程序,并通过交叉编译器(cross-compiler)生成用于 Windows CE 的可执行文件。
Embedded Visual C++(eVC)
这是一个用于开发基于 Windows CE 操作系统嵌入式应用程序的工具,这个工具可以使用由 Platform Builder 输出的 SDK。
Visual C++ 2005
限制
Windows CE 只支持 UNICODE,故char必须改为TCHAR, WCHAR。
Windows CE不支持重叠I/O。
WinCE的许多APIs功能都受限,如:CreateThread 函数在许多参数在Windows CE下都不支持,第1、2、5的参数值必须设为NULL或0。
************************
辨别 Windows CE, Windows XP Embedded 和 Windows Mobile
Windows CE 主要面向嵌入式开发,涉及硬件和底层的开发比较多,有很多工业级的设备,都是基于 Windows CE 的;Windows Mobile 主要面向移动计算的应用,用于智能手机和商用级的 Pocket PC 比较多,目前作为企业解决方案在移动领域的扩展;Windows XP Embedded 可以看成是 Windows XP 的可定制版本,目前我所了解的是,它在一些 POS 和银行终端应用比较多,它的优势是可以定制,企业可以根据自己的业务需要,将一些业务系统潜入到操作系统中,或者将一些 Windows 组件删除。