XP Embedded: The One That They Want?
May 1, 2002
On the other hand, during cross-examination government lawyers pointed out that Windows XP Embedded seems to consist precisely of Windows split into modular pieces. So, who is right?
An embedded operating system is one that is included with a dedicated piece of hardware. Cell phones, ATM machines, cash registers and network routers all have embedded operating systems.
Early embedded operating systems were quite specialized, though they have been gaining more and more of the functionality of end-user operating systems. A map kiosk at a car rental agency might be just a Web browser with a keyboard. After the release of Windows NT 4.0 in 1996, Microsoft (Nasdaq: MSFT) decided to create an embedded product based on that OS.
The company's goal was to reduce the default NT 4.0 requirements of 110 MB of disk space and 32 MB of memory. If an embedded system did not need CD-ROM support, for example, what code could be removed? And if it did need it, what code had to be kept?
A team separate from the main NT development group set about identifying the dependencies between various NT 4.0 "components." A component was defined as a single binary or group of binaries that implemented a particular function.
However, the embedded team did not do much modification of the code. If it was discovered that CD-ROM support required bringing in some code that had a dependency on some other code -- which might eventually require a lot more disk space -- then so be it.
The embedded team wrote only a few new pieces of code, including instructions to boot from ROM and run with no VGA adapter, as well as tools to bundle components into a final image known as a "target."
All this took awhile, and Windows NT Embedded was not released until 1999. After the release of Windows 2000, the main development team for Windows XP became responsible for maintaining its own component dependency lists.
One benefit was that Windows XP Embedded was broken into almost 10,000 components, rather than the 250 identified in Windows NT Embedded. And because the work of identifying components and dependencies was already done, XP Embedded shipped just a month after Windows XP.
Although the operating system's tools were improved and repackaged into Windows Embedded Studio, very few changes were made to the underlying XP code. An XP Embedded target with everything enabled is essentially the same as a standard Windows XP system.
So, what does this mean for the claim that Windows XP Embedded is the modular version of Windows that Microsoft says is impossible?
First of all, there may be bugs in the component dependency lists. Microsoft cannot test XP Embedded in all of its possible combinations. The expectation is that the manufacturer of an embedded device will test the target operating system it assembles.
It would be wrong to assume that an end user could custom-assemble his or her own system and have it work as reliably as the full product.
Second, the goal of XP Embedded is to create minimalized systems with a required functionality set. If a user wanted to remove a single application, such as Windows Media Player, XP Embedded could determine which other bits of code could be removed: those that are depended on by Media Player and nothing else.
But for an end-user system, nobody really cares about saving that extra bit of space, and the Windows Media Player binary in XP Embedded is the same as in Windows XP so it is no easier to identify and remove.
What is more, in a true embedded environment the user will not be able to install new applications. In fact, Gates pointed out that in an end-user operating system, removing those other binaries may break a third-party application that the user installs later.
More important, XP Embedded is designed to identify dependencies, not remove them. What if the binary you remove has other parts of the system that depend on it? Since Internet Explorer serves as the shell for Windows, it is likely that graphical applications like Windows Media Player and MSN Messenger have dependencies on it. It might be impossible to assemble a system that included Windows Media Player but not Internet Explorer.
XP Embedded components are no more or less dependent on each other than they are in the base Windows XP product. XP Embedded allows you to identify whether a component is free of dependencies; but if the answer turns out to be "no," you're stuck.
Although it appeared at first that Bill Gates was fudging when he said a modular Windows was impossible, closer inspection reveals that the true answer to that question remains unknown.
Adam Barr worked at Microsoft for over ten years before leaving in April 2000. His book about his time there, "Proudly Serving My Corporate Masters," was published in December 2000. He lives in Redmond, Washington. Adam can be reached in response to this column at firstname.lastname@example.org.