EmbeddedRelated.com
Books

Operating Systems Foundations with Linux on the Raspberry Pi: Textbook

Vanderbauwhede, Wim, Singer, Jeremy 2019

At the heart of any modern computer device sits the operating system and if the device is a smartphone, IoT node, data centre server or supercomputer, then this is very likely to be Linux. This textbook provides a practical introduction to the foundations of modern operating systems, with a focus on GNU/Linux and the Arm platform. It explains operating systems theory and concepts but grounds them in practical use through illustrative examples of their implementation in GNU/Linux, as well as making the connection with the Arm hardware supporting the OS functionality.


Why Read This Book

You will get a practical, hands-on grounding in modern operating system principles by seeing how theory maps to GNU/Linux running on ARM hardware. The book blends clear OS concepts with Raspberry Pi labs and Linux examples so you can both reason about kernels and apply that knowledge to real embedded and IoT platforms.

Who Will Benefit

Undergraduate students, embedded/firmware engineers, and hobbyists with programming experience who want to understand OS fundamentals and how they are realized on Linux/ARM (Raspberry Pi) systems.

Level: Intermediate — Prerequisites: Comfortable programming in C, familiarity with the Linux command line and basic shell scripting, and a working knowledge of basic computer architecture (CPU/ memory/ I/O).

Get This Book

Key Takeaways

  • Explain core OS concepts such as processes, threads, scheduling, virtual memory, and synchronization in the context of Linux
  • Map Linux kernel mechanisms to ARM hardware features, including the Raspberry Pi boot sequence and interrupt handling
  • Cross-compile and build parts of the Linux stack for Raspberry Pi and run experiments using local boards or QEMU
  • Inspect and debug kernel/user interactions using system calls, procfs/sysfs, GDB and common tracing tools
  • Design and reason about concurrency-safe code and simple device interactions for embedded Linux systems
  • Evaluate trade-offs in memory management, I/O handling, and scheduling for embedded/IoT workloads

Topics Covered

  1. Introduction: OS foundations and the Raspberry Pi as a learning platform
  2. Processes, programs and threads: abstractions and Linux implementations
  3. Concurrency and synchronization: locks, condition variables and race conditions
  4. CPU scheduling: policies, fairness and real-time concerns
  5. Memory management and virtual memory: paging, address spaces and allocation
  6. File systems and I/O: VFS, block and character devices, buffering
  7. System calls and the user–kernel interface
  8. Linux kernel architecture: modules, kernel subsystems and build process
  9. ARM hardware and Raspberry Pi booting: CPU modes, exceptions and MMU
  10. Device drivers and interrupt handling on ARM/Raspberry Pi
  11. Practical labs: cross-compiling, building kernels, running experiments on Raspberry Pi and QEMU
  12. Performance, tracing and debugging: tools and methodologies
  13. Security, isolation and virtualization in Linux
  14. Case studies, exercises and further reading

Languages, Platforms & Tools

CShell (bash)PythonARM assembly (introductory)Raspberry Pi (ARM Cortex-A, ARMv7/ARMv8)Generic ARM platformsQEMU (ARM emulation)GCC (cross-compilers)MakeGDBQEMULinux kernel build systemGitstrace, perf, ftrace, /proc and /sys utilitiesRaspberry Pi OS / Debian-based toolchain

How It Compares

Compared with Tanenbaum's 'Modern Operating Systems' and OSTEP, this book places more emphasis on GNU/Linux and practical Raspberry Pi/ARM experiments; compared to Robert Love's 'Linux Kernel Development' it is more introductory and pedagogical rather than an exhaustive kernel hacking manual.

Related Books

Bryant, Randal, O'Hallaron,...