There's a great deal of excitement surrounding the use of Linux in embedded systems -- for everything from cell phones to car ABS systems and water-filtration plants -- but not a lot of practical information. Building Embedded Linux Systems offers an in-depth, hard-core guide to putting together embedded systems based on Linux.
Updated for the latest version of the Linux kernel, this new edition gives you the basics of building embedded Linux systems, along with the configuration, setup, and use of more than 40 different open source and free software packages in common use. The book also looks at the strengths and weaknesses of using Linux in an embedded system, plus a discussion of licensing issues, and an introduction to real-time, with a discussion of real-time options for Linux.
This indispensable book features arcane and previously undocumented procedures for:
Building your own GNU development toolchain
Using an efficient embedded development framework
Selecting, configuring, building, and installing a target-specific kernel
Creating a complete target root filesystem
Setting up, manipulating, and using solid-state storage devices
Installing and configuring a bootloader for the target
Cross-compiling a slew of utilities and packages
Debugging your embedded system using a plethora of tools and techniques
Using the uClibc, BusyBox, U-Boot, OpenSSH, thttpd, tftp, strace, and gdb packages
By presenting how to build the operating system components from pristine sources and how to find more documentation or help, Building Embedded Linux Systems greatly simplifies the task of keeping complete control over your embedded operating system.
Chapter 1 Introduction
Real Life and Embedded Linux Systems
Design and Implementation Methodology
Chapter 2 Basic Concepts
Types of Hosts
Types of Host/Target Development Setups
Types of Host/Target Debug Setups
Generic Architecture of an Embedded Linux System
Types of Boot Configurations
System Memory Layout
Chapter 3 Hardware Support
Buses and Interfaces
Chapter 4 Development Tools
A Practical Project Workspace
GNU Cross-Platform Development Toolchain
C Library Alternatives
Other Programming Languages
Eclipse: An Integrated Development Environment
Chapter 5 Kernel Considerations
Selecting a Kernel
Configuring the Kernel
Compiling the Kernel
Installing the Kernel
In the Field
Chapter 6 Root Filesystem Content
Basic Root Filesystem Structure
Main System Applications
Chapter 7 Storage Device Manipulation
To Swap or Not To Swap
Chapter 8 Root Filesystem Setup
Filesystem Types for Embedded Devices
Writing a Filesystem Image to Flash Using an NFS-Mounted Root Filesystem
Placing a Disk Filesystem on a RAM Disk
Rootfs and Initramfs
Choosing a Filesystem’s Type and Layout
Handling Software Upgrades
Chapter 9 Setting Up the Bootloader
Server Setup for Network Boot
Using the U-Boot Bootloader
Chapter 10 Setting Up Networking Services
Dynamic Configuration Through DHCP
The Internet Super-Server
Remote Administration with SNMP
Network Login Through Telnet
Secure Communication with SSH
Serving Web Content Through HTTP
Chapter 11 Debugging Tools
Debugging Applications with gdb
A Word on Hardware Tools
Chapter 12 Introduction to Real-Time Linux
What Is Real-Time Processing?
Should Your Linux Be Real-Time?
Common Real-Time Kernel Requirements
Some Typical Users of Real-Time Computing Technology
Karim Yaghmour is the founder and president of Opersys, a company providing expertise and courses on the use of open source and free software in embedded systems, and Kryptiva, a a provider of email security services. Being himself an active member of the open source and free software community, Karim has firmly established Opersys's services around the core values of knowledge sharing and technical quality promoted by this community. As part of his community involvement, Karim is the maintainer of the Linux Trace Toolkit and the author of a series of white-papers that led to the implementation of the Adeos nanokernel, which allows multiple operating systems to exist side-by-side.
Karim's quest for understanding how things work started at a veryyoung age when he took it upon himself to break open all the radiosand cassette players he could lay his hands on in order to "fix"them. Very early, he developed a keen interest in operating systeminternals and embedded systems. He now holds a B.Eng. and anM.A.Sc. from the Ecole Polytechnique de Montreal. While everyonewas hacking away at Linux, Karim even took a detour to write his owndistributed micro-kernel in order to get to the bottom of operatingsystem design and implementation. When not working on software, Karimindulges in his passion for history, philosophy, sociology, andhumanities in general. He's especially addicted to essays and novelsby Umberto Eco and Gerald Messadie.
Gilad Ben-Yossef is the cofounder and CTO of Codefidence TD. and has been assisting OEMs make use of free and open source software in commercial products and services since 1998. He is also cofounder of Hamakor, an NPO devoted to the promotion of FOSS in Israel, and a founding organizer of "August Penguin," an Israeli community FOSS conference.
Gilad is a member of the Israeli chapter of Mensa, the Israeli Information Technology Association and the Israeli chapter of the Internet Society. He holds a B.A. in Computer Science from Tel-Aviv Jaffa Academic College.
When not trying to make FOSS software do something the authors never intended, Gilad likes to SCUBA dive, read science fiction and spend time with his wife Limor and his and two adorable girls, Almog and Yael.
Comments about oreilly Building Embedded Linux Systems, 2nd Edition:
Solid introduction to the topic and fairly easy to read. I was concerned about being overwhelmed but the authors have taken time to make a difficult subject available to the average Linux SysAdmin.
Lots of information for embedded dev's coming from other Operating Systems! If that's you then the authors suggest having Running Linux (http://oreilly.com/catalog/9780596007607/index.html) and Linux kernel in a nutshell (http://oreilly.com/catalog/9780596100797/index.html) available while you work with this book.
Definately a good read! Minor issues are the slight wordiness in places and the lack of proof-reading here and there. Embedded systems skills are gaining popularity and you can get some hands on working with a minimal system and trying out the stuff in this book.