第 1 章 简单字符设备驱动入门
本章共 2 节,点击下方链接阅读:
第 1 章 跨越界限:从用户空间到内核的第一步
1.1 编写一个简单的 misc 字符设备驱动
.2 技术准备与环境
在真正动手敲代码之前,我们需要确保环境就绪,并且对即将面对的这个“怪兽”——Linux 内核驱动模型——有一个心理准备。
第 2 章 内核与用户空间通信
本章共 3 节,点击下方链接阅读:
第 2 章 内核与用户的边界
2.1 通讯的代价
.2 技术准备与通信路径全景
在那之前,我们需要确保工具在手。
.3 Questions
好了,书合上,理论知识讲完了——现在该动真格的了。
第 3 章 硬件 I/O 内存访问
本章共 2 节,点击下方链接阅读:
第 3 章 内存之外——当内核试图触碰硬件
这一章,我们要处理的是驱动程序与硬件通信的「最后一公里」问题。
.2 访问内核中的硬件 I/O 内存
让我们直接切入正题。
第 4 章 硬件中断处理
本章共 3 节,点击下方链接阅读:
第 4 章 硬件中断与内核的应答之道
想象这样一个场景。
.2 技术准备与内核的中断处理真相
上一节我们聊了那么多关于“门铃”的理论——什么是中断、CPU 如何响应、内核栈如何切换。现在,让我们把视线拉回到现实。作为驱动开发者,我们并不直接去接那些电线,那是内核硬件层和 BSP 的事。我们真正打交道的是内核提供的一层抽象。
.3 练习题与思考
走到这里,机制应该已经清楚了——或者你以为清楚了。接下来这部分是「真刀真枪」的检验时间。下面的题目难度递进,建议先不看提示独立思考,卡住了再翻。
第 5 章 内核延迟与时间管理
本章共 2 节,点击下方链接阅读:
ch05_1
第 5 章 等待的艺术:定时器、线程与工作队列
第 5 章 内核里的时间与异步工作
第 2 节 — 技术准备与环境
第 6 章 独占的代价:临界区与原子性
本章的叙事核心
第 7 章 原子操作与内存屏障
本章共 3 节,点击下方链接阅读:
第 7 章 无锁的艺术与陷阱
有一类问题,表面上看是工程实现问题,实际上是认知边界问题。
.2 实战中的内存屏障:一次与硬件的「小心翼翼」的对话
上一节我们聊了如何安全地管理引用计数,但内核同步的世界里,除了数据结构的生命周期,还有一个更让硬件驱动开发者头疼的领域:与外部世界的通信。
.3 进一步阅读与资源
走到这里,我们已经触及了内核并发与同步机制中最核心、也最容易「炸」的一些部分。从简单的原子变量到复杂的内存屏障,从自旋锁的死循环到 RCU 的延迟释放,这些机制构成了内核稳定性的基石。