01
BusyBox初识
什么是BusyBox · 起源与发展 · 嵌入式地位
概念历史
02
编译环境搭建
交叉编译工具链 · 环境变量 · 源码下载
工具链配置
03
BusyBox配置体系
menuconfig · 默认模板 · 配置项分类
menuconfig模板
04
核心命令裁剪
文件系统命令 · 进程管理 · 网络命令
ls/cpps/killping
05
模块化编译技巧
静态/动态编译 · 模块依赖 · 最小化策略
编译依赖
06
BusyBox安装与部署
make install · 目录结构 · 二进制瘦身
安装部署
07
文件系统基础
根目录结构 /bin /sbin /etc /lib 详解
目录结构
08
glibc vs musl libc
内存占用 · 性能 · 兼容性 · 选型建议
libc对比
09
动态库依赖分析
ldd命令 · 依赖提取 · 最小化库集合
ldd依赖
10
静态链接 vs 动态链接
优缺点 · 空间占用 · 调试权衡
链接优化
11
init进程与启动流程
BusyBox init · sysvinit · systemd · inittab
init启动
12
设备节点管理
devtmpfs · mdev · udev · 自动创建设备
设备mdev
13
文件系统类型选择
squashfs · jffs2 · ubifs · ext4 · ramfs
文件系统选型
14
squashfs只读文件系统
制作镜像 · 压缩算法 · 挂载优化
squashfs压缩
15
initramfs与initrd
最小initramfs · 内核集成 · 启动加速
initramfs启动
16
根文件系统制作实战
从零构建 · 目录创建 · 必要文件拷贝
实战根文件系统
17
/etc目录瘦身
passwd/group/shadow最小化 · inittab精简
/etc瘦身
18
/lib目录瘦身
动态库提取 · strip · 符号表删除
/lib库优化
19
/usr目录精简
合并/bin与/usr/bin · 合并/lib · 删除文档
/usr合并
20
/var目录处理
日志最小化 · 临时文件 · volatile配置
/var日志
21
/tmp目录优化
tmpfs挂载 · 大小限制 · 清理策略
/tmptmpfs
22
Shell脚本瘦身
BusyBox ash · 脚本依赖 · 内建命令替代
shellash
23
配置文件合并
合并配置 · 环境变量 · 条件编译
配置合并
24
strip与sstrip工具
二进制strip · sstrip高级瘦身 · 符号表
stripsstrip
25
UPX压缩
UPX原理 · 压缩率 · 解压开销 · 场景
UPX压缩
26
内核模块裁剪
必要驱动 · 文件系统模块 · 网络协议栈
内核模块
27
内核参数优化
配置项裁剪 · 内存优化 · 启动参数
内核参数优化
28
整体镜像制作
合并内核+根文件系统 · zImage/uImage · 烧录
镜像烧录
29
性能测试与验证
启动时间 · 内存占用 · 功能完整性
测试验证
30
综合案例:ARM Cortex-M4
IoT设备瘦身 · 32MB→2MB 实战经验
实战Cortex-M4