git: https://git.busybox.net/busybox/
Busybox是在linux内核启动后加载运行的用户空间程序,在源码设计上是基于C语言完成设计和开发的。与常规程序一样,Busybox的入口同样是main(),定义在libbb/appletlib文件的末尾处。
代码目录结构
在较老版本的Busybox中,对于Busybox的多个程序是全部塞进了一个名为utility.c的文件中,后来更改了Busybox的整体源码结构和设计,将这些程序拆分成了各个工具模块。
目录名称 | 功能说明 |
---|---|
docs | 相关支持文档 |
applets | 实现applets框架的文件。目录中包含了几个main()的文件 |
applets_sh | 此目录包含了几个作为shell脚本实现的applet示例。在“make install”时不会被自动安装,需要使用时,手动处理 |
testsuite | 命令测试套 |
include | busybox项目的头文件 |
configs | busybox自带的默认配置文件 |
libbb | 与busybox实现相关的库文件(可复用函数) |
arch | 包含用于不同体系架构的makefile文件。约束busybox在不同架构体系下的编译构建过程 |
archival | 与压缩相关命令的实现源文件。 |
debianutils | 针对Debian的套件。 |
init | init进程的实现源码目录 |
console-tools | 与控制台相关的一些命令 |
klibc-utils | klibc命令套件 |
e2fsprogs | 针对Linux Ext2 FS prog的命令。例如chattr、lsattr |
coreutils | 常用的一些核心命令。例如chgrp、rm、cat等 |
editors | 常用的编辑命令。例如diff、vi等 |
networking | 与网络相关的命令,例如arp |
findutils | 用于查找的命令,例如find、grep等 |
libpwdgrp | libpwdgrp相关的命令 |
loginutils | 与用户管理相关的命令 |
mailutils | 与mail相关的命令套件 |
miscutils | 该文件下是一些杂项命令,针对特定应用场景 |
modutils | 与模块相关的命令 |
printutils | Print相关的命令 |
procps | 与内存、进程相关的命令 |
runit | 与Runit实现相关的命令 |
shell | 与shell相关的命令,例如ash、mash等 |
sysklogd | 系统日志记录工具相关的命令 |
util-linux | Linux下常用的命令,主要与文件系统操作相关的命令。 |