[Aboriginal] Busybox applets not yet implemented

Rob Landley rob at landley.net
Fri May 17 23:02:56 PDT 2013

Cleaning out my drafts folder, I have this:

On 04/19/2013 01:36:23 AM, idunham at lavabit.com wrote:
> Landley wrote:
> > I've thought of installing busybox in one directory and toybox in
> > another and having the $PATH fall back between them, but busybox is
> > going away. Toybox is replacing busybox. So the extra plumbing would
> > just be transitional.
> >
> > build/host/busybox currently says:
> >
> > Currently defined functions:
> > 	[, [[, ash, awk, bunzip2, bzcat, bzip2, cpio, dd, diff, egrep,
> > expr,
> > 	fgrep, find, ftpd, ftpget, ftpput, grep, gunzip, gzip,
> > ifconfig, init,
> > 	install, less, lspci, man, mount, mv, pgrep, ping, pkill, ps,
> > route,
> > 	sed, sh, split, stat, tar, test, tr, umount, unxz, vi, wget,
> > xzcat,
> > 	zcat
> >
> > vi and less need the same line editing code as the shell command
> > history, otherwise reasonably straightforward.
> >
> > grep/egrep/fgrep are mostly just regex code wrappers, I should do  
> that.
> > mount/umount I started and got interrupted, need to get back to it.
> My own experiments with booting a Debian system with a custom shell  
> init
> indicate that only a few things are needed to boot up a system  
> properly:
> -a sh: pd/mksh is enough for now.

I have a lot of design work done for toysh. Wack-a-moleing my way to  

> -mount: the next most important part.

That's fairly high on my list, I just keep getting toys/pending/* files  
I need to clean up before doing new stuff...

> -mdev: fixing /dev does demand some subdirs, and hotplug will require
> handling env variables (which busybox has support for);
> not highest priority, though.

Question: how much does devtmpfs handle (there was a recent thread on  
busybox about an environment variable they weren't using listing  

> -grep, modprobe, cut: I autoload modules by
> grep -h MODALIAS /sys/bus/*/devices/*/uevent 2>/dev/null |cut -d = -f  
> 2
> |xargs modprobe -abq

Should there be a tool that does this? (An mdev flag, perhaps?)

> modprobe needs the following for this use case:
> Support aliases. May require depmod.
> -a: insert all modules in a list at once
> -b: blacklist needs to work!
> -q: Hot/coldplug shouldn't spit out a mile of errors.

Um, blacklist? (Explain? Why is this needed, and the man page says  
there's a config file...?)

> > cpio and tar are fairly straightforward, on my todo list.
> Of the two, tar may be more important for building, but cpio is what
> matters for replacing klibc-utils.

I'm pondering doing a kickstarter/indiegogo to see if anybody's  
employers want to throw money at me to work on this stuff full-time for  
a while. (Alas, I'm no longer in a position to take half a year off and  
just live off savings. I got a real house and the bills that go with  

> > man is a design issue: not sure what it _should_ do. A trivial zcat  
> of
> > preformatted text is trivial, it should integrate with the "help"
> > command somehow. (help documents shell builtins, man documents stuff
> > installed in $PATH, for toybox both are builtin but man should also
> > check $PATH for external commands. But _not_ the horrible troff  
> crap.)
> Standard man often caches formatted troff as text, which would be a  
> good
> place to start.

Yup. But that doesn't help the whole "build from source, rebuild from  
source under the result" self-bootstrapping thing. It still requires a  
"real system" containing external tools that are not part of this  

You can't get rid of the old stuff if you still need it. Thus I still  
consider this an unsolved problem... (todo item.)

> > ash and sh are a biggish deal, I've got a lot of research for that  
> but
> > need a couple months to do it right. expr is basically the $((blah))
> > shell builtin. [, [[, and test are all the same command, which I've
> > started a local implementation of.
> There's plenty of shells around, so I'm not too concerned about it.
> Of course, this is all my own opinion, looking at it from the boot
> perspective.

I've gotten very little done the past month because I've been swamped  
by day job work, but I finally got a chunk of it checked in so a little  
of the pressure's off, at least for the weekend. (I'm also helping a  
friend move so I don't get the whole weekend off, but still. I can at  
least catch up a bit on email. :)


More information about the Aboriginal mailing list