内核裁剪与定制化编译实战
📚 共计 30 章节
01
内核源码初探
Linux内核版本演进 · 获取内核源码 · 源码目录结构解析 · 阅读源码的准备工作
源码
入门
02
编译环境搭建
交叉编译工具链安装 · 依赖库安装 · 配置环境变量 · 验证编译环境
工具链
环境
03
内核配置入门
Kconfig语法基础 · make menuconfig图形化配置 · 配置项搜索技巧 · 保存与加载配置
Kconfig
menuconfig
04
内核编译实战
make编译流程 · 多核并行编译 · 编译输出产物分析 · 常见编译错误排查
编译
并行
05
内核模块机制
模块概念与生命周期 · 编写第一个内核模块 · 模块编译与加载 · 模块参数与依赖
模块
LKM
06
设备树基础
设备树起源与作用 · DTS/DTC/DTB文件格式 · 设备树语法详解 · 绑定文档解读
设备树
DTS
07
内核启动流程
汇编启动阶段 · start_kernel函数解析 · init进程启动 · 控制台初始化
启动
汇编
08
内存管理裁剪
内存节点与区域配置 · SLUB分配器调优 · CMA与DMA内存配置 · 内存压缩与交换
内存
SLUB
09
进程调度裁剪
调度类与调度策略 · CFS调度器参数 · 实时调度配置 · HZ与抢占模型选择
调度
CFS
10
文件系统裁剪
VFS层理解 · 常用文件系统配置 · 块层与IO调度器 · 文件系统调试选项
文件系统
VFS
11
网络协议栈裁剪
网络子系统架构 · 协议族配置 · Netfilter与iptables · 网络设备驱动配置
网络
Netfilter
12
驱动框架裁剪
字符设备驱动框架 · platform总线 · 设备驱动模型 · 驱动与设备树匹配
驱动
platform
13
电源管理裁剪
CPU空闲与cpuidle · 动态调频cpufreq · suspend/resume流程 · 电源管理QoS
电源
cpufreq
14
内核调试技巧
printk与动态调试 · ftrace使用入门 · perf性能分析 · kdump与crash分析
调试
ftrace
15
内核安全机制
LSM框架与SELinux · 内核地址空间随机化 · 栈保护与ROP缓解 · 安全启动链
安全
LSM
16
实时内核配置
PREEMPT_RT补丁 · 实时内核特性 · 中断线程化 · 自旋锁与互斥锁替换
实时
PREEMPT_RT
17
内核大小优化
去除无用驱动与子系统 · 内核压缩算法选择 · 符号表剥离 · initramfs精简
优化
大小
18
内核启动时间优化
bootloader传递参数 · 内核配置加速 · 驱动异步探测 · init进程优化
启动
优化
19
内核热补丁
kpatch与livepatch原理 · 创建热补丁 · 热补丁生命周期管理 · 热补丁限制
热补丁
livepatch
20
内核测试框架
KUnit单元测试 · kselftest测试集 · LTP测试套件 · fuzz测试与syzkaller
测试
KUnit
21
内核文档与社区
内核文档系统 · 提交补丁流程 · 邮件列表与维护者 · 社区行为准则
社区
补丁
22
内核配置固化
defconfig与tinyconfig · 配置片段管理 · 配置审计与验证 · 配置版本控制
配置
defconfig
23
内核构建系统
Kbuild与Makefile分析 · 编译目标与伪目标 · 模块编译与外部模块 · 构建缓存
构建
Kbuild
24
内核模块签名
模块签名机制 · 生成签名密钥 · 配置强制签名 · 签名验证流程
签名
安全
25
Cgroup与Namespace
Cgroup v1与v2 · 资源控制组配置 · Namespace隔离 · 容器内核配置
容器
Cgroup
26
内核BPF与XDP
BPF虚拟机架构 · BPF程序类型 · XDP驱动模式 · BPF性能工具
BPF
XDP
27
内核固件管理
固件加载机制 · 内置固件与外部固件 · 固件API · 固件版本管理
固件
firmware
28
内核错误处理
BUG_ON与WARN_ON · 错误传播模式 · 内核Oops分析 · panic处理流程
错误
Oops
29
内核版本定制
长期支持版选择 · 向后兼容性 · API变更处理 · 内核升级策略
版本
LTS
30
综合实战项目
需求分析 · 配置裁剪 · 编译部署 · 性能验证 · 文档输出
实战
项目