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.31 is positioned as unstable, with full stabilization expected in version 1.31.1, which is anticipated in about a month. The project's code is distributed under the GPLv2 license.
The modular nature of BusyBox allows for the formation of a unified executable file that contains any set of 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 build is being made. The package is self-sufficient; with a static build using uclibc, only a few device files need to be created in the /dev directory and configuration files prepared to create a working system on top of the Linux kernel. Compared to the previous release 1.30, the memory consumption of the typical BusyBox 1.31 build has decreased by 86 bytes (from 1008478 to 1008392 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.
The following changes are highlighted in BusyBox 1.31:
- New commands added: ts (implementation of a client and server for the TSP (Time-Stamp Protocol)) and i2ctransfer (creation and sending of I2C messages);
- Support for DHCP options (time zone information) and 101 (time zone name in the TZ database) added in udhcp for IPv6;
- Support for static bindings of host names to clients added in udhcpd;
- In the ash and hush command shells, numeric literals "BASE#nnnn" have been implemented. The ulimit command has been made compatible with bash, including the options "-i RLIMIT_SIGPENDING" and "-q RLIMIT_MSGQUEUE". Support for "wait -n" has been added. Variables compatible with bash have been introduced as well;
- In the hush shell, the variable "$-" has been implemented, listing the options that are activated by default;
- In bc from upstream, code for passing values by reference has been moved, support for void functions has been added, and the ability to work with values of ibase up to 36 has been introduced;
- In brctl, all commands have been updated to work using the pseudo-FS /sys;
- The code for the fsync and sync utilities has been merged.
- Enhanced implementation of httpd. Improved handling of HTTP headers and proxy mode operation. SVG and JavaScript have been added to the list of MIME types;
- The losetup command has been enhanced with the '-c' (mandatory recheck of the size of the file associated with the loop device) option, as well as an option for scanning partitions. Support for using /dev/loop-control has been added in mount and losetup;
- In ntpd, the SLEW_THRESHOLD value has been increased from 0.125 to 0.5;
- Support for assigning empty values has been added to sysctl;
- The watch command now supports fractional values in the '-n SEC' option;
- Added the capability to run mdev as a background process;
- The wget utility has been implemented with the '-o' flag to specify a log file for recording. Notifications of the start and completion of downloads have been added;
- In telnetd, support for the AYT IAC command has been added;
- In vi, the command 'dG' has been added (deleting content from the current line to the end of the file);
- The dd command has been enhanced with the 'oflag=append' option;
- In the top utility, the '-H' flag has been added to enable thread scanning mode.
Additionally, two weeks ago, 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 from BusyBox, now implementing 188 basic commands out of 220 planned.
Among the innovations in Toybox 0.8.1, the following can be noted:
- A functionality level sufficient for building Android in a Toybox-based environment has been achieved.
- New commands mcookie and devmem have been included, as well as rewritten commands tar, gunzip, and zcat that were moved from the experimental branch.
- A new implementation of vi has been proposed for testing.
- Support for the options '-wholename/-iwholename' has been added to the find command,
'-printf' and '-context'; - The grep command has added the '--exclude-dir' option;
- The echo command has added support for the '-E' option.
- The mount command has added support for 'UUID'.
- The date command now accounts for the time zone specified in the TZ environment variable.
- Support for relative ranges (+N) has been added to sed.
- The readability of the output of ps, top, and iotop has been improved.
Source: opennet.ru
