Say the word “computer” and most people think of the machine on their desktop-a machine they love, hate, or a little of both. But that notion of computer is going the way of the Univac: less than one-tenth of one percent of all computing devices today have Intel inside, or run Windows. The computers that are having the biggest impact on our lives are the ones embedded in thousands of pieces of equipment that surround us every day. These are the devices that tell our antilock brakes when to unlock. They manage factory automation systems. They tell Tickle Me Elmo when he’s being tickled. Soon they will allow our home appliances to diagnose their own malfunctions, and will even call and order their own replacement parts before they fail. These new computers will eventually make a stand-alone desktop system look as anachronistic as the vacuum tube.But the little smart machines infiltrating our surroundings lack one thing that has made desktop computing so-well, so ordinary. The missing piece is a dominant operating system. Many contenders are already battling for dominance, and it looks as though the proponents of open-source software have a chance to vanquish Microsoft. In some respects, though, the future of “ubiquitous computing,” in which computing power is found in the common objects that pervade our environment, depends less on the particular winner of this battle than on there simply being a winner at all: a common standard that everyone can agree on.
Too Many Choices
For most casual computer users, the phrase “operating system” conjures up a mental image of the Microsoft Windows screen. But an operating system is not just an arrangement of windows and icons; it is the layer of software that coordinates all actions of the computer. The operating system interprets our inputs and translates them into commands that the hardware understands. In very simple embedded devices, these commands can be etched into the hardware itself (that is the case with the heat sensors in digital thermometers, for instance). But the fastest growing segment of the embedded devices market includes personal digital assistants, Internet-capable cell phones, and other Internet access devices, all of which need operating systems nearly as sophisticated as the one running your desktop computer. Which operating system will dominate these newer devices is still up for grabs.
Microsoft makes two operating systems for embedded devices. One is called Windows CE; the other, Windows NT Embedded. In what must be a humbling experience for the Great Software Monopoly in Redmond, WA, Microsoft’s offerings constitute mere slivers of a pie chart along with such geeky names as VxWorks, QNX Neutrino, LynxOS, pSOS and VRTX. In addition, in the last two years more than 40 companies, consortia and academic institutions have begun to distribute versions of Linux for use in embedded devices. As an open-source operating system, Linux is free of licensing costs, available to be downloaded over the Internet by anyone who wants to use it. Linux is sometimes called “free” software, both because of the absence of a licensing fee and because anyone has the right to tinker with the programming code to make it better. In addition to this crazy quilt of choices, nearly half of embedded-systems projects are run on operating systems that developers wrote themselves.
Choice is usually a good thing. Embedded computers, however, provide an exception to the rule. The multiplicity of options is splintering developer talent and making it more difficult to get devices to work together. Many of us have had the experience, for example, of trying to mail a document from a Windows PC to a Macintosh and having the apostrophes disappear; multiply that minor annoyance to imagine how multiple devices in your home of the future might fail to interact. A common operating system could jump-start the innovation process: developers would no longer need to learn a new operating system each time they began a project. Companies could count on hiring people who were already familiar with the operating system.
And all those high-tech gadgets would work together. This consistency is exactly what is needed for the move toward ubiquitous computing-a world where all manner of devices will work together and over the Internet. Your appliances and lighting fixtures of the future might be able to communicate with one another and to load-balance their energy requirements, for example. Or they could order replacement parts over the Internet before a failure occurred. Most of all, they would have a common interface that would save you from needing to relearn how to communicate with them every time you bought something new.