Rendered at 21:27:01 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
msarnoff 6 hours ago [-]
Busybox is where I learned the multi-call technique of using argv[0] to simulate multiple commands in a single binary.
It works great for Rust binaries, which can get quite large. I had to rewrite some Python utilities (software updater, Wi-Fi network config, etc.) for a very constrained embedded system (64MB RAM) that couldn’t handle Python. So I built them all in a single multi-call binary. I believe `clap` has built-in support for it.
Also, Busybox has a lot of stuff built in that you’d never think of. It has a little vi built in. It has the full suite of ‘runit’ process supervisor utilities. And plenty more. It has a Kconfig system (like the kernel) where you can tune exactly which utilities you need and what features you need. Don’t need full output in ps? Turn it off. Don’t need tab completion? Pretty sure you can turn that off too. Always typing ‘dc’ instead of ‘cd’? Just don’t include dc.
Inspired by BusyBox 9 years ago I wrote a multicall binary that you rename and manipulate to solve puzzles and learn to use the shell in the process. I should do more with it.
The correct phrasing would be "Toybox is... a BusyBox with a more permissive license." BusyBox started first.
Toybox was started in early 2006 by Rob Landley after he ended his BusyBox maintainership due to a dispute with Bruce Perens, the original creator of BusyBox.[1]
It works great for Rust binaries, which can get quite large. I had to rewrite some Python utilities (software updater, Wi-Fi network config, etc.) for a very constrained embedded system (64MB RAM) that couldn’t handle Python. So I built them all in a single multi-call binary. I believe `clap` has built-in support for it.
Also, Busybox has a lot of stuff built in that you’d never think of. It has a little vi built in. It has the full suite of ‘runit’ process supervisor utilities. And plenty more. It has a Kconfig system (like the kernel) where you can tune exactly which utilities you need and what features you need. Don’t need full output in ps? Turn it off. Don’t need tab completion? Pretty sure you can turn that off too. Always typing ‘dc’ instead of ‘cd’? Just don’t include dc.
...do with that what you will!
https://github.com/tnelsond/learn-linux-commandline
0. https://github.com/landley/toybox