Using Linux in Embedded Systems and Smart Devices
Aug 2, 1997 — by Rick Lehrbaum — from the LinuxDevices Archive — 69 viewsIn this introductory article on the why's and wherefore's of Embedded Linux, LinuxDevices.com founder Rick Lehrbaum presents a compelling case for why Linux is ideally suited for embedded applications, and outlines what options are available.
Why embed Linux?
The power, reliability, flexibility, and scalability of Linux, combined with its support for a multitude of microprocessor architectures, hardware devices, graphics support, and communications protocols have established Linux as an increasingly popular software platform for a vast array of projects and products. Use of Linux spans the full spectrum of computing applications, from IBM's tiny Linux wrist watch, to hand-held devices (including PDAs and cell phones) and consumer entertainment systems, to Internet appliances, thin clients, firewalls, robotics, telephony infrastructure equipment, . . . and even to cluster-based supercomputers.
Because Linux is openly and freely available in source form, many variations and configurations of Linux and its supporting software components have evolved to meet the diverse needs of the markets and applications to which Linux is being adapted. There are small-footprint versions and real-time enhanced versions. And despite the origins of Linux as a PC architecture operating system, there are now ports to numerous non-x86 CPUs, with and without memory management units, including PowerPC, ARM, MIPS, 68K, and even microcontrollers. And there's more coming, all the time!
Which Embedded Linux?
One of the most interesting qualities of embedded Linux, then, is the abundance of choice. Even within a given architecture, such as x86, MIPS, or PowerPC, there are likely to be a wide range of choices. So, how do you decide which distribution to use? That depends.
First, it's important to recognize that all Linux distributions are, more or less, variations on the same theme. That is, they tend to be collections of the same basic components, including the Linux kernel, libraries, drivers, command shells (command processors), GUI and windowing frameworks, and utilities.
In that case, what makes them different? The distinctions between distributions frequently center around which of the many hundreds of Linux utilities are included, what modules or utilities (both open-source and proprietary) are added, what kernel patches and modifications are provided, and how the installation, configuration, maintenance, and upgrade process is managed. How easy is it, for example, to build a small-footprint Linux system that closely matches your application's unique requirements?
To pay, or not to pay . . .
Then there's the question of commercial vs. non-commercial (open source) software. This might be an important philosophical issue for you or your company. You (or your company) may want to restrict your Linux-related activities to using exclusively open source software, so there are no licensing restrictions or royalty requirements, or so that you have the flexibility to supply source code to your customers. Or, you might prefer to take a more pragmatic approach, using (and sometimes licensing) whatever software components best match your application's needs — whether proprietary or open source.
Either way, whether you decide to use pure open source, or to mix open and proprietary software components, using Linux in embedded applications is unlikely to be totally “free” of costs. You'll need to either invest time and resources to create your own implementation, or spend money on tools and/or licensed components, or pay for outside services and support.
That said, there are certainly a wide variety of excellent open source tools and utilities that you can download free of charge; and, there are also excellent proprietary tools and utilities, which, if you choose to use them, you must license or purchase from their suppliers. Then too, bear in mind that the companies who offer “commercial” Embedded Linux distributions generally possess a high level of expertise and have well trained staff ready and waiting to assist you with your project — for a price.
Paying money to one of the “commercial” Embedded Linux suppliers can have many advantages, including development tools, useful utilities — and, of course, support. Most commercial suppliers of Embedded Linux distributions are busy investing in the development of tools and services that will differentiate their Linux offerings from the pack, in order to advance their standing as a prospective partner for companies building Linux-based embedded applications. In many cases, these commercial Embedded Linux distribution suppliers are also making significant contributions to the overall pool of open source software.
Searching for Solutions
Taken as a whole, there are a great many options — both open source and proprietary — which fall into the following categories . . .
- Linux kernel implementations — a wide range of shapes and sizes of Linux, including reduced footprint implementations, versions that do not require the presence of a memory management unit (MMU), and enhancements and add-ons to support the “hard”, “firm”, or “soft” real-time responsiveness of performance-sensitive applications such as streaming media, IP telephony, and robotics.
- Windowing and graphics environments — modules, add-ons, drivers, and utilities to support the graphical display needs of embedded applications, including graphical user interface (GUI) toolkits, window managers, and browsers which vary in size, appearance, features, and capabilities.
- Drivers and utilities — software support for the unique hardware, software, and functional requirements of Linux-based embedded applications including telephony equipment, multimedia devices, mobile computing, wireless capabilities, data acquisition and control, and more.
- Tools — software that simplifies and automates the process of generating a Linux configuration that is tuned to a specific embedded system's requirements, assists the developer in debugging and tuning the system configuration, provides remote system maintenance and support, and more.
Author's bio: Rick Lehrbaum created the LinuxDevices.com “embedded Linux portal,” which is now part of the ZDNet Linux Resource Center. Rick has worked in the field of embedded systems since 1979. He co-founded Ampro Computers, founded the PC/104 Consortium, and was instrumental in launching the Embedded Linux Consortium.
Story navigation . . .
- Part 1: Introduction and Overview to this Guide
- Part 2: Using Linux in Embedded Systems and Smart Devices
- Part 3: Articles and whitepapers about Embedded Linux
- Part 4: Quick Reference Guides on Specific Embedded Linux Topics
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.