Linux is an open source general purpose operating system. Over the years, several people have used it in embedded systems. Now, Linux is in PDAs, Cell Phones, Routers, MP3 Players, Set Top boxes, and much more.
This article provides a wealth of information on the use of Linux in embedded systems.
Introduction
What are Embedded Systems?
Embedded systems is a term used to describe a variety of computing devices, ranging from single purpose devices (e.g. MP3 Players), to ruggedized industrial computers, to Single Board Computers (SBCs), and more.
Embedded devices have several things in common:
- Have specialized applications.
- Have less power consumption.
- Have more uptime demands.
- Have less processing power.
- Have less memory capacity.
- Run on a variety of CPU architectures, often non-Intel .
Features of Embedded Systems
Most embedded system are also real time systems, having strict demands on response time for devices such as robotics or measurement. However, not all embedded systems are real time though.
The main challenge of getting Linux to run on an embedded system is the constraint environment that the system has. Often low on raw CPU power, and low on memory and storage, size and performance becomes the main concern. Power consumption is a concern too. The less the system has moving parts, the more reliable it is.
Embedded systems often rely on flash memory for storage, either in the form of Disk-On-Chip (DoC), or Flash cards, such as CompactFlash (CF) or Secure Digital (SD).
Embedded systems have a variety of input/output (I/O) interfaces, ranging from simple serial ports, Analog to Digital interfaces, Ethernet, USB, and more, all depending on how they are to be used, and what equipment they need to interface to.
The shape and form factor varies as well. One standard is PC/104, which is an industry standard for stacking modules from different manufacturers and have them work together, such as a power supply module, a processor module, a serial module, a storage module, ...etc. There are also other form factors, ranging form 'gum stick' size, to Single Board Computers (SBC), and Mini-ITX which is more for general computing.
Here is an web page with lots of Articles and Whitepapers on Linux in Embedded Applications from LinuxDevices.com
Uses of Embedded Systems
Embedded systems are used in a very wide range of applications. They can be classified into two broad categories, real time and non real time.
Embedded systems are used in industrial control and automation, for example in various manufacturing roles, where sensors monitor certain conditions and respond to it. They are also used in data acquisition and collection. They are also used for PDAs, cell phones, media players, personal video recorders, and much more.
The market for embedded systems is much larger than general purpose computing.
Embedded Linux distributions
Various companies and people have developed embedded Linux distributions for various architectures and applications. Here are some of the most well known and commonly used in the field.
- Snap Gear
- uCLinux
- Monta Vista Linux
- White Dwarf Linux
- TS Linux is a PC compatible Linux distribution that runs off a CompactFlash card.
- BlueCat Linux
- AMSEL Secure Embedded Linux
- Linux From Scratch (LFS) is a book that guides you in a step by step approach on how to create your own distribution. By cutting it down to what you need, and stripping the binaries, you can get a functional distribution in less than 12 MB.
- Embedded Linux Distributions Quick Reference Guide at LinuxDevices.com.
- Another collection of Embedded Linux distributions.
- A comparison of Hard Real Time Linux Kernels, and a Slashdot discussion on it.
Books
- Building Embedded Linux Systems by Karim Yaghmour, a Montral based expert and author on embedded Linux.
- Embedded Linux: Hardware, Software, and Interfacing by Dr. Craig Hollabaugh. His web site lists seminars as well.
Canadian Embedded Hardware Providers
- Toronto MicroElectronics Inc.
- Connect Tech
- Megatel Computer Corporation
- Tri-M Systems and Engineering
Other Resources
- Embedded Linux Consortium
- LinuxDevices.com a great source on news, concepts, trends, products and everything about embedded Linux.
- A list of some little Linux systems.
- The Embedded Linux Journal is not published anymore. However, the old issues with the complete articles are available, and have lots of useful information.
- Bruce Perens has written BusyBox about a decade ago for the purpose of creating boot environments for Linux distributions. This set of tools found its way in many embedded devices today because of its small size and functionality. You can read a series of articles on BusyBox by Bruce, Part 1, Part 2 and Part 3.
- Since Flash devices are used often in Embedded systems, here is an article on Flash File Systems from Embedded Linux Journal.
- For an example of how graphical user interfaces can be adapterd to embedded systems, such as PDA's, see this article on Konqueror/Embedded: An Open-Source Web Browser For EmbeddedLinux Systems.
- Micro Windows is another graphical user interface for embedded devices. Here is a series of articles on how to program in it. Here is Part 1 and Part 2.
- Embedded Linux and Home Automation.
Examples: Hacking Linksys Embedded Linux Devices
The following are two examples of specialized hardware appliances that use embedded Linux, both from Linksys, and both were modified by enthusiasts our of curiosity and exploration.
- WRT54G Wireless Router
- I, Cringely column on PBS.
- Sveasoft alternate firmware for this device.
- EWRT by Portless Networks
- Another project for alternate firmware
- Slashdot discussion
- NSLU2Network storage server
Most Comments
Most commented on articles ...