Information Science    
   
Table of contents
(Prev) Windows CardSpaceWindows Color System (Next)

Windows CE

Windows CE
Windows Embedded 7 logo
WindowsCE7.png
Company / developerMicrosoft
Programmed inC[1]
OS familyWindows CE
Source modelClosed source (shared source kernel[2])
Initial release16 November 1996; 16 years ago (1996-11-16)
Latest stable release7.0 / 1 March 2011; 2 years ago (2011-03-01)
Available language(s)Multilingual
Supported platformsx86, MIPS, ARM, (SuperH[3] up to 6.0 R2)
Kernel typeMonolithic
Hybrid
LicenseMS-EULA
Official websiteWindows CE

Microsoft Windows CE (now officially known as Windows Embedded Compact and previously also known as Windows Embedded CE,[4][5] and sometimes abbreviated WinCE) is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows.[6] It is not to be confused with Windows Embedded Standard which is an NT-based componentized version of desktop Microsoft Windows.

Microsoft licenses Windows CE to OEMs and device makers. The OEMs and device makers can modify and create their own user interfaces and experiences, with Windows CE providing the technical foundation to do so.

The current version of Windows Embedded Compact supports Intel x86 and compatibles, MIPS, and ARM processors.

Contents

Features

Windows CE is optimized for devices that have minimal storage; a Windows CE kernel may run in under a megabyte of memory. Devices are often configured without disk storage, and may be configured as a "closed" system that does not allow for end-user extension (for instance, it can be burned into ROM). Windows CE conforms to the definition of a real-time operating system, with a deterministic interrupt latency. From Version 3 and onward, the system supports 256 priority levels[7] and uses priority inheritance for dealing with priority inversion. The fundamental unit of execution is the thread. This helps to simplify the interface and improve execution time.

Microsoft has stated that the "CE" is not an intentional initialism, but many people believe CE stands for "Consumer Electronics" or "Compact Edition". Microsoft says the letters instead imply a number of Windows CE design precepts, including "Compact, Connectable, Compatible, Companion, and Efficient."[8] The first version—known during development under the code name "Pegasus"—featured a Windows-like GUI and a number of Microsoft's popular applications, all trimmed down for smaller storage, memory, and speed of the palmtops of the day.

Since then, Windows CE has evolved into a component-based, embedded, real-time operating system. It is no longer targeted solely at hand-held computers.[9] Many platforms have been based on the core Windows CE operating system, including Microsoft's AutoPC, Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2003 SE, Windows Mobile 5.0, Windows Mobile 6, Smartphone 2002, Smartphone 2003, Portable Media Center, Zune, Windows Phone and many industrial devices and embedded systems. Windows CE even powered select games for the Dreamcast, was the operating system of the Gizmondo handheld, and can partially run on modified Xbox game consoles.

A distinctive feature of Windows CE compared to other Microsoft operating systems is that large parts of it are offered in source code form. First, source code was offered to several vendors, so they could adjust it to their hardware. Then products like Platform Builder (an integrated environment for Windows CE OS image creation and integration, or customized operating system designs based on CE) offered several components in source code form to the general public. However, a number of core components that do not need adaptation to specific hardware environments (other than the CPU family) are still distributed in binary only form.

Development tools

Visual Studio

Microsoft Visual Studio 2008 and earlier support projects for Windows CE / Windows Mobile, producing executable programs and platform images either as an emulator or attached by cable to an actual mobile device. A mobile device is not necessary to develop a CE program. The .NET Compact Framework supports a subset of the .NET Framework with projects in C#, and VB.NET, but not Managed C++. "Managed" applications employing the .NET Compact Framework also require devices with significantly larger memories (8 MB or more) while unmanaged applications can still run successfully on smaller devices. In Visual Studio 2010, the Windows Phone Developer Tools are used as an extension, allowing Windows Phone 7 apps to be designed and tested within Visual Studio.

Free Pascal and Lazarus

Free Pascal introduced the Windows CE port in Version 2.2.0, targeting ARM and x86 architectures. Later, the Windows CE header files were translated for use with Lazarus, a rapid application development (RAD) software package based on Free Pascal. Windows CE applications are designed and coded in the Lazarus integrated development environment (IDE) and compiled with an appropriate cross compiler.[10]

Platform Builder

