The Art of Linux Kernel Design
Uses the Running Operation as the Main Thread
Difficulty in understanding an operating system (OS) lies not in the technical aspects, but in the complex relationships inside the operating systems. The Art of Linux Kernel Design: Illustrating the Operating System Design Principle and Implementation addresses this complexity. Written from the perspective of the designer of an operating system, this book tackles important issues and practical problems on how to understand an operating system completely and systematically. It removes the mystery, revealing operating system design guidelines, explaining the BIOS code directly related to the operating system, and simplifying the relationships and guiding ideology behind it all.
Based on the Source Code of a Real Multi-Process Operating System
Using the 0.11 edition source code as a representation of the Linux basic design, the book illustrates the real states of an operating system in actual operations. It provides a complete, systematic analysis of the operating system source code, as well as a direct and complete understanding of the real operating system run-time structure. The author includes run-time memory structure diagrams, and an accompanying essay to help readers grasp the dynamics behind Linux and similar software systems.
- Identifies through diagrams the location of the key operating system data structures that lie in the memory
- Indicates through diagrams the current operating status information which helps users understand the interrupt state, and left time slice of processes
- Examines the relationship between process and memory, memory and file, file and process, and the kernel
- Explores the essential association, preparation, and transition, which is the vital part of operating system
Develop a System of Your Own
This text offers an in-depth study on mastering the operating system, and provides an important prerequisite for designing a whole new operating system.
Why Read This Book
You will gain a designer's view of how the Linux kernel is constructed and why components interact the way they do, learning to see beyond APIs into the guiding principles that shape the system. This book emphasizes the running operation as the main thread and walks through BIOS-to-kernel code paths so you can connect theory to real kernel source and practical implementation.
Who Will Benefit
Engineers and advanced students who write or maintain low-level system software—kernel developers, firmware engineers, and embedded Linux integrators—who want a principled, source-oriented understanding of OS internals.
Level: Advanced — Prerequisites: Solid C programming skills, familiarity with basic operating-system concepts (processes, threads, virtual memory, interrupts), and some exposure to assembly and systems-level tooling (compilers, linkers, debuggers).
Key Takeaways
- Explain the core design principles that govern Linux kernel structure and component interactions
- Trace the full boot path from BIOS/bootloader into kernel initialization and early kernel subsystems
- Analyze kernel source to identify how scheduling, memory management, and interrupt handling are implemented
- Apply debugging and inspection techniques to read and navigate real kernel code paths
- Relate hardware/BIOS behavior to kernel decisions to improve low-level driver and firmware integration
Topics Covered
- Introduction: Design Thinking for Operating Systems
- Overview of Linux Kernel Architecture
- Bootstrapping: BIOS, Bootloader, and Kernel Entry
- Process and Thread Model: The Running Operation as Main Thread
- Scheduling and Concurrency: Policies and Implementations
- Memory Management: Paging, VM, and Allocation Strategies
- Interrupts, Exceptions, and Low-Level Hardware Interfaces
- File Systems and I/O Subsystems (overview)
- Device Drivers and Kernel–Hardware Boundary
- Kernel Synchronization and Locking Primitives
- Practical Source Walkthroughs: Key Subsystems in Code
- Tools and Techniques for Kernel Development and Debugging
- Design Guidelines and Common Pitfalls
- Appendices: Development Environment, Building, and Tracing
Languages, Platforms & Tools
How It Compares
Covers similar ground to 'Understanding the Linux Kernel' but takes a more design- and source-oriented, BIOS-to-kernel perspective; complements Robert Love's 'Linux Kernel Development' by emphasizing guiding principles and the boot/early-init path.













