Windows Embedded Compact
Template:NoteTA 脚本错误:没有“Unsubst”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。 Windows Embedded Compact(曾被称为Microsoft Windows CE),为微软研发的嵌入式操作系统,可以应用在各种嵌入式系统,或是硬件规格较低的电脑系统(例如很少的记忆体,较慢的中央处理器等)。微软并未定义CE缩写由来,一般解释则有Compact Edition、Customer Embedded、Consumer Electronics等等。在2008年4月15日举行的嵌入式系统大会上,微软宣布将Windows CE更名为Windows Embedded Compact,与Windows Embedded Enterprise、Windows Embedded Standard和Windows Embedded POSReady组成Windows Embedded系列产品。[1]
概览[编辑]
Windows CE 1.0最早于1996年推出,是单色的Windows 95简化版本。
1997年Fall Comdex大会上公布的Windows CE 2.0仍是基于Win95的操作系统,效率远高于1.0版。
Windows CE 3.0是微软的Windows Compact Edition,已摆脱旧有的Windows 95简化格式,是一套全新的操作系统,支持5种CPU:x86、PowerPC、ARM、MIPS、SH3/4。并且改名为Windows for Pocket PC,简称Pocket PC。
2002年1月微软又推出Windows CE.Net,即Windows CE 4.0。
2004年5月份推出Windows CE 5.0,开放有250万行源代码。
2006年11月,微软推出Windows Embedded CE 6.0。
2010年10月,微软推出 Windows Phone 7,Windows Embedded Compact 7。
Windows CE可以使用在各式各样的系统上,最有名的是Pocket PC以及微软的SmartPhone。其他较不为人知的装置包括微软的车载电脑、机顶盒、生产线上的控制设备、公共场所的资讯站(Template:Langx)、电子辞典及导航仪等等,有些装置甚至没有任何人机界面。
Windows CE并非从台式电脑的Windows(NT,98,XP……)修改缩小而来,而是使用一套完全重新设计的核心,所以它可以在功能非常有限的硬件上执行。虽然核心不同,但是它却提供了高度的Win32 API软件开发界面的相容性,功能有内存管理、文件操作、多线程、网络功能等。因此,开发台式电脑软件的人可以很容易编写甚或直接移植软件到Windows CE上。
一个与其他微软操作系统的差异是Windows CE提供源代码,首先已经提供了源代码给部分厂商,让厂商能够依照他们自己的硬件架构修改源代码, 例如在Windows CE的开发IDE软件Platform Builder中就提供了许多开放原码的常用软件元件,但是一些与硬件架构的软件元件仍然以二进制档案形式来提供。
版本[编辑]
Timeline of Windows CE Development
| 版本 | 改动 |
|---|---|
| 1.0 | 发布于1996年11月[MSCE1]。[2]代号Pegasus。[3]
|
| 2.0 | 发布于1997年9月[MSCE2]。[2]代号Mercury/Gryphon/Apollo/Alder/Alder EP/Birch/Birch SP2/Jupiter/Wyvern/Goldeneye。[3] |
| 3.0 | 发布于2000年六月[MSCE3]。[2]代号Cedar。[3] |
| 4.x | 发布于2002年1月。[MSCE4]。[2]代号Talisker/Jameson/McKendric。[3] |
| 5.0 | 发布于2004年8月。[3]新增了许多功能。[4]代号"Macallan".[3] |
| 6.x | 发布于2006年9月。代号"Yamazaki".[3] |
| 7.x | 7.0 发布于2010年10月。7.5 发布于2011年9月 |
CE v3.0是Pocket PC 2002的基础. CE v3.0的下代为CE.net. [2] "PocketPC [是]核心Windows CE OS上的一整层程式... Pocket PC以Windows CE为基础,但分发的方式不太一样.". Pocket PC的使用证书禁止修改WinCE的程式.[10]
功能[编辑]
停产前最新的Windows CE为Windows CE 7.0,这个版本在核心部分支援:
- 双核心处理器支援(SMP、ARMv6)
- WIFI定位系统
- 蓝牙3.0 + HS
- Cellcore
- DLNA(数位生活网络联盟)
- 数位版权管理(DRM)
- 媒体传输协议(MTP)
- IE8 Rendering Rich Media Plug-Ins
- NDIS 6.1支援
- UX C++ XAML API如使如Windows Presentation Foundation和Silverlight的用户界面
- 更佳触摸和手势输入
在开发环境上,微软也提供相容于.NET Framework的开发元件:.NET Compact Framework,让正在学习.NET或已拥有.NET程式开发技术的开发人员能迅速而顺利的在搭载Windows CE .NET系统的装置上开发应用程序。
用于掌上电脑Pocket PC以及智能手机Smart Phone上的Windows CE系统称为Windows Mobile,目前成熟的最新版本为Windows 10 Mobile。
在2009年10月6日,Windows Mobile亦正式改名为Windows Phone.
开发工具[编辑]
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/2008/2010其中Platform Builder 6.0 for Windows Embedded CE被改写成Visual Studio 2005的一个插件。
限制[编辑]
- Windows CE为UNICODE操作系统,但char不必改为TCHAR,WCHAR,因为Windows CE也支援非Unicode编程。
- Windows CE不支援重叠I/O。
- WinCE的许多APIs功能都受限,如CreateThread函数在许多参数在Windows CE下都不支持,第1、2、5的参数值必须设为NULL或0。
HThread = CreateThread(NULL, 0, Thread, nParameter, 0, &dwThreadID);
参见[编辑]
参考文献[编辑]
- ↑ Template:Cite web
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 Template:Cite web 090517 2000grad.com
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Template:Cite web 090517 blogs.msdn.com
- ↑ 4.0 4.1 4.2 Talk:Microsoft Windows CE#Is Windows CE a trimmed down version of desktop Windows ??? 090517
- ↑ Template:Cite web 090517 pencomputing.com
- ↑ 6.0 6.1 6.2 Template:Cite web 090517 theregister.co.uk
- ↑ Template:Cite web脚本错误:没有“Unsubst”这个模块。 090517 seditaville.com
- ↑ Template:Cite web 090517 embedded.net.nz
- ↑ Template:Cite web 090517 windowsfordevices.com
- ↑ Template:Cite web 090517 theregister.co.uk
Template:NavboxV2 Template:Real-time operating systems Template:Embedded systems