01
BusyBox初识
什么是BusyBox · 在嵌入式SDK中的角色 · vs GNU Coreutils
概念对比
02
编译环境搭建
交叉编译工具链 · Kconfig/Makefile · 源码获取与解压
工具链环境
03
基础裁剪配置
make menuconfig入门 · 目标架构(ARM/MIPS/RISC-V) · 静态/动态编译
配置架构
04
Applet选择策略
核心必选(init/sh/mount) · 网络工具裁剪 · 文件系统取舍
策略必选
05
模块化编译技巧
模块化原理 · 单独编译Applet · allyes/allnoconfig验证
模块编译
06
大小优化
strip/sstrip · 移除调试符号 · uclibc/musl替代glibc
优化体积
07
功能裁剪实战
移除vi/awk/sed · 精简help · 禁用不需要feature
实战精简
08
配置文件管理
保存/恢复.config · defconfig标准化 · 版本控制管理
配置管理
09
BusyBox init系统
init进程启动 · inittab配置 · 单用户/多用户模式
init系统
10
Shell集成
ash vs hush · 脚本兼容性 · 内置/外置命令权衡
Shell兼容
11
网络功能裁剪
telnetd/httpd · tftp客户端/服务器 · ping/traceroute
网络裁剪
12
文件系统支持
mount/umount · NFS支持 · FAT/EXT4工具
文件系统挂载
13
设备管理
mdev vs udev · 设备节点自动创建 · 热插拔事件
设备mdev
14
日志系统
syslogd配置 · 日志级别控制 · 远程日志转发
日志syslog
15
进程管理
ps/top/kill · 进程优先级 · OOM管理
进程监控
16
内存优化
内存占用分析 · tinyalloc · 共享库加载
内存优化
17
启动速度优化
并行初始化 · 减少init脚本 · prelink加速
启动加速
18
安全裁剪
移除setuid/setgid · 禁用不安全命令 · SELinux支持
安全加固
19
国际化支持
移除locale · 禁用gettext · 精简字符集
i18n精简
20
测试与验证
功能测试 · 回归测试 · QEMU模拟验证
测试QEMU
21
集成到SDK
与Buildroot集成 · 与Yocto集成 · 自定义SDK集成
集成SDK
22
补丁管理
制作/应用补丁 · 维护本地patch · 与上游同步
补丁维护
23
多架构支持
同一配置多架构 · 架构优化 · 条件编译
多架构交叉
24
调试技巧
gdb调试BusyBox · 启用调试输出 · 分析core dump
调试gdb
25
性能分析
perf分析 · 启动时间测量 · 内存泄漏检测
性能perf
26
容器场景
Docker镜像应用 · 最小化容器 · Alpine经验
容器Docker
27
物联网场景
资源受限裁剪 · 低功耗优化 · OTA升级
IoT低功耗
28
高级裁剪
自定义Applet开发 · 添加私有命令 · 修改默认行为
高级定制
29
常见问题
编译错误解决 · 运行时异常 · 兼容性排查
FAQ排错
30
最佳实践
裁剪清单模板 · 持续集成配置 · 文档与维护策略
最佳实践CI