内容简介
本书是《奔跑吧Linux内核(第2版)》系列的第二卷,专注于Linux内核调试技术与典型案例分析。作者笨叔结合多年的实际开发经验,以庖丁解牛的方式深入剖析内核调试的核心工具与方法,帮助读者从理论走向实战。
全书共分为三大部分:第一部分介绍内核调试环境搭建与基础调试工具(如GDB、QEMU、ftrace、perf等)的使用技巧;第二部分通过多个真实案例(如内存泄漏、死锁、内核崩溃、性能瓶颈等)一步步演示如何定位并解决问题;第三部分探讨内核高级调试手段,包括Kprobes、SystemTap、eBPF等前沿技术。每个案例都配有完整的实验环境与代码,读者可亲手重现问题并验证解决方案。
本书不仅适合Linux内核开发者、驱动工程师、系统程序员阅读,也可作为高校操作系统课程的教学参考书。通过本书的学习,读者将能够系统掌握内核调试方法论,提升解决复杂系统问题的能力。
目录
版 权
内容提要
致 谢
如何阅读本书
服务与支持
第1章 并发与同步
本章高频面试题
1.1 原子操作
1.2 内存屏障
1.3 经典自旋锁
1.4 MCS锁
1.5 排队自旋锁
1.6 信号量
1.7 互斥锁
1.8 读写锁
1.9 读写信号量
1.10 RCU
1.11 案例分析:内存管理中的锁
第2章 中断管理
本章高频面试题
2.1 中断控制器
2.2 硬件中断号和Linux中断号的映射
2.3 注册中断
2.4 ARM64底层中断处理
2.5 ARM64高层中断处理
2.6 软中断和tasklet
2.7 工作队列
第3章 内核调试与性能优化
本章高频面试题
3.1 打造ARM64实验平台
3.2 ftrace
3.3 内存检测
3.4 死锁检测
3.5 内核调试方法
3.6 使用perf优化性能
3.7 SystemTap
3.8 eBPF和BCC
第4章 基于x86_64解决宕机难题
本章高频面试题
4.1 Kdump和Crash工具
4.2 x86_64架构基础知识
4.3 在CentOS 7.6中安装和配置Kdump和Crash
4.4 crash命令
4.5 案例1:一个简单的宕机案例
4.6 案例2:访问被删除的链表
4.7 案例3:一个真实的驱动崩溃案例
4.8 死锁检查机制
4.9 案例4:一个简单的死锁案例
4.10 案例5:分析和推导参数的值
4.11 案例6:一个复杂的宕机案例
4.12 关于Crash工具的调试技巧汇总
第5章 基于ARM64解决宕机难题
本章高频面试题
5.1 搭建Kdump实验环境
5.2 案例1:一个简单的宕机案例
5.3 案例2:恢复函数调用栈
5.4 案例3:分析和推导参数的值
5.5 案例4:一个复杂的宕机案例
第6章 安全漏洞分析
本章高频面试题
6.1 侧信道攻击
6.2 CPU熔断漏洞分析
6.3 CPU“幽灵”漏洞
附录A 使用DS-5调试ARM64 Linux内核
A.1 DS-5社区版下载和安装
A.2 使用DS-5调试内核的优势
A.3 FVP模拟器使用
A.4 单步调试内核
附录B ARM64中的独占访问指令
附录C 图解MESI状态转换
C.1 初始化状态为I
C.2 初始化状态为M
C.3 初始化状态为S
C.4 初始化状态为E
附录D 高速缓存与内存屏障
D.1 存储缓冲区与写内存屏障
D.2 无效队列与读内存屏障
D.3 内存屏障指令总结
D.4 ARM64的内存屏障指令的区别
您当前的等级为
登录后免费下载登录
小黑屋反思中,不准下载!
评论后刷新页面下载评论
支付¥以后下载
请先登录
您今天的下载次数(次)用完了,请明天再来
支付积分以后下载立即支付
支付以后下载立即支付
您当前的用户组不允许下载升级会员
您已获得下载权限
您可以每天下载资源次,今日剩余次
免责申明:
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。