Windows Embedded Compact

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系列產品。

 概覽 
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。其他較不為人知的裝置包括微軟的车载电脑、机顶盒、生產線上的控制設備、公共場所的資訊站（）、電子辭典及导航仪等等，有些裝置甚至沒有任何人機介面。

Windows CE並非從桌上型電腦的Windows（NT，98，XP……）修改縮小而來，而是使用一套完全重新設計的核心，所以它可以在功能非常有限的硬體上執行。雖然核心不同，但是它卻提供了高度的Win32 API軟體開發介面的相容性，功能有内存管理、文件操作、多线程、网络功能等。因此，開發桌上型電腦軟體的人可以很容易編寫甚或直接移植軟體到Windows CE上。

一個與其他微軟作業系統的差異是Windows CE提供原始碼，首先已經提供了原始碼給部分廠商，讓廠商能夠依照他們自己的硬體架構修改原始碼， 例如在Windows CE的開發IDE軟體Platform Builder中就提供了許多開放原碼的常用軟體元件，但是一些與硬體架構的軟體元件仍然以二進制檔案形式來提供。

 版本 
800px|Timeline of Windows CE Development

 版本  改動 1.0  發佈於1996年11月[MSCE1]。 090517 2000grad.com代號Pegasus。 090517 blogs.msdn.com
使用該OS的設備被命名為「handheld PC」〈HPC〉。 2.0  發佈於1997年9月[MSCE2]。代號Mercury/Gryphon/Apollo/Alder/Alder EP/Birch/Birch SP2/Jupiter/Wyvern/Goldeneye。
以Palm-sized PC/Pocket PC為名的設備出現。
即時排程演算法。
支援系統架構：ARM，MIPS，PowerPC，StrongARM，SuperH及x86。
 32-bit彩色螢幕。
 SSL 2.0及SSL 3.0。 3.0  發佈於2000年六月[MSCE3]。代號Cedar。
針對核心進行重寫使CE的即時性推進至微秒層級。Talk:Microsoft Windows CE#Is Windows CE a trimmed down version of desktop Windows ??? 090517
 Pocket PC 2000，Pocket PC 2002及Smartphone 2002的基礎。
優先級數從8增加至256。
系統物件數從65 536增加至4億1900多萬。
使用特殊的APIs對系統進行存取，對登錄檔的寫操作也被限制在部分區域。 4.x  發佈於2002年1月。[MSCE4]。代號Talisker/Jameson/McKendric。
更改部份驅動結構并增加新功能。
以"Pocket PC 2003"為基礎。
提供藍牙支持。 090517 pencomputing.com
支持TLS（SSL 3.1），IPsec L2TP VPN、Kerberos。 5.0  發佈于2004年8月。新增了許多功能。代號"Macallan".
自動向生產商發送錯誤報告。 090517 theregister.co.uk
移動式Direct3D，一個基於COM的Windows XP DirectX多媒體API版本。
 2D圖形DirectDraw和攝像頭與影片的DirectShow數字化支持。
支持Remote Desktop Protocol（RDP）。 090517 seditaville.com 6.x  發佈於2006年9月。代號"Yamazaki".
進程地址空間從32 MB增加至1 GB
進程數目從32增加至768 090517 embedded.net.nz
可以使用用戶模式和內核模式的設備驅動。
 Device.exe, filesys.exe, GWES.exe被轉移至內核模式中。
 SetKMode and set process permissions not possible.
增強系統調用的性能。 090517 windowsfordevices.com 7.x  7.0 發佈於2010年10月。7.5 發佈於2011年9月
詳見Windows Phone 7
雙核心處理器支援（SMP、ARMv6）
WIFI定位系統
藍牙3.0 + HS
Cellcore
DLNA（數位生活網路聯盟）
數位版權管理
媒體傳輸協議
IE8 Rendering Rich Media Plug-Ins
NDIS 6.1支援
UX C++ XAML API如使如Windows Presentation Foundation和Silverlight的用戶界面
更佳觸摸和手勢輸入

CE v3.0是Pocket PC 2002的基礎. CE v3.0的下代為CE.net. 
"PocketPC [是]核心Windows CE OS上的一整層程式... Pocket PC以Windows CE為基礎，但分發的方式不太一樣.". Pocket PC的使用證書禁止修改WinCE的程式. 090517 theregister.co.uk

 功能 
停产前最新的Windows CE為Windows CE 7.0，這個版本在核心部分支援：
缩略图|早期Windows CE
 雙核心處理器支援（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);

 參見 
 微軟操作系统列表

 參考文獻 

Category:Windows CE
Category:实时操作系统
Category:ARM操作系统