This programming tool is used for building the platform (BSP + Kernel), device drivers (shared source or custom made) and also the application. This is a one step environment to get the system up and running. One can also use Platform Builder to export an SDK (software development kit) for the target microprocessor (SuperH, x86, MIPS, ARM etc.) to be used with another associated tool set named below.

Others

The Embedded Visual C++ (eVC) — a tool for development of embedded applications for Windows CE. It can be used standalone using the SDK exported from Platform Builder or using the Platform Builder's Platform Manager connectivity setup.

CodeGear Delphi Prism — runs in Visual Studio, also supports the .NET Compact Framework and thus can be used to develop mobile applications. It employs the Oxygene compiler created by RemObjects Software, which targets .NET, the .NET Compact Framework, and Mono. Its command-line compiler is available free of charge.

Basic4ppc — a programming language similar to Visual Basic — targets the .NET Compact Framework and supports Windows CE and Windows Mobile devices.

GLBasic — a very easy to learn and use BASIC dialect that compiles for many platforms, including Windows CE and Windows Mobile. It can be extended by writing inline C/C++ code.

LabVIEW — a graphical programming language, supporting many platforms, including Windows CE.

AutoHotkey — a port of the open source macro-creation and automation software utility available for Windows CE. It allows the construction of macros and simple GUI applications developed by systems analyst Jonathan Maxian Timkang.[11]

Relationship to Windows Mobile, Pocket PC, and SmartPhone

Timeline of Windows CE Development

Often Windows CE, Windows Mobile, and Pocket PC are used interchangeably, in part due to their common origin. This practice is not entirely accurate. Windows CE is a modular/componentized operating system that serves as the foundation of several classes of devices. Some of these modules provide subsets of other components' features (e.g. varying levels of windowing support; DCOM vs COM), others which are separate (Bitmap or TrueType font support), and others which add additional features to another component. One can buy a kit (the Platform Builder) which contains all these components and the tools with which to develop a custom platform. Applications such as Excel Mobile/Pocket Excel are not part of this kit. The older Handheld PC version of Pocket Word and several other older applications are included as samples, however.

Windows Mobile is best described as a subset of platforms based on a Windows CE underpinning. Currently, Pocket PC (now called Windows Mobile Classic), SmartPhone (Windows Mobile Standard), and Pocket PC Phone Edition (Windows Mobile Professional) are the three main platforms under the Windows Mobile umbrella. Each platform uses different components of Windows CE, plus supplemental features and applications suited for their respective devices.

Pocket PC and Windows Mobile are Microsoft-defined custom platforms for general PDA use, consisting of a Microsoft-defined set of minimum profiles (Professional Edition, Premium Edition) of software and hardware that is supported. The rules for manufacturing a Pocket PC device are stricter than those for producing a custom Windows CE-based platform. The defining characteristics of the Pocket PC are the touchscreen as the primary human interface device and its extremely portable size.

CE v3.0 is the basis for Pocket PC 2002. A successor to CE v3.0 is CE.net.[12] "PocketPC [is] a separate layer of code on top of the core Windows CE OS... Pocket PC is based on Windows CE, but it's a different offering." And licensees of Pocket PC are forbidden to modify the WinCE part.[13]

The SmartPhone platform is a feature-rich OS and interface for cellular phone handsets. SmartPhone offers productivity features to business users, such as email, and multimedia abilities for consumers. The SmartPhone interface relies heavily on joystick navigation and PhonePad input. Devices running SmartPhone do not include a touchscreen interface. SmartPhone devices generally resemble other cellular handset form factors, whereas most Phone Edition devices use a PDA form factor with a larger display.

Versions

VersionChanges
1.0Released November 18, 1996.[14] Codename "Alder".[15]

1.01 version(1.0a) — added Japanese language support.

2.0Released September 29, 1997.[16] Codename "Birch".[15]
  • Devices named "Palm-sized PC"[12]
  • Real-time deterministic task scheduling
  • Architectures: ARM, MIPS, PowerPC, StrongARM, SuperH and x86
  • 32-bit color screens
  • SSL 2.0 and SSL 3.0

2.11 version(Palm-Size PC 1.1) — changed screen resolution to QVGA, added handwriting recognition.

2.11 version(Palm-Size PC 1.2) — based on Windows CE H/PC 2.11 kernel, removed Pocket Office.

HandeldPC 2.11 version(HandheldPC Professional) — added small versions of Microsoft Access, improved MS Office documents formats support.

