Although Linux was designed to run PC platforms, Linux can be a reliable OS for embedded systems. The typical shrink-wrapped Linux system has a full featured Linux kernel that requires about 1 MB of memory. The Linux "pure" kernel (virtual memory and all core operating system functions) actually consumes only about 100K. With the networking stack and basic utilities, a complete Linux system runs in about 500K of memory. The total memory required is dictated by the applications to be run, but a Linux system can be adapted to work with as little as 256 KB ROM and 512 KB RAM. So it's a lightweight operating system to bring to the embedded market.
Another benefit of using an open source Linux over a traditional RTOS is that the Linux development community tends to support new protocols faster and more device drivers than RTOS vendors do.
The core Linux operating system itself has a fairly simple microkernel architecture. Networking and file systems are layered on top of the microkernel in a modular fashion. Drivers and other features can either be compiled in or added to the kernel at run-time as loadable modules. This provides a highly modular building-block approach to constructing a customized embedded system, which typically uses a combination of custom drivers and application programs to provide the added functionality.
An embedded system also often requires generic capabilities, which, in order to avoid re-inventing the wheel, are built with off-the-shelf programs and drivers, many of which are available for common peripherals and applications. Linux can run on most microprocessors with a wide range of peripherals and has a ready inventory of off-the-shelf applications.
Linux is also well-suited for embedded Internet devices, because of its support of multiprocessor systems, which lends it scalability. This capability gives a designer the option of running a realtime application on a dual processor system, increasing the total processing power. So you can run a Linux system on one processor while running a GUI, for example, simultaneously on another processor.
A disadvantage to running Linux on an embedded system is that the Linux architecture can not provide realtime performance in its standard form. For instance, standard Linux has tasks scheduled according to a fairness algorithm that gives an equal share of processor time to each task. The solution is to modify Linux to behave in a deterministic manner through the addition of realtime changes in one of following methods:
- The first solution is to add software modules that run in the kernel space, the portion of the operating system that implements the scheduling policy, hardware-interrupts exceptions and program execution. Since these realtime software modules run in the kernel space, a code error can impact the entire system's reliability by crashing the operating system.
- The second solution, illustrated in Figure 1, is the dual-kernel approach that provides a runtime environment for realtime tasks. This approach requires developers to write new drivers and system services although equivalent services already exist in the standard Linux kernel. This RTOS solution can slow load time and the increase size of the OS footprint.
- The third solution is that other embedded Linux vendors use a kernel rewritten to provide RTOS functionality by rewriting portions of the code, such as the scheduler, to be deterministic in behavior.

Figure 1: Linux with Dual Standard and RTOS Kernel
There are over 200 distributions of Linux and many embedded versions. Without the existence of a standard for embedded Linux, so that a single unified platform specification can enable the use of a cost-effective, focused environment, Linux could be all but useless.
In order to make embedded Linux versions compatible the Embedded Linux Consortium (ELC) was formed. ELC is a nonprofit, trade association for the advancement, promotion and standardization of Linux throughout the embedded computing market. Members participate in management, promotion, implementation, and platform specification working groups in order to enjoy the benefits that standardization brings.
The ELC mission statement is "...to make Linux a top operating system choice for developers designing embedded systems." Dr. Inder Singh, ELC Chairman and CEO of LynuxWorks commented "Linux is rapidly becoming the leading choice for the operating system for consumer electronic products, which are being designed with more and more embedded software."
Karen Chupka, vice president of events and conferences for the Consumer Electronics Association states, "Operating system software is a critical consideration for a rapidly growing list of consumer electronic products. Linux is destined for growth in 2004. . . ."
More than 75 companies have now joined the Consumer Electronics Linux Forum (CELF), formed by Sony and Matsushita, to promote Linux-based digital CE products. Some of the other CE companies involved in the forum, officially launched in June of 2003, are NEC, Hitachi, Royal Philips, Samsung, Sharp and Toshiba.
![]()
![]() | Maximum FPS: three tips for faster code by Dean Macri, Solutions Enabling Group, Intel Corp. Welcome back t... |
![]() | An overview of cache from Intel Corp. The purpose of this paper is two fold. The first p... |
If you're interested in this topic, these articles may be helpful:
![]() | Embedded RTOS Consolidation - Finally? The battle lines are getting clearer these days on the embedded device... |
![]() | Intel® VTune™ Performance Analyzer Version 3.0 for Linux* Identify lines of code that use excessive resources, remove performanc... |
![]() | Porting Unix/Linux applications to Mac OS X Apple Inc. This guide helps developers bring applications written... |
![]() | Intel® C++ Compiler for Linux Gain optimal performance from your Linux* applications running on the ... |
![]() | Intel® Fortran Compiler 8.1 for Linux Deliver outstanding performance on single and multiprocessor computers... |
![]()
Related Jobs:


