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

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

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

版本 

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

功能 
停产前最新的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);

參見 
 微軟操作系统列表

參考文獻 

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