3.0Released June 15, 2000.[17] Codename "Cedar".[15]
  • Major recode that made CE hard real time down to the microsecond level
  • Base for the Pocket PC 2000, Handheld PC 2000, Pocket PC 2002 and Smartphone 2002[12]
  • Priority levels was increased from 8 to 256[12]
  • Object store was increased from 65,536 to 4.19 million allowed objects[12]
  • Restricted access to critical APIs or restricting write access to parts of the registry[12]
4.xReleased January 7, 2002.[18] Codename "Talisker/Jameson/McKendric".[15]
  • Integrated with .NET Compact Framework
  • Driver structure changed greatly, new features added
  • Since .net 4.2 system uses a new shell with integrated Internet Explorer
  • Base for "Pocket PC 2003"[12]
  • Flash memory and Bluetooth support[12][19]
  • HID devices and standardized keyboards support
  • TLS (SSL 3.1), IPsec L2TP VPN, or Kerbero[12]
  • Pocket Office has been reduced to Wordpad
  • Separation to two editions — Core(only shell) and Professional(with Microsoft Accessories)
  • Exept from standard PocketIE browser, it is available a Internet Explorer version, which is compatible with IE 5.5 almost in 100%

Windows CE.NET 4.2 — is available(unofficially) on Microsoft Xbox Community.

5.xReleased in August 2004.[15] Adds many new features. Codename "Macallan"[15]
  • Added automatic report of bugs to the manufacturer[20]
  • Direct3D Mobile, a COM-based version of Windows XP's DirectX multimedia API[20]
  • DirectDraw for 2D graphics and DirectShow for camera and video digitisation support[20]
  • Remote Desktop Protocol (RDP) support[21]
  • In this version Wordpad has been eliminated too
  • But in "Pro" version has been installed pack that contains IE browser and Windows Media Player 9
6.0Released in September 2006. Codename "Yamazaki".[15]
  • Process address space is increased from 32 MB to 2 GB[22]
  • Number of processes has been increased from 32 to 32,768[23]
  • User mode and kernel mode device drivers are possible
  • 512 MB physically managed memory
  • Device.exe, filesys.exe, GWES.exe has been moved to Kernel mode
  • Cellcore
  • SetKMode and set process permissions not possible
  • System call performance improved[24]
7.0
Windows Embedded Compact 7
Released in March 2011.
  • Multi-core CPU support (SMP)
  • Wi-Fi Positioning System
  • Bluetooth 3.0 + HS support
  • DLNA (Digital Living Network Alliance)
  • DRM technology
  • Media Transfer Protocol
  • Windows Phone 7 IE with Flash 10.1 support
  • NDIS 6.1 support
  • UX C++ XAML API using technologies like Windows Presentation Foundation and Silverlight for attractive and functional user interfaces
  • Modernized graphics based on OpenGL ES 2.0
  • Advanced touch and gesture input
  • Kernel support for 3 GB physical RAM and supports ARMv7 assembly[25]

See also

Portal iconComputing portal

