发布一组简约的系统实用程序 BusyBox 1.35

BusyBox 1.35 软件包的发布提供了一组标准 UNIX 实用程序的实现,这些实用程序被设计为单个可执行文件,并针对系统资源消耗最小化进行了优化,集合大小小于 1 MB。 新的 1.35 分支的第一个版本定位为不稳定;完全稳定的版本将在 1.35.1 版本中提供,预计一个月左右。 项目代码根据 GPLv2 许可证分发。

BusyBox 的模块化特性使得创建一个统一的可执行文件成为可能,该文件包含在包中实现的任意一组实用程序(每个实用程序都以该文件的符号链接的形式提供)。 实用程序集合的大小、组成和功能可以根据正在执行组装的嵌入式平台的需求和功能而变化。 该软件包是独立的;当使用 uclibc 静态构建时,要在 Linux 内核之上创建一个工作系统,您只需在 /dev 目录中创建几个设备文件并准备配置文件。 与之前的版本 1.34 相比,典型 BusyBox 1.35 程序集的 RAM 消耗增加了 1726 字节(从 1042344 字节增加到 1044070 字节)。

BusyBox 是对抗固件中 GPL 违规行为的主要工具。 软件自由保护协会 (SFC) 和软件自由法律中心 (SFLC) 代表 BusyBox 开发者,通过法院和外部渠道,多次成功地影响了那些不提供 GPL 程序源代码访问权限的公司。 - 法院协议。 与此同时,BusyBox 的作者强烈反对这种保护——认为这会毁了他的生意。

BusyBox 1.35 中突出显示了以下更改:

  • find 实用程序实现“-samefile name”选项来检查文件是否使用与指定名称的文件相同的 inode。 统一时间比较代码并添加选项“-amin”、“-atime”、“-cmin”和“-ctime”来检查访问时间和文件创建。
  • mktemp 实用程序中添加了“--tmpdir”选项,用于指定计算与临时文件关联的路径时相对于的基目录。
  • cpio 实用程序中添加了选项“-ignore-devno”以忽略实际设备编号(始终写入 0)和“-renumber-inodes”以在将 inode 存储到存档之前对其重新编号。
  • 在 awk 实用程序中,表达式“printf %%”已被调整。
  • 对 libbb 库添加了大约十几处更改。 改进了 realpath 与其 coreutils 集中对应项的兼容性。
  • 针对 ash 和 hush 命令 shell 提出了大量修复,旨在提高与其他 shell 的兼容性。 Ash 添加了对类似 bash 的 ERR 陷阱、set -E 和 $FUNCNAME 的支持,以及使用“${s:}”表达式更快的字符串检索。 在 ash and hush 中,“${x//\*/|}”操作的执行速度加快了。
  • basename 实用程序实现选项“-a”以在一次调用中传递多个名称,并实现选项“-s SUFFIX”以删除尾随“SUFFIX”字符。
  • 向 blkdiscard 实用程序添加了“-f”(强制)选项。
  • httpd 已停止为有错误的页面发送 Last-Modified/ETag/Content-Length 标头。
  • httpd 和 telnetd 提供更改默认网络端口的功能。
  • 修复了 tar 中的一个漏洞,该漏洞导致在处理具有很长文件名的存档时消耗所有可用内存。
  • P256 和 x25519 的实现已在 TLS 代码中进行了重新设计。
  • wget 实用程序实现了用于发送文件的“--post-file”选项,并允许您为“--post-data”和“--post-file”选项自定义 Content-Type 标头的内容。
  • 超时实用程序现在支持“-k KILL_SECS”选项,以便在命令未在额外的 KILL_SECS 秒内完成时发送 SIGKILL 信号。
  • ip 实用程序中添加了对设备 netns 参数设置的支持。
  • cal 实用程序实现“-m”选项来显示指定的月份。
  • 日期和触摸实用程序允许指定日期中的时区偏移量。
  • 在 vi 编辑器中,添加了对 ~/.exrc 文件的支持,并且更改了“-c”和 EXINIT 的处理。
  • 在 ed 实用程序中,执行读/写命令的结果符合 POSIX-1.2008 规范。 添加了对“-p”选项的支持。
  • 向 cmp 实用程序添加了“-n N”选项,以限制与 N 个字节的比较。

另外,几天前,Toybox 0.8.6 发布了,它是 BusyBox 的类似版本,由前 BusyBox 维护者开发,并在 0BSD 许可证下分发。 Toybox 的主要目的是让制造商能够使用一组简约的标准实用程序,而无需打开修改后的组件的源代码。 就功能而言,Toybox 仍然落后于 BusyBox,但计划的 296 个基本命令中已经实现了 217 个基本命令(83 个完全执行,374 个部分执行)。

在 Toybox 0.8.6 的创新中,我们可以注意到用于创建系统映像的脚本的改进,添加了命令 sha256sum、sha224sum、sha384sum、sha512sum、linux32、strace 和 hexdump。 实施选项“date -s”、“pmap -p”、“tail -F -s”、“kill -0”、reboot/halt/poweroff -d”、“tail –bytes –lines”、“i2cdetect -q” 、“find -quit -lname -ilname -d”、“cut -d $'\n'”、“cut -nb”、“cpio -ignore-devno -renumber-inodes”、“tar -selinux”、“split -n”、“grep -L”。

来源: opennet.ru

添加评论