Preface
When I first suggested using Linux in an
embedded system back in 1997 while working for a hardware
manufacturer, my suggestion was met with a certain degree of
skepticism and surprise. Today, the use of Linux in embedded systems
is no laughing matter. Indeed, many industry giants and government
agencies are increasingly relying on Linux for their embedded
software needs.
The widespread interest and enthusiasm generated by
Linux's successful use in a number of embedded
applications has led to the creation of a plethora of articles, web
sites, companies, and documents all pertaining to
"embedded Linux." Yet, beyond the
flashy announcements, the magazine articles, and the hundreds of
projects and products that claim to ease Linux's use
in embedded systems, professional developers seeking a useful guide
are still looking for answers to fundamental questions regarding the
basic methods and techniques required to build embedded systems based
on the Linux kernel.
Much of the documentation currently available relies heavily on the
use of a number of prepackaged, ready-to-use cross-platform
development tools and target binaries. Yet other documents cover only
one very precise aspect of running Linux on an embedded target.
This book is a radical departure from the existing documentation in
that it makes no assumptions as to the tools you have at hand or the
scope of your project, other than your desire to use Linux. All that
is required for this book is an Internet connection to download the
necessary packages, browse specific online documentation, and benefit
from other developers' experiences, as well as share
your own, through project mailing lists. You still need a development
host and documentation regarding your target's
hardware, but the explanations I outline do not require the
purchasing of any product or service from any vendor.
Besides giving the greatest degree of freedom and control over your
design, this approach is closest to that followed by the pioneers who
have spearheaded the way for Linux's use in embedded
systems. In essence, these pioneers have pulled
on Linux to fit their applications by stripping it down and
customizing it to their purposes. Linux's
penetration of the embedded world contrasts, therefore, with the
approach followed by many software vendors to
push their products into new fields of
applications. As an embedded system developer, you are likely to find
Linux much easier to pull towards your design than to adapt the
products being pushed by vendors to that same design.
This book's approach is to allow you to pull Linux
towards your design by providing all the details and discussing many
of the corner cases encountered in using Linux in embedded systems.
Though it is not possible to claim that all embedded designs are
covered by this book, the resources provided here allow you to easily
obtain the rest of the information required for you to customize and
use Linux in your embedded system.
In writing this book, my intent has been to bring the embedded system
developers who use open source and free software in their designs
closer to the developers who create and maintain these open source
and free software packages. Though a lot of mainstream embedded
system developers, many of whom are high-caliber programmers, rely on
third-party offerings for their embedded Linux needs, there is a
clear opportunity for them to contribute to the open source and free
software projects on which they rely. Ultimately, this sort of
dynamic will ensure that Linux continues to be the best operating
system choice for embedded systems.
|