Notes and references

  1. ^ "Special Report: Windows CE 6 arrives with 100% kernel source". windowsfordevices.com. 2006-11-01. http://www.windowsfordevices.com/c/a/ News/Special-Report-Windows-CE-6-arri ves-with-100-kernel-source. Retrieved 2011-07-20.
  2. ^ Microsoft opens full Windows CE kernel source. Linux Devices' article(Nov. 01, 2006).
  3. ^ "Windows CE overview". Archived from the original on 28 May 2011. http://web.archive.org/web/2010052814 4239/http://www.emacinc.com/operating _systems/windows_ce.htm.
  4. ^ "Microsoft renames Windows CE, sets CE 6.0 launch date". windowsfordevices.com. 2006-09-22. http://www.windowsfordevices.com/news /NS5452934855.html. Retrieved 2011-07-20.
  5. ^ "Windows Embedded Homepage". Microsoft.com. http://www.microsoft.com/windows/embe dded/default.mspx. Retrieved 2010-11-14.
  6. ^ "How does Windows Embedded CE 6.0 Start? - Windows CE Base Team Blog - Site Home - MSDN Blogs". Blogs.msdn.com. 2007-12-18. http://blogs.msdn.com/b/ce_base/archi ve/2007/11/26/how-does-windows-embedd ed-ce-6.0-start_3f00_.aspx. Retrieved 2010-11-14.
  7. ^ "Priority Levels". Msdn.microsoft.com. http://msdn.microsoft.com/en-us/libra ry/bb202761.aspx. Retrieved 2010-11-14.
  8. ^ "The Meaning of "CE" in Windows CE". Q166915. Microsoft. 2002-09-03. http://support.microsoft.com/default. aspx?scid=kb;EN-US;Q166915. Retrieved 2006-09-15.
  9. ^ "Embedded Platform | Integrated Development Environment (IDE) | Windows CE". Microsoft.com. http://www.microsoft.com/windowsembed ded/en-us/products/windowsce/technica l-specifications.mspx. Retrieved 2010-11-14.
  10. ^ WinCE port - Lazarus wiki
  11. ^ [1] — AutoHotkeyCE
  12. ^ a b c d e f g h i j Pöhls, Henrich C. (2003-09-05), "Risk Analysis of Mobile Devices with Special Concern of Malware Contamination" (PDF), Diploma Thesis (University of Hamburg): p. 27, http://www.2000grad.com/papers/dpa_he nrich_poehls.pdf, retrieved 2009-10-24
  13. ^ Smith, Tony (2003-04-16). "Why Pocket PC isn't WinCE". The Register. http://www.theregister.co.uk/2003/04/ 16/why_pocket_pc_isnt_wince. Retrieved 2009-10-24.
  14. ^ "Microsoft Announces Broad Availability of Handheld PCs With Windows CE". Microsoft News Center. 1996-11-18. http://www.microsoft.com/presspass/pr ess/1996/Nov96/wincepr.mspx. Retrieved 2011-06-20.
  15. ^ a b c d e f g Hall, Mike (2006-09-19). "Windows Embedded Blog: CE 6.0 - why the codename "Yamazaki" ?". MSDN Blogs. http://blogs.msdn.com/mikehall/archiv e/2006/09/19/763146.aspx. Retrieved 2009-10-24.
  16. ^ "Microsoft Announces Release of Windows CE 2.0". Microsoft News Center. 1997-09-29. http://www.microsoft.com/presspass/pr ess/1997/Sept97/WINCE2PR.mspx. Retrieved 2011-06-20.
  17. ^ "Microsoft Announces Availability of Windows CE 3.0". Microsoft News Center. 2000-06-15. http://www.microsoft.com/presspass/pr ess/2000/Jun00/CELaunchPR.mspx. Retrieved 2011-06-20.
  18. ^ "Microsoft Launches Windows CE .NET". Microsoft News Center. 2002-01-07. http://www.microsoft.com/presspass/pr ess/2002/jan02/01-07CENetLaunchPR.msp x. Retrieved 2011-06-20.
  19. ^ Walker, Geoff (2002-01-07). "Windows CE .net — Microsoft's successor to Windows CE 3.0". Pen Computing Magazine. http://www.pencomputing.com/WinCE/dot net.html. Retrieved 2009-10-24.
  20. ^ a b c Smith, Tony (2004-03-29). "MS readies WinCE 5.0 preview". The Register. http://www.theregister.co.uk/2004/03/ 29/ms_readies_wince. Retrieved 2009-10-24.
  21. ^ "The History of the PDA" (DOC). http://seditaville.com/academic/summa ry/The%20History%20of%20Microsoft%20M obile%20OS(Ver%202).doc. 090517 seditaville.com
  22. ^ "Windows Embedded CE 6.0 Advanced Memory Management". http://msdn.microsoft.com/en-us/libra ry/bb331824.aspx. Retrieved 2011-05-25
  23. ^ "Introduction to Microsoft embedded technologies - Session 1" (PPT). http://www.embedded.net.nz/Presentati ons%20PPT%20%20PDF/Embedded%20Introdu ction%20-%20Session%201.ppt. 090517 embedded.net.nz
  24. ^ Babu, K. Ashok (2006-11-22). "Differences between Windows CE 5.0 and Windows CE 6.0". WindowsForDevices.com. http://www.windowsfordevices.com/arti cles/AT9457847627.html. Retrieved 2009-10-24.
  25. ^ Veerabahu, Maharajan (2010-12-24). "Comparison between Windows Embedded Compact 7 (WEC7) and Windows CE 6". e-consystems.com. http://www.e-consystems.com/WindowsCE 6vs7.asp. Retrieved 2010-12-24.

External links

(Prev) Windows CardSpaceWindows Color System (Next)