Computer appliance

From Wikipedia, the free encyclopedia

A TiVo digital video recorder represents a computer appliance.
A TiVo digital video recorder represents a computer appliance.

Computer appliance is an embedded system device that provides a narrow range of functions, and generally uses a dedicated hardware platform. Linux operating system is popular among many computer appliances.[1]

Contents

[edit] History

Traditionally, many computing functions were written as software applications running on top of a general-purpose operating system. The consumer (whether home computer user or the IT department of a company) bought a computer, installed the operating system or configured a pre-installed operating system, and then installed one or more applications on top of the operating system. An e-mail server was just an e-mail application running on top of Linux, Unix, Microsoft Windows, or some other operating system, on a computer that was not designed specifically for that application.

[edit] Types of appliances

Specialized applications have recently started to use a different model. Instead of installing firewall software on top of a general purpose computer/operating system, the engineers have built computers that are designed specifically for the task. This has taken four forms:

  1. The vendor builds an ASIC, so there is no separate "software" or operating system. The device has a limited interface, usually terminal console or web-based, to allow some basic configuration by the consumer. The manufacturer often has some way of accessing deeper configuration mechanisms.
  2. The vendor uses or creates a general-purpose computer, and designs a new operating system that integrates the application into the operating system. Cisco's IOS is an example; the Unix-like operating system has firewall functions and network/firewall configuration commands built into it. Sometimes, the device is also sealed, so the consumer has no access to reinstall the operating system or replace it with another operating system. The consumer may also be restricted to a small group of configuration commands, while the more detailed and lower level functions of the operating system are only available to the vendor. The more this "locked down" approach is carried out, the closer this type of device comes to appearing like an ASIC device.
  3. Off the shelf computers and operating systems are used, but the user interface and "box" are designed so the user cannot access anything on the computer, except for the application interface that the vendor has created. Since the underlying computing architecture is locked down and essentially invisible, it becomes difficult to discern that the device really functions on top of general purpose hardware and operating systems. Linux, and BSD to a lesser degree, has become the operating system of choice for this type of appliance. Recently the term software appliance has also been used to describe such a pre-packaged, black-box combination.
  4. The hardware itself has disappeared and become a so-called virtual appliance (also known as a virtual software appliance) using any one of a number of virtual machine technologies. Within this virtual machine is essentially the same stack of software plus operating system as in form 3).

Sometimes, these techniques are mixed. For example, a VPN appliance might contain a limited access software firewall running on Linux, with an encryption ASIC to speed up VPN access.

Some appliances are solid state, while others use a hard drive to load an operating system. Again, the two methods might be mixed -- an ASIC print server might allow an optional hard drive for job queueing, or a Linux-based device may encode Linux in firmware, so that a hard drive is not needed to load the operating system.

[edit] The term "appliance"

The term "appliance" came to be applied to these devices because of their similarity to home appliances. Home appliances are generally "closed and sealed" -- not serviceable by the owner; in computer appliances, the hardware box is usually sealed and not repairable or upgradeable to the user. Home appliances usually have a button or dial interface designed to allow the user to adjust its functions within a limited set of parameters; computing appliances have a limited user interface to configure the device within parameters allowed by the vendor, while underlying aspects of the device that support its function are only configurable by vendor technicians. A home appliance may have a motor, but the motor can only be used within the appliance's function, and not for other purposes; computer appliances that use a general purpose computer platform hide the operating system commands and functions from the user, and only expose the application interface.

[edit] Appliance examples

Some examples of computer functions that are often available as appliances are:

[edit] Other types of appliance

With the rise of software appliances, further examples now exist in both hardware-installable and virtual form factors:

  • MediaWiki appliance
  • Gallery appliance
  • Asterisk VOIP appliance

[edit] See also

[edit] References

  1. ^ Smith, Bob; Hardin, John A; Phillips, Graham; Pierce, Bill. Linux Appliance Design: A Hands-On Guide to Building Linux Appliances. No Starch Press, pp. xvii. ISBN 1-59327-140-9. Retrieved on 2008-05-06.