Operating Systems Foundations with Linux on the Raspberry Pi: Textbook
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).
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
- Introduction: OS foundations and the Raspberry Pi as a learning platform
- Processes, programs and threads: abstractions and Linux implementations
- Concurrency and synchronization: locks, condition variables and race conditions
- CPU scheduling: policies, fairness and real-time concerns
- Memory management and virtual memory: paging, address spaces and allocation
- File systems and I/O: VFS, block and character devices, buffering
- System calls and the user–kernel interface
- Linux kernel architecture: modules, kernel subsystems and build process
- ARM hardware and Raspberry Pi booting: CPU modes, exceptions and MMU
- Device drivers and interrupt handling on ARM/Raspberry Pi
- Practical labs: cross-compiling, building kernels, running experiments on Raspberry Pi and QEMU
- Performance, tracing and debugging: tools and methodologies
- Security, isolation and virtualization in Linux
- Case studies, exercises and further reading
Languages, Platforms & Tools
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.













