News: 1728030611

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

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

(2024/10/04)


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 [1]version 1.37.0 , with some 50 changes. It's now [2]Year 2038-ready , its implementation of the [3]late Dave Mills's NTP is [4]Year 2036-safe , and it includes a whole new feature (a version of the [5]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 [6]appreciate slow-moving development around these parts.

[7]

Its developers call Busybox the [8]"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.

[9]

[10]

A hint to this is the [11]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.

[12]

Arch Linux is doing well these days, in part [13]thanks to the Steam Deck , but although hardcore users still assemble it by hand, the [14]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, [15]Bunsen Labs and Crunchbang++ ; both take four or five gigs of disk space. In contrast, Reg FOSS desk favorite [16]Alpine Linux does about as much in about a tenth of the space – and in Alpine, you'll find Busybox providing the shell.

[17]Fancy climbing the peaks of Alpine Linux? 3.20 is out

[18]AI agent promotes itself to sysadmin, trashes boot sequence

[19]Hidden Linux kernel security fixes spotted before release – by using developer chatter as a side channel

[20]US-CERT's top tip: Hack your crap Netgear router before miscreants arrive

Busybox was [21]originally created by Bruce Perens as part of an effort to make a single-floppy-disk Linux distribution. Later, Busybox became part of [22]Aboriginal Linux , an effort to create the smallest possible Linux that was self-hosting – in other words, that could recompile itself. Aboriginal Linux [23]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 [24]original legal test case of the GPL back in 2007. This and [25]follow-on cases continued for some years. That also, indirectly, led to the creation of Busybox's main rival, the more permissively licensed [26]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, [27]handcrafted software . More of this sort of thing, please. ®

Get our [28]Tech Resources



[1] https://git.busybox.net/busybox/log/?h=1_37_stable

[2] https://www.theregister.com/2022/01/17/bbc_iplayer_expires_2038/

[3] https://www.theregister.com/2024/01/23/david_mills_obit/

[4] https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs#Year_2036

[5] https://man7.org/linux/man-pages/man1/getfattr.1.html

[6] https://www.theregister.com/2024/10/02/tcltk_version_9/

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Zv-8xYp0bT2mC0zlRIfeagAAAEM&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[8] https://busybox.net/about.html

[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Zv-8xYp0bT2mC0zlRIfeagAAAEM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Zv-8xYp0bT2mC0zlRIfeagAAAEM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[11] https://busybox.net/FAQ.html#whatis

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Zv-8xYp0bT2mC0zlRIfeagAAAEM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[13] https://www.theregister.com/2023/09/27/osseu_steam_os_3/

[14] https://www.theregister.com/2016/11/02/arch_linux_taster/

[15] https://www.theregister.com/2024/01/31/crunchbang_versus_bunsen_labs/

[16] https://www.theregister.com/2024/05/29/alpine_linux_320_released/

[17] https://www.theregister.com/2024/05/29/alpine_linux_320_released/

[18] https://www.theregister.com/2024/10/02/ai_agent_trashes_pc/

[19] https://www.theregister.com/2020/09/04/linux_kernel_flaw_detection/

[20] https://www.theregister.com/2016/12/13/netgear_r7000_r6400_r8000_security/

[21] https://busybox.net/~landley/forensics.txt

[22] https://landley.net/aboriginal/about.html

[23] https://landley.net/aboriginal/history.html

[24] https://www.theregister.com/2007/09/24/monsoon_gpl_busybox/

[25] https://www.theregister.com/2009/12/15/best_buy_busybox_software_freedom_law/

[26] https://www.landley.net/toybox/about.html

[27] https://www.theregister.com/2024/09/18/the_future_of_software_part_2/

[28] https://whitepapers.theregister.com/



Lee D

Wouldn't Aboriginal Linux now need to start including Rust if it's to build the Linux kernel itself?

jake

No. AL doesn't use or need the really, really small bit of the kernel that was written in rust.

In fact, most things don't.

Anonymous Coward

How would you know, Jake. You and kids, brrrr

Anonymous Coward

Linux kernel (i.e vendor BSP) and busybox is the only thing that is barable these days anyway. The rest of the Linux stack is horribly messy.

The busybox init system is actually very servicable too in comparison to alternatives.

jake

Yes, busybox makes for an excellent init for small projects.

I'm still sticking with Slackware's BSD/SysV hybrid for most stuff, though.

Steve Graham

As it happens, I've just migrated my laptop and desktop from busybox's mdev device manager to eudev . This was prompted by the Thinkpad suddenly deciding that it had found a new, removable SATA drive of zero bytes, which it assigned to /dev/sda replacing the actual SSD. mdev doesn't provide disks by label or by UUID so I had no way of making the kernel find the right drive.

eudev was looking dodgy for a while after Gentoo dropped it, but Devuan and Alpine developers have stepped up.

LILO, you've got me on my knees!
-- David Black, dblack@pilot.njin.net, with apologies to Derek and the
Dominos, and Werner Almsberger