第 1 章 内核编程新视界 —— 从零开始构建你的内核工作空间
有一类问题,表面上看是「工程问题」,实际上是「权限与认知」的问题。
第 2 章 从源码构建 6.x Linux 内核(第一部分)
从源码构建 Linux 内核:一场漫长的修行
第 3 章 从源码构建 6.x Linux 内核(第二部分)
本章叙事线索:在上一章,我们像准备手术台一样配置了内核。现在手术刀要下去了——我们要切开代码,编译它,安装它,并看着它在 GRUB 的引导下苏醒。这不仅是敲命令,这是在亲手制造一个操作系统的灵魂。
第 4 章 你好,内核——Linux 内核模块与内核架构基础
章节引子:特权与边界
第 5 章 编写你的第一个内核模块——第二部分
这可能是你第一次意识到:所谓的「模块化」,在实际工程中并不是把东西扔进独立文件夹就完事了。上一章我们让一个最简单的内核模块跑了起来,就像刚学会用打火机生火;但如果你真的要靠这堆火过冬,你需要的是一套不仅能生火,还能控制火势、防止回火、并在天冷时自动添柴的系统。
. 内核机制 essentials —— 进程与线程
上一章我们折腾完了内核模块的入门,现在你应该已经能在内核里写点简单的代码了。但这只是冰山一角。Linux 内核庞大、复杂且深奥,如果我们想在这里面自由穿梭,光会 printk 是远远不够的。
第 7 章 内存管理内幕
内核内幕,尤其是内存管理,是一片广阔且复杂的领域。说实话,我不打算在这本书里把那些血淋淋的底层细节全抖落出来——那恐怕得再写两本书才够。
第 8 章 内核内存分配器:伙伴系统与 Slab
8.0 引言:当内核开始管理内存
第 9 章 内核内存分配进阶:选择、回收与生存
上一章我们聊了内核内存分配的底层逻辑,也就是那个永远转动的引擎——页面分配器(Buddy System),以及建立在它之上的 Slab 分配器。如果你以为这就是全部,那你可能低估了这个系统的复杂性。
第 10 章 CPU 调度器(第 1 部分)
章节引子
第 11 章 CPU 调度器(第二部分)
引言:控制的幻觉
第 12 章 并发的代价 —— 内核同步机制 Part 1
前两章我们聊了调度,看起来系统运转良好,井井有条。但那是因为我们运气好,一直只盯着「一个进程」看。
第 13 章 内核同步(下半部分)
这不仅仅是一章关于“如何加锁”的教程。我们已经熬过了上一章的基础洗礼,现在要面对的是内核同步中那些真正棘手、真正考验你对系统底层理解的问题。