In the light of recent events, such as the popularization of the Internet, it is reasonable to wonder whether the continued focus on computation is appropriate. The increasing emphasis on networking may indicate that communication, as opposed to computation will soon be the raison d'être of computers. As a matter of fact, a NIST report on the National Information Infrastructure (NII) rejected the term computer on the grounds that it puts too much emphasis on computation [71]. The report suggested the term information appliances be used instead for systems that support communication, information storage, and user interactions.
Intuitively, appliances are small, special-purpose, and often mobile devices such as remote controls, personal information managers, network-attached disks, cameras, displays, set-top boxes, embedded web-servers, and dedicated file-servers. Since there is no widely-accepted exact definition of the term information appliance, the remainder of this section conveys our vision of what the realm of appliances might be. The following section will then use this vision to make some predictions on the potential impact of the appliance paradigm on operating system design.
First, we observe that the ubiquity of communication networks is fueling an explosion in the number of appliances. Already, there are many network-attached devices such as printers, disks, thermometers, cameras, and filers (special purpose network file servers). A result of this explosive growth is that some appliances are taking over jobs that were traditionally served by general purpose machines. However, this is not to say that traditional computers will disappear completely: appliances serve a purpose that is mostly orthogonal to that of existing general purpose computers. The latter will therefore continue to have their place. Nevertheless, it is not unimaginable that the market penetration of information appliances will reach such a magnitude that, relatively speaking, traditional computer systems may look like niche products.
Another aspect that refines the realm of appliances is ease-of-use. To paraphrase Joel Birnbaum [9]: just like automobiles, telephones, or television sets, information appliances are more noticeable by their absence than their presence. Without a doubt, the ease-of-use of general purpose computers has improved significantly over the past decade, but it is not even close to the point where general purpose computers could be considered appliances. Besides the ease-of-use aspect of appliances, there are technical characteristics that set them apart from traditional, general-purpose computers:
Unlike for traditional computers, the software installed in deployed appliances will change infrequently. This is both a consequence of the ease-of-use requirement of appliances and their ubiquity. Who would want to worry about upgrading the software in their light-switches? With dozens of appliances per house-hold, even moderate rates of (manual) upgrades could impose an undue burden on the owner or maintainer. Some appliances will want to make provisions for executable content, e.g., by providing a secure virtual machine, but even so the native software of an appliance remains relatively fixed.
For example, at one end of the spectrum, a remote control unit may employ a commodity 4-bit processor with a reasonably large read-only memory (ROM) but only a few bytes of random-access memory (RAM). On the other end of the spectrum, a dedicated web-server may employ a high-performance CPU with several gigabytes of RAM and a terabyte disk-subsystem for caching-purposes.
Just as important, appliances will employ a wealth of different input/output (I/O) devices. Some appliances will use a relatively low-resolution touch-sensitive screen as the primary user-interaction device, others a traditional keyboard/monitor combination, while still others may have no user-interaction devices at all since they are controlled and operated completely through the communication network.