Mastering Linux Kernel Development cover

Mastering Linux Kernel Development

Rating 3.8
Word count
154K words
Chapters
74
ISBN
9787115566041

Tags

Summary

Mastering Linux Kernel Development introduces the Linux kernel, its internal organization and design, and its core subsystems. The book is divided into 11 chapters covering: processes, address spaces, and threads; the process scheduler; signal management; memory management and allocators; file systems and file I/O; interprocess communication; virtual memory management; kernel synchronization and locking; interrupts and deferred work; clocks and time management; and module management.

Concise and hands-on, Mastering Linux Kernel Development uses extensive code to support its treatment of Linux kernel development. Through this book, readers gain a deeper understanding of the kernel's core services and mechanisms, and learn how this collective work of many minds preserves both its sound design and its elegance.

Mastering Linux Kernel Development is suited to Linux kernel developers and low-level developers, as well as system developers who want a deeper understanding of the Linux kernel and its components. Software engineering students at universities can also use it as a reference guide to the design principles of the Linux kernel.

Editor's review

Mastering Linux Kernel Development is not a lightweight primer but an in-depth technical monograph for intermediate and advanced developers. Drawing on a deep grounding in systems programming, Raghu Bharadwaj peels back the layers of complex Linux kernel mechanisms. His exposition is rigorous and logical, and he excels at tying abstract kernel concepts to actual data structures and code flows. The book's most distinctive value lies in its panoramic perspective: rather than explaining individual subsystems in isolation, it focuses on how core modules such as process scheduling, memory management, file systems, and device drivers work together to form the complete skeleton of an operating system. This systematic approach is essential for engineers who want to move from being users or module developers to truly understanding the design philosophy and overall architecture of the kernel. The analyses of kernel synchronization, interrupt handling, virtual memory, and other key technologies are especially thorough, offering numerous code examples and analyses based on modern kernel versions (such as 4.x)—material that remains highly current. Readers should be warned, however, that the bar for entry is genuinely high: the book assumes solid C skills, a foundation in data structures and operating systems, and preferably some experience with kernel module or driver programming. It is not a manual for quick mastery but a reference map to be studied repeatedly, even debugged and verified against source code. For professional developers determined to go deep into the system layer—whether in kernel development, performance tuning, or building highly reliable systems—the mental frameworks and insights this book offers far outweigh any individual code snippet; they help build the ability to diagnose and solve complex system-level problems.

Who it's for

A good fit for

  • Intermediate and advanced developers with solid C and operating systems foundations who want a systematic, in-depth understanding of Linux kernel design and implementation
  • Professional engineers in kernel development, performance optimization, system architecture, or embedded systems who need to master how the kernel works
  • Advanced graduate students or researchers in computer science whose work involves operating system kernels or system software
  • Technical enthusiasts who are not content to use APIs and configure systems, and who want to understand low-level mechanisms to improve their debugging and problem-solving skills

Not a good fit for

  • Programming beginners with no background in operating systems or C
  • Users who only need everyday application development or system operations and do not need to delve into kernel mechanisms

Reading tips

  1. Read the book alongside the Linux kernel source tree: when you encounter a key data structure or function, consult the corresponding source code for that version to deepen your understanding
  2. There is no need to understand every chapter in one pass; you can study and practice topic by topic (e.g., memory management, process scheduling)
  3. When reading about complex mechanisms such as synchronization and interrupts, try writing simple kernel modules or using debugging tools to verify your understanding—practice is the best way to grasp these concepts

About the publisher

Posts & Telecom Press China · Founded in 1953

Posts & Telecom Press is known for its strengths in science and technology, computing, and information and communications titles, and has extended its publishing into photography, art, software learning, and inspirational growth, giving it a fairly diverse range. Its catalog includes computing and communications works such as Refactoring and Patterns (Revised Edition) and Huawei Switch Learning Guide (Second Edition), alongside bilingual collector's editions such as The Little Prince (Chinese-English-French illustrated collector's edition), The Great Gatsby, and Three Days to See. Beijing Ten Years: 1980-1990 and Ghost Blade: WLOP Personal Illustration Collection reflect its presence in photography and art. Its authors include Antoine de Saint-Exupéry, Helen Keller, Joshua Kerievsky, Wang Da, Zhang Zhaozeng, and WLOP.

