Busybox 1.37 is tiny but capable, the way we like Linux tools to be

Self-proclaimed Swiss Army knife of embedded Linux moves slow and fixes things in latest release

by · The Register

Busybox is tiny, unobtrusive, and runs quite a lot of routers and other key bits of the internet – somewhat like Linux itself used to be.

The Busybox developers have released version 1.37.0, with some 50 changes. It's now Year 2038-ready, its implementation of the late Dave Mills's NTP is Year 2036-safe, and it includes a whole new feature (a version of the getfattr command).

This is the project's first new release in more than a year and a half; aside from a small fix for a single bug, the last new release, version 1.36, was at the start of 2023. As regular readers might have noticed, we appreciate slow-moving development around these parts.

Its developers call Busybox the "Swiss Army knife" of embedded Linux, because in one relatively small tool, it implements not just a Unix-style shell, but also about 300 different commands that are normally external programs in their own right. As a result, it's often found inside devices that use Linux in very resource-constrained environments, such as consumer firewall/routers.

A hint to this is the first entry in the project's FAQ file, which tries to answer "What is Busybox?" Our guess is that the small team has often been pestered by users with just enough knowledge to be dangerous, who were trying to work out why something wasn't working as they expected on their routers.

Busybox shows that Linux still can be pretty small by the standards of other contemporary OSes. It's just that efforts to create a general-purpose OS for various PC hardware end up covering so many use cases that the final result consumes several gigabytes.

Arch Linux is doing well these days, in part thanks to the Steam Deck, but although hardcore users still assemble it by hand, the time-honored hard way, the end result still isn't all that light, because it remains a general-purpose distro. Last year we looked at two of the lightest Debian variants, Bunsen Labs and Crunchbang++; both take four or five gigs of disk space. In contrast, Reg FOSS desk favorite Alpine Linux does about as much in about a tenth of the space – and in Alpine, you'll find Busybox providing the shell.

Busybox was originally created by Bruce Perens as part of an effort to make a single-floppy-disk Linux distribution. Later, Busybox became part of Aboriginal Linux, an effort to create the smallest possible Linux that was self-hosting – in other words, that could recompile itself. Aboriginal Linux pared the OS down to only seven packages. Just for a sense of scale, this article is being written on a fresh install of Ubuntu 24.04 with a mere handful of additional apps, and according to dpkg --list | wc --lines it comprises 2,660 packages. (That's excluding the snaps… And yes, it's a very unfair comparison.)

Busybox also has an additional claim to fame: it was the basis of the original legal test case of the GPL back in 2007. This and follow-on cases continued for some years. That also, indirectly, led to the creation of Busybox's main rival, the more permissively licensed Toybox, which is used in Android.

Busybox 1.37 is a whole 1.5 KB bigger than the previous release:

text       data     bss     dec     hex filename
1022792 559 4988 1028339 fb0f3 busybox-1.36.0/busybox
1024327 559 4988 1029874 fb6f2 busybox-1.37.0/busybox

It continues a long tradition of tiny, efficient, handcrafted software. More of this sort of thing, please. ®