内核配置裁剪与模块化编译实战
📚 共计 30 章节
01
内核源码获取
从kernel.org下载 · Git克隆主线仓库 · GPG签名校验
源码
验证
02
内核源码目录结构
arch/block/crypto/drivers/fs/include/init/ipc/kernel/lib/mm/net/scripts/security/sound/usr/virt
目录
架构
03
配置工具入门
make config · menuconfig · nconfig · gconfig · xconfig 区别与场景
配置
工具
04
Kconfig语法基础
config/menuconfig/choice/menu/if/depends on/select/default/help
语法
Kconfig
05
Makefile与内核编译
顶层Makefile · 子目录Makefile · Kbuild · vmlinux/modules/dtbs
编译
Makefile
06
内核配置裁剪原则
最小化 · 功能导向 · 硬件匹配 · 安全合规
裁剪
原则
07
模块化编译基础
编译为模块(=m) · 依赖关系 · modules_install · insmod/modprobe/rmmod
模块
加载
08
内核模块开发入门
Hello World模块 · 初始化和退出函数 · 许可证声明
模块
入门
09
模块参数与导出符号
module_param · module_param_array · EXPORT_SYMBOL · EXPORT_SYMBOL_GPL
参数
导出
10
内核模块编译与Makefile
Kbuild Makefile · 使用内核源码树编译外部模块
Makefile
编译
11
设备驱动模型基础
总线(bus) · 设备(device) · 驱动(driver) · platform总线与设备树
驱动
设备树
12
字符设备驱动
register_chrdev · file_operations · open/read/write/ioctl
字符设备
驱动
13
内核内存管理
kmalloc/vmalloc · GFP标志 · slab分配器 · kmemleak
内存
slab
14
内核并发与同步
自旋锁(spinlock) · 互斥锁(mutex) · 信号量(semaphore) · RCU
并发
同步
15
中断与底半部
request_irq · 中断处理 · tasklet · workqueue · threaded IRQ
中断
底半部
16
内核定时器与延迟
timer_list · hrtimer · msleep/udelay/ndelay · jiffies
定时器
延迟
17
procfs与sysfs
创建/proc条目 · sysfs属性文件 · 用户空间数据交换
procfs
sysfs
18
内核调试技术
printk · 动态调试 · oops分析 · kgdb
调试
oops
19
内核性能分析
perf · ftrace · function_graph · tracepoint
性能
跟踪
20
内核安全机制
SELinux/AppArmor · KASLR · stackprotector
安全
防护
21
内核网络协议栈
sk_buff · 网络设备注册 · netfilter钩子 · 内核防火墙
网络
netfilter
22
文件系统驱动
VFS层 · 注册文件系统 · 超级块/索引节点/目录项
文件系统
VFS
23
块设备驱动
块设备注册 · request_queue · bio · RAM磁盘驱动
块设备
驱动
24
设备树 (Device Tree)
dts/dtsi · 绑定文档 · 驱动中解析设备树属性
设备树
dts
25
内核启动流程
head.S · start_kernel · setup_arch · rest_init · init进程
启动
流程
26
模块签名与安全启动
sign-file · MOK管理 · Secure Boot影响
签名
安全启动
27
内核实时性 (PREEMPT_RT)
抢占模型 · RT补丁 · 实时配置 · 优先级继承
实时
PREEMPT_RT
28
内核编译优化
CC优化 · LTO · 大小优化 · 编译时间优化
优化
LTO
29
内核移植与BSP
芯片BSP结构 · 内核配置与设备树适配 · 最小系统启动
移植
BSP
30
内核社区与贡献
提交补丁流程 · 邮件列表 · checkpatch.pl · Signed-off-by
社区
贡献