eBook
Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
Related collections and offers
Overview
Linux® is being adopted by an increasing number of embedded systems developers, who have been won over by its sophisticated scheduling and networking, its cost-free license, its open development model, and the support offered by rich and powerful programming tools. While there is a great deal of hype surrounding the use of Linux in embedded systems, there is not a lot of practical information. Building Embedded Linux Systems is the first in-depth, hard-core guide to putting together an embedded system based on the Linux kernel. 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
Product Details
ISBN-13: | 9780596550486 |
---|---|
Publisher: | O'Reilly Media, Incorporated |
Publication date: | 04/22/2003 |
Sold by: | Barnes & Noble |
Format: | eBook |
Pages: | 416 |
File size: | 3 MB |
About the Author
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.
Jonathan Masters works on the Linux kernel for Red Hat.
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.
Philippe Gerum is the founder and maintainer of the Adeos and Xenomai projects.
Table of Contents
Preface;Focus on Self-Sufficiency;
Audience for This Book;
Scope and Background Information;
Organization of the Material;
Hardware Used in This Book;
Software Versions;
Typographical Conventions;
Using Code Examples;
Contact Information;
Safari® Books Online;
Acknowledgments for the First Edition;
Acknowledgments for the Second Edition;
Chapter 1: Introduction;
1.1 Definitions;
1.2 Real Life and Embedded Linux Systems;
1.3 Design and Implementation Methodology;
Chapter 2: Basic Concepts;
2.1 Types of Hosts;
2.2 Types of Host/Target Development Setups;
2.3 Types of Host/Target Debug Setups;
2.4 Generic Architecture of an Embedded Linux System;
2.5 System Startup;
2.6 Types of Boot Configurations;
2.7 System Memory Layout;
Chapter 3: Hardware Support;
3.1 Processor Architectures;
3.2 Buses and Interfaces;
3.3 I/O;
3.4 Storage;
3.5 General-Purpose Networking;
3.6 Industrial-Grade Networking;
3.7 System Monitoring;
Chapter 4: Development Tools;
4.1 A Practical Project Workspace;
4.2 GNU Cross-Platform Development Toolchain;
4.3 C Library Alternatives;
4.4 Java;
4.5 Perl;
4.6 Python;
4.7 Other Programming Languages;
4.8 Eclipse: An Integrated Development Environment;
4.9 Terminal Emulators;
Chapter 5: Kernel Considerations;
5.1 Selecting a Kernel;
5.2 Configuring the Kernel;
5.3 Compiling the Kernel;
5.4 Installing the Kernel;
5.5 In the Field;
Chapter 6: Root Filesystem Content;
6.1 Basic Root Filesystem Structure;
6.2 Libraries;
6.3 Kernel Modules;
6.4 Kernel Images;
6.5 Device Files;
6.6 Main System Applications;
6.7 Custom Applications;
6.8 System Initialization;
Chapter 7: Storage Device Manipulation;
7.1 MTD-Supported Devices;
7.2 Disk Devices;
7.3 To Swap or Not To Swap;
Chapter 8: Root Filesystem Setup;
8.1 Filesystem Types for Embedded Devices;
8.2 Writing a Filesystem Image to Flash Using an NFS-Mounted Root Filesystem;
8.3 Placing a Disk Filesystem on a RAM Disk;
8.4 Rootfs and Initramfs;
8.5 Choosing a Filesystem’s Type and Layout;
8.6 Handling Software Upgrades;
Chapter 9: Setting Up the Bootloader;
9.1 Embedded Bootloaders;
9.2 Server Setup for Network Boot;
9.3 Using the U-Boot Bootloader;
Chapter 10: Setting Up Networking Services;
10.1 Network Settings;
10.2 Busybox;
10.3 Dynamic Configuration Through DHCP;
10.4 The Internet Super-Server;
10.5 Remote Administration with SNMP;
10.6 Network Login Through Telnet;
10.7 Secure Communication with SSH;
10.8 Serving Web Content Through HTTP;
10.9 Provisioning;
Chapter 11: Debugging Tools;
11.1 Eclipse;
11.2 Debugging Applications with gdb;
11.3 Tracing;
11.4 Performance Analysis;
11.5 Memory Debugging;
11.6 A Word on Hardware Tools;
Chapter 12: Introduction to Real-Time Linux;
12.1 What Is Real-Time Processing?;
12.2 Should Your Linux Be Real-Time?;
12.3 Common Real-Time Kernel Requirements;
12.4 Some Typical Users of Real-Time Computing Technology;
12.5 The Linux Paths to Real-Time;
Chapter 13: The Xenomai Real-Time System;
13.1 Porting Traditional RTOS Applications to Linux;
13.2 The Xenomai Architecture;
13.3 How Xenomai Works;
13.4 The Real-Time Driver Model;
13.5 Xenomai, Chameleon by Design;
Chapter 14: The RT Patch;
14.1 Interrupts As Threads;
14.2 Priority Inheritance;
14.3 Configuring the Kernel with the RT Patch;
14.4 High-Resolution Timers;
14.5 The Latency Tracer;
14.6 Conclusion;
Colophon;