The release of BusyBox 1.34 has been introduced, featuring a set of standard UNIX utilities packaged into a single executable file and optimized for minimal system resource consumption, with a total size of under 1 MB. The first release of the new 1.34 branch is positioned as unstable, with full stabilization expected in version 1.34.1, which is anticipated to be available in about a month. The project code is distributed under the GPLv2 license.
The modular nature of BusyBox allows for the creation of a unified executable file containing an arbitrary set of utilities included 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 based on the needs and capabilities of the embedded platform for which the build is being created. The package is self-sufficient; for a static build with uclibc to create a working system on top of the Linux kernel, it is only necessary to create a few device files in the /dev directory and prepare configuration files. Compared to the previous release 1.33, the memory consumption of the typical BusyBox 1.34 build has increased by 9620 bytes (from 1032724 to 1042344 bytes).
BusyBox is a key tool in combating GPL violations in firmware. The Software Freedom Conservancy (SFC) and Software Freedom Law Center (SFLC) have successfully influenced companies that do not provide access to the source code of GPL programs, both through litigation and by entering into out-of-court agreements, on behalf of the BusyBox developers. At the same time, the author of BusyBox strongly opposes such protection, believing that it undermines his business.
The following changes are highlighted in BusyBox 1.34:
- A new utility ascii has been added with an interactive ASCII character name table.
- A new utility crc32 for checksum calculation has been introduced.
- The built-in http server now supports DELETE, PUT, and OPTIONS methods.
- In udhcpc, the ability to change the default network interface name has been provided.
- The TLS protocol implementation has added support for the elliptic curve secp256r1 (P256).
- Continued development of the ash and hush shells. In hush, the handling of the ^D command has been aligned with the behavior of ash and bash, with the implementation of the bash-specific construction $’str’ and optimization of the ${var/pattern/repl} replacement operations.
- A significant amount of fixes and improvements has been made in the implementation of the awk utility.
- The base32 and base64 utilities have added the ‘-i’ option to ignore invalid characters.
- In the bc and dc utilities, the handling of the environment variables BC_LINE_LENGTH and DC_LINE_LENGTH has been brought closer to GNU utilities.
- The blockdev utility has been enhanced with the --getra and --setra options.
- The chattr and lsattr utilities have added the ‘-p’ option. The lsattr command has expanded the number of supported ext2 filesystem flags.
- The cp utility has been enhanced with the options ‘-n’ (prevent overwrite) and ‘-t DIR’ (specify target directory).
- The cpio utility has improved functionality with the structure ‘cpio -d -p A/B/C’.
- The df utility has been updated with the option ‘-t TYPE’ (limit output to a specific filesystem type).
- The du utility now includes the option -b (equivalent to ‘--apparent-size --block-size=1’).
- The env utility has added the option ‘-0’ (terminate each line with a null character).
- The free utility now supports the option ‘-h’ (output in a human-readable format).
- The ionice utility has added the option ‘-t’ (ignore failures).
- The login utility now supports the environment variable LOGIN_TIMEOUT.
- The mv utility has been updated with the options ‘-t’ (define target directory for moving) and ‘-T’ (treat the second argument as a file).
- The shred utility now includes the option ‘-s SIZE’ (number of bytes to wipe).
- The taskset utility has added the option ‘-a’ (apply CPU affinity to all threads of the process).
- The utilities timeout, top, watch, and ping now support non-integer values (NN.N).
- The uniq utility has been updated with the option ‘-z’ (use null character as a delimiter).
- The unzip utility has added the option ‘-t’ (check archive).
- The vi editor now allows the use of regular expressions in the command ‘:s’. The expandtab parameter has been added. Improvements have been made to paragraph navigation, range selection, and undo functionality.
- The xxd utility has implemented options -i (C-style output) and ‘-o DISPLAYOFFSET’.
- The wget utility now handles HTTP 307/308 codes for redirection. The FEATURE_WGET_FTP option has been added to enable/disable FTP support.
- The dd utility has introduced the option ‘iflag=count_bytes’.
- The cut utility has implemented options compatible with the toybox toolkit: ‘-O OUTSEP’, ‘-D’, and ‘-F LIST’.
Source: opennet.ru
