BusyBox 的模块化特性使得创建一个统一的可执行文件成为可能,该文件包含在包中实现的任意一组实用程序(每个实用程序都以该文件的符号链接的形式提供)。 实用程序集合的大小、组成和功能可以根据正在执行组装的嵌入式平台的需求和功能而变化。 该软件包是独立的;当使用 uclibc 静态构建时,要在 Linux 内核之上创建一个工作系统,您只需在 /dev 目录中创建几个设备文件并准备配置文件。 与之前的版本 1.30 相比,典型 BusyBox 1.31 程序集的 RAM 消耗减少了 86 字节(从 1008478 字节减少到 1008392 字节)。
BusyBox 是对抗固件中 GPL 违规行为的主要工具。 软件自由保护协会 (SFC) 和软件自由法律中心 (SFLC) 代表 BusyBox 开发者,均通过
BusyBox 1.31 中突出显示了以下更改:
- 添加了新命令:ts(TSP(时间戳协议)协议的客户端和服务器的实现)和i2ctransfer(I2C消息的创建和发送);
- 为 udhcp 添加了对 DHCP 选项的支持
100 IPv101 的(时区信息)和 6(TZ 数据库中的时区名称); - 在 udhcpd 中添加了对客户端静态主机名绑定的支持;
- ash 和 hush shell 实现数字文字“BASE#nnnn”。 ulimit 命令的实现已与 bash 兼容,包括选项“-i RLIMIT_SIGPENDING”和“-q RLIMIT_MSGQUEUE”。 添加了对“wait -n”的支持。 添加了 bash 兼容的 EPOCH 变量;
- hush shell 实现了一个“$-”变量,该变量列出了默认启用的 shell 选项;
- 通过引用传递值的代码从上游转移到 bc,添加了对 void 函数的支持,并且能够使用最多 36 个 ibase 值;
- 在 brctl 中,所有命令都已转换为使用伪 FS /sys 进行工作;
- fsync 和sync 实用程序的代码已合并;
- httpd 的实现已得到改进。 改进了 HTTP 标头的处理并在代理模式下工作。 MIME 类型列表包括 SVG 和 JavaScript;
- losetup 中添加了“-c”选项(强制双重检查与循环设备关联的文件大小),以及扫描分区的选项。 mount 和 losetup 为使用 /dev/loop-control 的工作提供支持;
- 在ntpd中,SLEW_THRESHOLD值已从0.125增加到0.5;
- 添加了对向sysctl分配空值的支持;
- 在“-n SEC”选项中添加了对小数值的支持以进行观看;
- 添加了将 mdev 作为后台进程运行的功能;
- wget 实用程序实现“-o”标志来指定要将日志写入的文件。 添加了有关下载开始和完成的通知;
- 为 telnetd 添加了对 AYT IAC 命令的支持;
- vi 添加 dG 命令(删除当前行到文件末尾的内容);
- 在 dd 命令中添加了选项“oflag=append”;
- '-H' 标志已添加到 top 实用程序中以启用对各个线程的扫描。
另外,两周前
在 Toybox 0.8.1 的创新中,我们可以注意到:
- 已经实现的功能级别足以在基于 Toybox 实用程序的环境中构建 Android。
- 包含新的 mcookie 和 devmem 命令,并且重写的 tar、gunzip 和 zcat 命令已从测试分支移出。
- 已提出 vi 的新实现用于测试。
- find 命令现在支持“-wholename/-iwholename”选项。
“-printf”和“-context”; - 为 grep 添加了“--exclude-dir”选项;
- Echo 现在支持“-E”选项。
- 添加了对挂载的“UUID”支持。
- date 命令现在考虑 TZ 环境变量中指定的时区。
- 向 sed 添加了对相对范围 (+N) 的支持。
- 提高了 ps、top 和 iotop 输出的可读性。
来源: opennet.ru