Windows CE or XPe?
Windows CE is now very much in line with Windows XP and therefore Windows XP Embedded. Do these changes to the underlying Windows CE kernel change the decision process for Windows CE vs. Windows XP Embedded?
Perhaps not, here’s why – Windows XP Embedded devices run on the x86 processor and PC Architecture hardware – this means that existing desktop drivers and applications can work with Windows XP Embedded without changes. This of course reduces time to market, typical Windows XP Embedded devices ship within 14 weeks. Minimal build sizes of Windows XP Embedded are 40MB and increase based on the components and technologies – a typical Windows XP Embedded image can be in the order of 300MB. Of course all technologies supported by Windows XP are also supported on Windows XP Embedded. If you have existing desktop applications or drivers Windows XP Embedded would appear to be the obvious choice (although, it is possible to port some desktop applications to Windows CE – this depends of course on the APIs and technologies you are using).
Windows CE 6 continues to be a small footprint (300kb+), componentized, hard real-time embedded operating system that runs on multiple processor cores, ARM, MIPS, x86, and SH4 – so developers have a choice of underlying hardware, this can reduce the overall bill of materials (BOM) for an embedded device, of course the choice of processor and hardware peripherals can also affect the battery life of handheld/mobile devices when compared with an x86 processor and PC Architecture hardware. Windows CE devices expose a subset of the full desktop API (and a subset of the .NET Framework called the .NET Compact Framework) – this means that desktop applications and device drivers are not supported on Windows CE (in their binary form) – at a minimum desktop applications will need to be ported to Windows CE or recompiled on Windows CE.
So, this being the case Windows CE 6 supporting 32K processes and 2GB Virtual memory certainly makes it possible for developers to build more complex/interesting applications and devices but there still exists a clear decsion path for developers to choose between Windows CE and Windows XP Embedded.
Windows CE (also known officially as Windows Embedded Compact or Windows Embedded CE post version 6.0, and sometimes abbreviated WinCE) is an operating system developed by Microsoft for minimalistic computers and embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop 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, while Windows CE provides the technical foundation to do so. It is not to be confused with Windows XP Embedded which is NT-based. Windows CE is supported on Intel x86 and compatibles, MIPS, ARM, and Hitachi SuperH processors.
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 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 it implies a number of Windows CE design precepts, including “Compact, Connectable, Compatible, Companion, and Efficient.” 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. 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 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.
Windows XP Embedded
Windows XP has been released in several editions since its original release in 2001. The first two editions released by Microsoft are Windows XP Home Edition, designed for home users, and Windows XP Professional, designed for business and power-users. Windows XP Professional offers a number of features unavailable in the Home Edition, including:
Windows XP Embedded is an edition of Windows XP that contains the full feature set of Windows XP Professional, but has restrictions on licensing that require the resulting device to boot directly into the original equipment manufacturer’s application. As of April 2008, this edition is marketed as part of the “Windows Embedded Enterprise” brand, which includes both this release and its successor, Windows Vista for Embedded Systems.
Windows XP Embedded, commonly abbreviated “XPe“, is a componentized version of the Professional edition of Windows XP. An original equipment manufacturer is free to choose only the components needed thereby reducing operating system footprint and also reducing attack area as compared with XP Professional. Unlike Windows CE, Microsoft’s operating system for portable devices and consumer electronics, XP Embedded provides the full Windows API, and support for the full range of applications and device drivers written for Microsoft Windows. The system requirements state that XPe can run on devices with at least 32MB Compact Flash, 32MB RAM and a P-200 microprocessor. XPe was released on November 28, 2001. As of October 2008, the newest release is Windows XP Embedded Service Pack 3.
The devices targeted for XPe have included automatic teller machines, arcade games, slot machines, cash registers, industrial robotics, thin clients, set-top boxes, network attached storage (NAS), time clocks, navigation devices, railroad locomotives, etc. Custom versions of the OS can be deployed onto anything but a full-fledged PC; even though XPe supports the same hardware that XP Professional supports (x86 architecture), licensing restrictions prevent it from being deployed on to standard PCs. However, Microsoft has made some exceptions to this rule, allowing XPe alongside a standard OEM install of Windows. Some Dell notebooks contain an embedded XP installation as part of the MediaDirect 2.0 feature, and they were also found on some Acer ones as well as the Samsung Q1.
Windows Embedded Standard 2009 succeeded XPe in 2H 2008. Windows Embedded Standard 2009 is derived from Windows XP Embedded since Microsoft at the time of its development did not have a componentized version of Windows Vista. Windows Embedded Standard 2009 includes Silverlight, .NET Framework 3.5, Internet Explorer 7, Windows Media Player 11, RDP 6.1, Network Access Protection, Microsoft Baseline Security Analyzer and support for being managed by Windows Server Update Services and System Center Configuration Manager.
Windows Embedded Standard 2011 will succeed Windows Embedded 2009 and will be a componentized version of Windows 7.