O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Linux for Embedded and Real-time Applications, 4th Edition

Book Description

Linux for Embedded and Real-Time Applications, Fourth Edition, provides a practical introduction to the basics, covering the latest developments in this rapidly evolving technology. Ideal for those new to the use of Linux in an embedded environment, the book takes a hands-on approach that covers key concepts of building applications in a cross-development environment. Hands-on exercises focus on the popular open source BeagleBone Black board. New content includes graphical programming with QT as well as expanded and updated material on projects such as Eclipse, BusyBox – configuring and building, the U-Boot bootloader – what it is, how it works, configuring and building, and new coverage of the Root file system and the latest updates on the Linux kernel..

  • Provides a hands-on introduction for engineers and software developers who need to get up to speed quickly on embedded Linux, its operation and capabilities
  • Covers the popular open source target boards, the BeagleBone and BeagleBone Black
  • Includes new and updated material that focuses on BusyBox, U-Boot bootloader and graphical programming with QT

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Preface
    1. Audience and Prerequisites
    2. What’s New in this Edition
    3. Personal Biases
    4. Organization
  7. Part I: Introduction
    1. Chapter 1. The embedded and real-time space
      1. Abstract
      2. What is Embedded?
      3. What is Real-Time?
      4. How and Why Does Linux Fit in?
      5. Where is Linux Embedded?
      6. Open Source Licensing
      7. Alternatives to Linux
      8. Resources
    2. Chapter 2. Installing linux
      1. Abstract
      2. Distributions
      3. Hardware Requirements
      4. Installation Scenarios
      5. DVD or Live CD?
      6. Installation Process
      7. Resources
    3. Chapter 3. Introducing linux
      1. Abstract
      2. Running Linux—KDE
      3. Linux Features
      4. Protected Mode Architecture
      5. The Linux Process Model
      6. The Linux File System
      7. System Configuration
      8. The Shell
      9. Getting Help
      10. Resources
    4. Chapter 4. The host development environment
      1. Abstract
      2. Cross-Development Tools: the GNU Tool Chain
      3. Getting and Installing the Software
      4. The Terminal Emulator, minicom
      5. Networking
      6. Resources
    5. Chapter 5. Eclipse integrated development environment
      1. Abstract
      2. Overview
      3. Installation
      4. Using Eclipse
      5. The C Development Environment (CDT)
      6. The Program
      7. Building the Project
      8. Debugging With CDT
      9. Finish Debugging
      10. Additional Plug-ins
      11. Summary
      12. Resources
    6. Chapter 6. The hardware
      1. Abstract
      2. The ARM Architecture
      3. Open Source Hardware
      4. Setting up the BeagleBone Black
      5. Flash Memory and File Systems
      6. Preparing the Board
      7. Resources
  8. Part II: Application programming in a cross-development environment
    1. Chapter 7. Accessing hardware
      1. Abstract
      2. Review
      3. ARM I/O Architecture
      4. Accessing I/O From Linux: Our First Program
      5. The led Program
      6. A Data Acquisition Example
      7. Resources
    2. Chapter 8. Debugging embedded software
      1. Abstract
      2. Remote Debugging With Eclipse
      3. A Thermostat
      4. Host Workstation as Debug Environment
      5. Debugger Services Framework
      6. Resources
    3. Chapter 9. Posix threads
      1. Abstract
      2. Threads
      3. Synchronization: Mutexes
      4. Communication: Condition Variables
      5. Thread Termination and Cancellation
      6. Pthreads Implementations
      7. Upgrading the Thermostat
      8. Debugging Multithreaded Programs
      9. Resources
    4. Chapter 10. Embedded networking
      1. Abstract
      2. Sockets
      3. A Simple Example
      4. A Remote Thermostat
      5. Embedded Web Servers
      6. “Real” Web Servers
      7. Resources
    5. Chapter 11. Graphics programming with QT
      1. Abstract
      2. Getting and Installing QT
      3. QT Basics
      4. QT Designer
      5. Putting QT on the ARM
      6. A Graphical Thermostat
      7. Resources
  9. Part III: Components and tools
    1. Chapter 12. Configuring and building the Linux kernel
      1. Abstract
      2. Getting Started
      3. Patching the Kernel
      4. The Kernel Source Tree
      5. Kernel Makefile
      6. Configuring the Kernel: make config, menuconfig, xconfig
      7. A Problem
      8. Building the Kernel
      9. Booting the New Kernel
      10. Behind the Scenes: What’s Really Happening
      11. Resources
    2. Chapter 13. Integrated build environments
      1. Abstract
      2. The Problem
      3. Buildroot
      4. Open Embedded
      5. Yocto Project
      6. Resources
    3. Chapter 14. BusyBox and Linux initialization
      1. Abstract
      2. Introducing BusyBox
      3. Configuring and Installing BusyBox
      4. Using BusyBox
      5. User Space Initialization
      6. Resources
    4. Chapter 15. U-boot boot loader and getting ready to ship
      1. Abstract
      2. U-Boot
      3. Putting the Application in eMMC Flash
      4. Resources
    5. Chapter 16. Source code control – GIT
      1. Abstract
      2. Background
      3. Introducing git
      4. Configuring git
      5. Graphical git
      6. Resources
    6. Chapter 17. Linux and real-time
      1. Abstract
      2. Hard versus Soft Real-Time
      3. Why Linux is Not Real-Time
      4. Two Approaches
      5. Working With PREEMPT_RT
      6. Wrap Up
      7. Resources
  10. Appendix A. U-boot Commands
    1. Information Commands
    2. Memory Commands
    3. NAND Flash Memory Commands
    4. Execution Control Commands
    5. Download Commands
    6. Environment Variable Commands
    7. Environment Variables
  11. Appendix B. Why Software Should Not Have Owners
  12. Index