The term "embedded Linux®" can be used to describe any variant of the open source Linux® operating system running on an embedded computer system — a purpose-driven device or platform integrated into a larger overall product such as a consumer electronics device or piece of equipment. The modular architecture of the Linux® kernel along with support for a wide variety of microprocessors and other types of hardware has made the system popular in embedded computing fields. Linux®, however, can suffer a performance disadvantage in some scenarios because it needs additional software to act as a real-time operating system (RTOS), a requirement for some embedded systems. Despite this, a variety of custom Linux® distributions have been used for embedded systems, ranging from mobile phones to avionics testing equipment.
An embedded computer differs from a personal computer (PC) in that the embedded system is designed or constructed for one or more specific purposes, while PCs are meant for a wide range of functions. An embedded computer can be designed with the minimum amount of performance required to meet its specific goals, resulting in a lightweight and highly efficient computer platform. The category spans a wide variety of computing devices, from consumer electronics devices to avionics equipment to the rovers and spacecraft that explore the solar system. Like any computer, though, an embedded system’s hardware is useless without a software platform, and in many cases the software platform chosen is some form of embedded Linux®.
Linux® has proven popular in a number of embedded computing fields because of its high level of customization and flexibility, along with diverse hardware support. The Linux® kernel has a modular architecture, meaning that a designer or engineer can choose only the drivers and high-level software needed for a particular system. Support for a variety of different microprocessor architectures is also an important advantage offered by embedded Linux® since embedded systems may use a microprocessor that is quite different from those found in PCs. As an open-source software project, Linux® also can also be used without the restrictions and royalties that might be present in commercial offerings.
Embedded systems often require a real-time operating system — an operating system capable of responding to events within a very short period of time. Since the Linux® kernel was not designed with real-time performance in mind, additional software must be run on top of the kernel to provide this functionality. This is a potential disadvantage to the use of embedded Linux® since this additional software consumes more resources.
Some versions of embedded Linux® may be built almost from scratch, while others are slightly modified versions of existing distributions. Both commercial and non-commercial organizations offer their own pre-built distributions targeted at manufacturers and design firms. Mobile phones and media players, for instance, commonly use off-the-shelf varieties of embedded Linux®. Computing kiosks or network appliances might use only a slightly modified version of a desktop Linux® distribution.
In fields with highly demanding real-time or performance requirements, the end user is often highly involved with the design of the system. The National Aeronautics and Space Administration (NASA), for example, obtains Linux® software from outside vendors, but sets guidelines for the vendors to follow. Other organizations, such as companies that manufacture avionics testing equipment, may choose to develop their own flavor of embedded Linux®.