What is Toybox?
landley.net
landley.net
busybox seq does not have -f unlike toybox seq
busybox sed has fewer features than toybox sed, e.g., -E
busybox mv does not have -v but toybox mv has it
toybox base64 has an -i option, busybox does not
toybox hexedit has some useful features not found in busybox hexedit
toybox nc has some useful features not found in busybox nc, e.g., -U and -f
Overall, busybox has more available utilities than toybox.
Toybox provides the shell utilities. You can plug in a keyboard and mouse via the USB charging port. You can screencast to a TV via a Chromecast. Somehow you'd need to get a compilation toolchain on there.
It's an interesting idea IMO. For many people an Android device is their only computer... though I'm not aware of anyone doing this for real in the wild?
He wants to reduce the barrier to entry for tech and empower anyone with the drive to build not be limited by their resources. This is particularly why he focuses on Android smartphones because they're the most popular in the developing world. Also since smartphones are full fledged computers with touchscreens as their primary input method it's the perfect tool for this.
Furthermore, his baseline for this is any such device should have the tools necessary to build a working version of Linux from start to finish on itself. Which is why he's built toy box; it should, by the end of it, have all the tools necessary to building a working build of Linux with a single binary.
> Legend: [posix] <lsb> (development) {toolbox} =klibc= #sash# @sbase@ *beastiebox* $tizen$ -fhs- .yocto. %shell% +request+
So the author split off to work on toybox instead, a new implementation under permissive licensing.
I guess it just goes to show you should pick licenses that actually reflect what you want to happen to your code.
Busybox was written by Bruce Perens. The goal was to fit a whole Linux system onto a floppy disk for rescue disks and installers. Busybox licensed under GPL was not an accident. The kernel was GPL of course, but the rest of the userland was either GNU or largely GNU-inspired. Bruce Perens was heavily involved in early Debian development and even led the project for a while. "Copyleft" is at the core of how Debian operates.
Busybox being GPL licensed was in no way an accident or frivolous decision. It is still licensed under GPLv2 to this day.
I don't know when Rob Landley became involved in Busybox, and I don't know what drama resulted in the reimplementation of Toybox but I do remember he started it with hope that it would eventually ship on Android smartphones. I guess it worked out okay for him, because now he gets paid by Google to work on Toybox.
I realise that my comment is quite ambiguous now. The author I referred to was the author of toybox, Rob Landley, and he was the maintainer of busybox in the early 00s. It was him I meant should pick licenses carefully, but honestly reading more about the situation, my take was too simplistic.
It looks like there was a load of license drama as busybox was a mess of GPL2. GPL2+, GPL 3 and "Linux style" licenses - https://lwn.net/Articles/202106/ https://lwn.net/Articles/202120/
And that's about the time Rob resigned and went off to do toybox on his own. Having read that I'm honestly much more sympathetic, it seems like it was a real mess.
Wouldn't want any GPL'd code in android... Oh wait