Windows XP Embedded
Windows XP Embedded is the componentized version of Microsoft Windows XP Professional. You can find the XPe home page on MSDN. XPe is based on the same binaries as XP Pro, but XPe is marketed towards developers for OEMs, ISVs and IHVs that want the full Win32 API support of Windows but without the overhead of Professional. It runs existing Windows applications and device drivers off-the-shelf on devices with 32MB Compact Flash, 32MB RAM and a P-200 microprocessor.
XPe is not related to Windows CE. They target different devices and they each have their pros and cons which make them attractive to different OEMs for different types of devices. For instance, XPe will never get down to the small footprint that CE works in. However, CE doesn't have the Win32 APIs XPe has, nor can it run the tens of thousands of drivers and applications that already exist.
The devices targeted for XPe have included ATMs, cash registers, arcade machines, industrial robotics, thin clients, set top boxes, network area storage, 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 Pro supports (x86 architecture), licensing restrictions prevent you from deploying it to standard PCs.
The XPe Developers kit (also called Windows Embedded Studio) consists of:
- Embedded Development tools (Target Designer, Component Designer, etc.)
- A SQL database of all the component/binary/registry dependency information for XP Pro
- A repository of all the binaries that comprise the entire XP Pro OS
- Embedded Enabling Technologies (apps and drivers that allow Windows to run in embedded environments, these are a "Value Add" when compared to XP Pro)
The kit will allow the developer to customize the Windows OS by picking and choosing which of 1,000 Windows features and 9,000+ Windows drivers to include. The smallest bootable runtime you can create with most Win32 API support is about 4MB. Although this would not have a networking stack or video, it could perhaps be useful for a serial control device. As you add more windows features to the runtime, the number of dependencies increases which results in a larger "footprint". As an example, if you don't want Internet Explorer in the runtime, simply don't add the IE component to the configuration you build with the XPe development tools. If you do add IE to the configuration then all of its dependencies also come in to the configuration automatically which increases the ultimate size of the footprint.
The Primary development tools the developer uses the most are Target Designer and Component Designer. Target Designer (TD) is for adding, removing and tweaking various components in a configuration. With it one can display all the resources that are "owned" by the components in ones configuration, add Windows components (or custom hardware drivers or third party applications) and build a configuration which results in a bootable mini version of XP.
Component Designer is used to build or view custom components for third party apps or drivers, for converting INF based drivers to a format that can be imported into the SQL database along side all the Windows components.
XPe doesn't use Windows Setup. It uses a feature called First Boot Agent (FBA). Since most of the setup is done offline in Target Designer by prepopulating items such as registry keys, hardware information for PnP or custom shell settings and bin placing all files in advance, there is no need to go through the Windows XP Setup, so FBA is used to process the few items 'online' that couldn't be done 'offline' by Target Designer. After FBA is complete, the embedded device is ready for use or cloning or further customization.
Embedded Enabling Feature Descriptions
- BootPrep: A command-line utility that prepares media formatted for MS-DOS to boot to XPe instead. It basically modifies the Master Boot Record for Windows NT systems.
- Device Update Agent (DUA): A small footprint management utility that runs as a service on the local embedded device and enables remote servicing and updating of deployed Windows XP Embedded images. DUA can run scripts from the local machine or on remote machines on the internet or an intranet via HTTPS. This is just one solution that can be employed, and third party servicing schemes can be used in its place. It should be noted that the Windows Update web service used by XP Pro doesn't have the ability to recognize the XPe sku, so it's not helpful in servicing embedded devices.
- eConvert: This is a console app that is most commonly used to convert driver INFs to components.
- El Torito CD: Allows the Windows OS image to be booted and run from a CD-ROM.
- Enhanced Write Filter (EWF): Allows the OS to boot from any read-only media. This is not supported by the full versions of the Windows OS because it needs the ability to write to files. Media XPe is enabled to boot to using EWF are flash media, CD-ROM, or a protected hard drive; while maintaining the appearance of read/write access to the operating system. It protects the volume content on the target media volume by redirecting all writes to another storage location called an overlay.
- First Boot Agent: Infrastructure that does run-time configuration on behalf of components. Performs any run-time tasks that could not be authored offline with the Windows Embedded Studio tools. Currently, these tasks include security installation, catalog registration, Plug and Play detection, network configuration, dynamic-link library (DLL) registration, and profile initialization.
- Headless System: Some embedded devices require no video, keyboard or mouse hardware. While headless is supported by Windows XP Professional it's not as intuitive to configure and maintain.
- Language Packs: XPe supports 20+ languages and enables developers to easily localize the UI of an English runtime by simply applying the appropriate language pack. Note that this is referring to the runtimes that will be deployed to the embedded device, the Embedded suite of tools (TD, CD, etc...) are not localized, they are English only.
- Message Box Interception: Intercepts window messages on headless or unattended systems.
- Page File Disable: Ability to remove the system page file if the embedded design contains enough RAM to load all required services. This can result in improved performance and reduced footprint. Note: The page file is disabled by default in Windows XP Embedded.
- Power Management Control Library: Provides standard power management functionality. Provides you the ability to utilize the shutdown, restart, standby, and hibernate power management features even if the configuration does not include the standard Start menu user interface otherwise required to access power management functionality.
- Remote Boot: Provides the ability to download and boot an image from a server via the network. Also enables Windows XP Embedded devices to operate without persistent storage. Uses a RAMDISK.
- Softbus (SDI): Manages run-time images and provides the SDI driver, which enables you to create a file-backed virtual disk drive that can be used as a staging area for run-time images. When the drive is taken offline, an .sdi file holds the disk image. You can then remove a virtual drive and deploy the resulting .sdi file to your device.
- System Deployment Installation (SDI) Manager: Allows users to create, add and enable virtual disk drivers. With the SDI to Hard Drive (SDI2HD) tool, deploying updates can be done with via CD-ROM.
Categories: Windows