Contents

  1. 版权信息
  2. 内容提要
  3. 关于作者
  4. 关于审稿人
  5. 前言
  6. 第1章 进程、地址空间和线程
  7. 1.1 进程
  8. 1.2 进程描述符
  9. 1.3 内核栈
  10. 1.4 栈溢出问题
  11. 1.5 进程创建
  12. 1.6 内核线程
  13. 1.7 进程状态和终止
  14. 1.8 命名空间和cgroup
  15. 1.9 小结
  16. 第2章 进程调度器
  17. 2.1 进程调度器
  18. 2.2 Linux进程调度器设计
  19. 2.3 运行队列
  20. 2.4 调度入口
  21. 2.5 进程优先级
  22. 2.6 调度类
  23. 2.7 完全公平调度类(CFS)
  24. 2.8 实时调度类
  25. 2.9 调度相关的系统调用
  26. 2.10 进程抢占
  27. 2.11 小结
  28. 第3章 信号管理
  29. 3.1 信号
  30. 3.2 信号管理API
  31. 3.3 信号数据结构
  32. 3.4 信号生成和传递
  33. 3.5 重新启动被中断的系统调用
  34. 3.6 小结
  35. 第4章 内存管理和分配器
  36. 4.1 初始化操作
  37. 4.2 区域和节点
  38. 4.3 内存分配
  39. 4.4 小结
  40. 第5章 文件系统和文件I/O
  41. 5.1 文件系统——高层视图
  42. 5.2 Linux内核中的文件系统
  43. 5.3 通用文件系统接口
  44. 5.4 特殊文件系统
  45. 5.5 小结
  46. 第6章 进程间通信
  47. 6.1 管道和FIFO
  48. 6.2 消息队列
  49. 6.3 共享内存
  50. 6.4 信号量
  51. 6.5 小结
  52. 第7章 虚拟内存管理
  53. 7.1 进程地址空间
  54. 7.2 小结
  55. 第8章 内核同步和锁
  56. 8.1 原子操作
  57. 8.2 排斥锁
  58. 8.3 小结
  59. 第9章 中断和延迟工作
  60. 9.1 中断信号和向量
  61. 9.2 可编程中断控制器
  62. 9.3 高级中断管理接口
  63. 9.4 延迟工作
  64. 9.5 小结
  65. 第10章 时钟和时间管理
  66. 10.1 时间表示
  67. 10.2 硬件抽象
  68. 10.3 Linux计时数据结构体、宏以及辅助函数
  69. 10.4 软件定时器和延迟函数
  70. 10.5 POSIX时钟
  71. 10.6 小结
  72. 第11章 模块管理
  73. 11.1 内核模块
  74. 11.2 小结

FAQ

Which Linux kernel version is the code based on?
The book is based primarily on the relatively recent Linux 4.x kernel series, so the mechanisms and data structures it covers are current and in sync with today's mainstream stable kernels.
What background knowledge is required before reading this book?
You need highly proficient C programming skills, especially an understanding of pointers, structures, and memory operations. You must also grasp basic operating system concepts (such as processes, threads, virtual memory, and interrupts), and preferably have some experience writing simple kernel modules or drivers.
How does this book compare with classics such as Linux Kernel Development and Understanding the Linux Kernel?
Whereas Linux Kernel Development emphasizes concepts and interfaces, this book goes deeper into code-level implementation details; whereas Understanding the Linux Kernel offers a classic analysis centered on earlier kernels (2.6), this book is based on a newer kernel version and places greater emphasis on the connections and coordination among subsystems, giving it a stronger systematic unity. The three can serve as references at different stages or with different emphases.

Comments

Find this book

This site is an index: you start “Search all sources” in your browser, and the entries it lists all point to third-party sites; please judge their availability yourself.

About the author

Raghu Bharadwaj is a technical author about whom limited public information is available; the confirmable details come mainly from his book Mastering Linux Kernel Development. The book falls under programming and design, and is aimed at developers who wish to gain a deeper understanding of the Linux kernel, covering knowledge related to kernel development. Judging from the title and its category, the author focuses on technical explanation at the kernel level, and the writing style is that of a practical technical book for developers rather than a general beginner's introduction. Although information such as the author's nationality, education, and professional experience is not found in the available materials, the work has been introduced into Chinese publication and can serve as a reference for Chinese readers. For such an author, readers may focus on the kernel development methods and ideas presented in the book, learning about the subject through his writing without over-inquiring into his personal background.

文平波 Author

Wen Pingbo is a technical author about whom limited public information is available. What can be confirmed is that his work focuses on the specialized field of Linux kernel development. The library holds his representative book, Mastering Linux Kernel Development, catalogued under programming and design as a technical title aimed at low-level system developers. Judging from the title and category, his writing emphasizes kernel mechanisms and development practice, targeting programmers and engineers who already have some operating system background and wish to gain a deeper understanding of the Linux kernel. Since the author's education, professional experience, and research interests have not been publicly disclosed, this introduction makes no speculation and, based solely on available bibliographic information, describes the book's positioning: it addresses an advanced, specialized kernel development topic and serves Chinese technical readers seeking further study.

白浩文 Author

Bai Haowen is a Chinese author of technical books. Public information about him is limited, and only one of his works is currently held in the collection. His representative work is Mastering Linux Kernel Development, a book in the programming and design category aimed at readers who wish to gain a deeper understanding of the Linux kernel. Judging from the title and category, the book focuses on the principles and practice of kernel development, with content centered on technical explanation and intended for programmers and system developers with some foundational knowledge. As no clear record of the author's biography, education, or professional experience is available, this profile makes no speculation and introduces his writing direction based solely on the work itself. For readers interested in the Linux kernel and low-level system development, the book can serve as a reference for learning about related technologies, and through this work Bai Haowen has left a record in the field of technical writing.

Top rated in the same category