Linux内核源码阅读与分析

📚 共计 30 章节
第01章
内核全景图
Linux内核架构概览 · 源码目录结构 · 版本演进与选择 · 阅读前准备
概览入门
第02章
开发环境搭建
虚拟机/QEMU · 交叉编译链 · BusyBox根文件系统 · 内核编译启动
环境QEMU
第03章
源码阅读工具
Vim/Emacs配置 · Ctags/Cscope/Clangd · VS Code对比 · Git补丁
工具效率
第04章
内核编译系统
Kconfig/Makefile · 配置选项 · 模块/内置编译 · 优化与调试
构建Kconfig
第05章
内核启动流程
header.S · start_kernel() · setup_arch/mm_init · rest_init
启动x86
第06章
内存管理基础
struct page/zone/node · 页表/TLB · 伙伴系统/slab · vmalloc/kmalloc
内存核心
第07章
进程管理核心
task_struct深度解析 · fork/exec/clone · CFS调度器 · 状态切换
进程调度
第08章
中断与异常
IDT初始化 · irq_desc · 上半部/下半部 · 中断上下文
中断硬核
第09章
系统调用实现
entry_SYSCALL_64 · sys_call_table · 参数传递 · 添加新调用
系统调用实战
第10章
文件系统VFS
super_block/inode/dentry/file · 主要文件系统操作
VFS抽象
第11章
块I/O层
bio/request · I/O调度器 · 块设备框架 · 直接/缓冲I/O
存储I/O
第12章
网络协议栈
sk_buff · 网络设备层 · TCP/IP实现 · Netfilter/iptables
网络协议
第13章
同步机制
原子操作/自旋锁 · 信号量/互斥锁 · 读写锁/RCU · 内存屏障
并发同步
第14章
时间管理
jiffies/HZ · 高精度定时器 · clock_event_device · tickless
时间定时
第15章
内核调试技术
printk/动态调试 · kgdb/kdb · ftrace/tracepoint · kprobe/systemtap
调试trace
第16章
设备驱动模型
kobject/kset · platform bus · udev/sysfs · 设备树基础
驱动模型
第17章
字符设备驱动
cdev注册 · file_operations · ioctl设计 · 并发控制
字符设备实战
第18章
内存映射与DMA
mmap实现 · 页错误处理 · DMA API · IOMMU/SMMU
内存DMA
第19章
内核模块开发
模块加载/卸载 · 参数/符号导出 · 依赖/版本 · GPL
模块可加载
第20章
容器与命名空间
nsproxy · cgroups · runc原理 · Docker与内核交互
容器云原生
第21章
虚拟化技术
KVM模块 · VMCS/VMX · EPT内存虚拟化 · virtio
虚拟化KVM
第22章
安全机制
LSM/SELinux · capabilities · seccomp/bpf · KASLR
安全LSM
第23章
性能分析
perf工具 · 火焰图 · 热点定位 · 锁竞争/缓存优化
性能perf
第24章
内核测试
LTP · KUnit · syzkaller · 回归/CI集成
测试质量
第25章
ARM64架构
异常级别 · 页表/地址翻译 · GIC中断 · 启动流程
ARM体系结构
第26章
RISC-V架构
特权级/SBI · Sv39/Sv48 · PLIC/CLINT · 内核移植
RISC-V新兴
第27章
BPF与跟踪
eBPF虚拟机 · 映射/辅助函数 · bpftrace/bcc · XDP/TC
BPF可观测
第28章
内核内存调试
KASAN/UBSAN · kmemleak/slab调试 · memtest · OOM killer
调试内存
第29章
内核社区参与
邮件列表/patch · coding style · review流程 · DCO
社区贡献
第30章
综合实战
迷你驱动 · 内核裁剪 · 漏洞分析 · 构建发行版
实战毕业