This white paper is targeted at developers who are new to Microsoft® Windows® XP Embedded and who want to get a better understanding of how to build a reliable Windows XP Embedded image on their x86 client device. The paper is divided into four sections. The first section provides an overview of the Windows XP Embedded operating system (OS) explaining the origins of its inherentreliability. The second section suggests some software engineering design practices that can be adopted to improve the reliability of a Windows XP Embedded build. The third section provides tips for improving reliability at several steps of the Windows XP Embedded build process (See Figure 1 below). Finally, the fourth section outlines several handy test utilities that can play a role in qualityassurance testing.
Figure 1. High-level overview of Windows XP Embedded build process (click thumbnail for larger image)
Windows XP Embedded Overview
Windows XP Embedded Code Base
Both Windows XP Embedded and Windows XP are built on the same stable code base of Microsoft Windows NT® and Windows 2000. This code base offers a protected memory model and preemptive multitasking, both of whichcontribute to system stability. Starting from this proven code base, Windows XP Embedded is fundamentally reliable starting at the kernel level.
The difference between the Windows XP desktop operating system and the Windows XP Embedded operating system is that Windows XP Embedded is modularized into components. Understanding the componentization of Windows XP Embedded is the key to deploying areliable Windows XP Embedded build.
The Windows XP Embedded Build Concept
The concept of a build is different for Windows XP Embedded than it is for embedded operating systems such as Windows CE .NET. With Windows XP Embedded, build means gathering the binary files, registry keys and other resources needed to support the functionality desired in the target device. For Windows CE .NET, build meansactually recompiling and linking the OS and applications.
Software Engineering Design Practices
Developers can employ several software engineering design practices that can have a major impact on reliability.
A major advantage of Windows XP Embedded is that developers can use off-the-shelf x86 based hardware for their client devices. This convenience saves time and money. Froma reliability standpoint, however, developers need to understand that device hardware is a key driver of device reliability. In the same vein, developers need to carefully choose third-party vendors providing other software drivers or applications. Developers should assess their vendors in five areas:
* Does the vendor hardware meet or exceed the target system requirements (that is, IntelPentium II or higher CPU, ACPI PnP basic input/output system (BIOS) support, peripheral component interconnect (PCI) 2.0 or higher support, 5 MB of storage media, 64 MB of RAM)?
* Does the hardware vendor have a focus on quality? What is their quality process? Are they involved with Microsoft's Windows Hardware Quality Lab (WHQL) program?
* Do the software vendors warranty their softwaredrivers or applications?
* Do the vendors offer responsive technical support?
* If a specialized piece of hardware or software has only one vendor and a technical issue arises, how responsive will the vendor be?
Following a development methodology that includes writing a software requirements document before starting indirectly contributes to the reliability of thefinal build. Building a Windows XP Embedded image is process of selecting and configuring components. For example, a requirements document that outlines how an end user will configure the target device will allow a developer to select the correct components to enable the correct features. A requirements document that outlines how the target device will be manufactured will assist a developer in...