Package release with the implementation of a set of standard UNIX utilities, packaged as a single executable file and optimized for minimal resource consumption, with a total size of less than 1 MB. The first release of the new branch 1.32 is positioned as unstable, with full stabilization expected in version 1.32.1, anticipated in about a month. The project code is distributed under the GPLv2 license.
The modular nature of BusyBox allows the creation of a single unified executable file, containing any subset of the utilities implemented in the package (each utility is available as a symbolic link to this file). The size, composition, and functionality of the utility collection can be varied depending on the needs and capabilities of the embedded platform for which the assembly is made. The package is self-sufficient; with a static build using uclibc, creating a working system on top of the Linux kernel requires only creating a few device files in the /dev directory and preparing configuration files. Compared to the previous release 1.31, the memory consumption of a typical BusyBox 1.32 build increased by 3,590 bytes (from 1,011,750 to 1,015,340 bytes).
BusyBox is a key tool in combating GPL violations in firmware. The Software Freedom Conservancy (SFC) and the Software Freedom Law Center (SFLC), on behalf of BusyBox developers, have successfully influenced companies that do not provide access to the source code of GPL programs through both and by means of out of court; repeatedly and successfully. Meanwhile, the author of BusyBox strongly such protection, believing that it undermines his business.
In BusyBox version 1.32, the following changes are highlighted:
- A new command has been added for running scripts from a specified file, Mimfile (somewhat reminiscent of a trimmed-down version of make);
- The find utility has added the ‘-empty’ option for checking empty files;
- In the wget utility, the limit on the number of redirects has been extended, and support for TLS certificate verification has been implemented when enabling ENABLE_FEATURE_WGET_OPENSSL;
- In grep, proper support for the pattern list has been added, along with the ‘-R’ option (recursive processing of directory contents);
- Issues arising during compilation with Clang 9 have been resolved and compiler warnings eliminated;
- A significant batch of fixes has been proposed for the ash and hush command shells, aimed at improving compatibility with other shells. The ability to autocomplete built-in commands using tab has been added to both ash and hush. New built-in commands have been stabilized in ash.
- The fdisk utility has gained support for HFS and HFS+ partitions.
- The init system has improved the handling of race conditions when receiving signals.
- In the visual monitoring utility for system parameters, the output format "%NT" (aligned time with leading zeros) has been added.
- In taskset, the ability to process and output the CPU list (option "-c") has been added.
- In tar, the behavior of the "-a" option has changed; instead of enabling "lzma" compression, it is now associated with automatic detection based on the file extension.
- In udhcpc6, support for the mode "" for DHCPv6 has been added (the server only provides network parameters without assigning an address).
- In nslookup, support for responses without RR records and for SRV records has been added.
- In brctl, new commands "showmacs" and "showstp" have been introduced.
- In dhcpc, support for the "relay server" parameter has been added.
- In syslogd, a setting for displaying time with millisecond accuracy has been added.
- In httpd, when operating in NOMMU mode, it is now possible to set a different home directory, and the '-h' option works when starting a background process.
- In xargs, handling of quoted arguments has been fixed, and correct behavior of the "-n" option has been ensured.
- Fixes have been made in the utilities grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi, and route.
Additionally, last month, release , a BusyBox alternative developed by a former BusyBox maintainer and under the BSD license. The primary purpose of Toybox is to provide manufacturers with the ability to use a minimalist set of standard utilities without opening the source code of modified components. As for capabilities, Toybox is still BusyBox, but 272 basic commands (204 fully implemented and 68 partially) out of 343 planned have already been realized.
Among the new features in Toybox 0.8.3, it is noteworthy that:
- New commands rtcwake, blkdiscard, getopt, and readelf have been added.
- In "make root", it is now possible to create a functional boot environment based only on the Linux kernel and Toybox utilities, which can be loaded using its own init script.
- Initial support for modules with separate implementations of utilities not included in the core ToyBox has been added.
- The toysh command interpreter is now 80% ready (support for functions, history, terminal management, job control, $((math)), and templates is still pending).
- Support for additional options in various utilities, including patch, cal, cp, mv, lsattr, chattr, ls, id, netcat, and setsid has been added.
Source: opennet.ru
