EmbeddedRelated.com
Books
The 2026 Embedded Online Conference

Linux for Embedded and Real-Time Applications (Embedded Technology)

Abbott, Doug 2003

In this applications-oriented reference, Doug Abbott shows how to put Linux to work in embedded and real-time applications. Among the topics Abbott discusses include memory management, device drivers, interrupt handling, kernel instrumentation, boatloaders, embedded networking, inter-task communications, periodic vs. "one shot" timing, POSIX threads, hardware abstraction layers, and program debugging. Abbott uses numerous real-world examples to show how implement a variety of embedded applications using Linux. Abbott discusses the strengths and weaknesses for embedded applications of different implementations of Linux, and he also examines the different real-time extensions for Linux. This book incorporates many programming exercises with solutions. All code listings are provided on the accompanying CD-ROM, as well as an electronic version of the text.

*Fully describes the use of Linux operating system for embedded and real-time applications
*Covers advanced topics such as device drivers, kernel implementation, POSIX threads
*The CD accompanying the book includes an electronic version of the book as well as related software tools and code listings


Why Read This Book

You will get a practical, systems-level guide to applying Linux in embedded and real-time projects, with concrete examples on device drivers, timing, and boot sequences. The book explains tradeoffs between standard Linux and various real-time extensions and gives hands-on exercises that help bridge theory and working firmware.

Who Will Benefit

Firmware and embedded software engineers (with some C and Linux experience) who need to port or design embedded systems using Linux or evaluate real-time Linux options.

Level: Intermediate — Prerequisites: C programming, basic Linux userland familiarity, and general embedded-systems fundamentals (interrupts, memory, I/O).

Get This Book

Key Takeaways

  • Implement device drivers and kernel modules to interface hardware with Linux
  • Analyze Linux memory management and scheduling behavior for embedded workloads
  • Configure and evaluate different real-time Linux approaches and patches
  • Design and debug embedded boot sequences and bootloaders for Linux systems
  • Integrate embedded networking and inter-process communications for real-time tasks
  • Use kernel instrumentation and debugging techniques to diagnose timing and concurrency issues

Topics Covered

  1. Introduction: Linux in Embedded and Real-Time Roles
  2. Linux Kernel Architecture and Building for Embedded Targets
  3. Memory Management and Resource Constraints in Embedded Systems
  4. Process Scheduling, Timing, and Real-Time Concepts
  5. POSIX Threads and Inter-Task Communication
  6. Interrupt Handling and Device Driver Fundamentals
  7. Writing Kernel Modules and Device Drivers
  8. Bootloaders and Bringing Up Embedded Linux
  9. Embedded Filesystems, Storage, and Flash Considerations
  10. Embedded Networking and Networked Applications
  11. Real-Time Linux Extensions and Patchsets (overview)
  12. Kernel Instrumentation, Debugging, and Performance Tuning
  13. Case Studies, Exercises, and Example Applications
  14. Appendices: Toolchains, Cross-Compilation, and Reference Material

Languages, Platforms & Tools

CAssembly (brief examples)Shell scriptingGeneric embedded Linux targets (ARM, x86, MIPS — platform-agnostic examples)GCC/cross-toolchainsGDBmakeKernel build systeminsmod/rmmodBootloaders (discussion of U-Boot/RedBoot and embedded boot)

How It Compares

Broader and more application-focused than Jonathan Corbet et al.'s Linux Device Drivers (which concentrates on driver APIs), but older and less up-to-date on modern kernels than later books like Embedded Linux Primer or Yaghmour's Building Embedded Linux Systems.

Related Books

The 2026 Embedded Online Conference