[Toybox] New Subscriber

Rob Landley rob at landley.net
Sat Feb 4 09:09:25 PST 2012


On 02/04/2012 04:32 AM, Frank Bergmann wrote:
> Dear List,
> 
> as a new subscriber I want to introduce myself.

Welcome to the list!

> I'm a systems administrator and software engineer from Germany. Started
> thirty years before with 8080, 6502 and Z80 assembler

I started on a commodore 64 myself.  (38911 basic bytes free.  Not
counting c000, or the tendency for Blitz! to compress things.)

> I still like to
> write small and fast programs and tools - embedded or raw at linux system
> level (of course mainly in C and just sometimes in assembler).

I like small and fast, but primarily what I like is _simple_.

That's what attracted me to busybox in the first place, and why I
couldn't go back to it when I got over the reason I left: it stopped
being simple.  I like code that is as clear, straightforward, and easy
to understand as it can be for what it's doing.

> I dislike the overhead of busybox and heared about toybox. If there's
> something which I can contribute I would be glad to do so.

http://landley.net/toybox/design.html and
http://landley.net/toybox/code.html are the first two things to read.
That second page has an "adding a new command section.

The todo lists are in two places:

My "slush pile" notes are at http://landley.net/toybox/todos and there's
a wiki at http://elinux.org/index.php?title=Busybox_replacement

Feel free to edit the wiki.  I note that xargs has since been
implemented and I haven't updated the status on the wiki yet.

The wiki lays out the various use cases I find important.  One of the
big ones is I'm trying to steer Android into becoming a generic PC
replacement, beating iPhone while staying reasonably open.  To do that
it not only needs a full posix command line, but it needs to become self
hosting.  (It's not a full-fledged software platform until it leaves the
nest and can rebuild itself.  Right now, you need a PC to do that, but
we can _fix_that.)

I should start an "Android Self Hosting Project" page on the wiki for
all this info, shouldn't I?

Anyway, I already worked out the smallest and simplest self-hosting
Linux platform I could (Aboriginal Linux).  It started with an automated
Linux From Scratch (3.x) and then I replaced glibc with uClibc and all
the gnu command line utilities with BusyBox.  (For a while I was trying
to get it down to four packages: "linux, tinycc, busybox, uClibc".  But
my tinycc fork is mothballed like toybox was, and if I restart it I need
to do qcc...  Tangent.)

All the busybox work I did was a spin-off of that tiny bootstrapping
project.  When I started, busybox could _not_ be used by itself to
replace all the Linux From Scratch command line packages: now it can.

And now I'm using Aboriginal Linux as a test environment for toolbox,
and replacing the _busybox_ commands one at a time:

  http://landley.net/notes-2011.html#29-12-2011

(The boxen.sh script mentioned there is attached.)

However, that's only half the story.  The other half is replacing
Android's "toolbox" in a bionic build environment.  (Bionic is android's
libc, and it's crap, thus hard to build real programs against.)  I need
to set up an android build environment, and use the existing toolchain
to build toybox, and make sure it's a drop-in replacement for toolbox.
This involves a few commands that don't exist anywhere else (some of
which are really stupid; android ported the windows registry to Linux, I
don't know what they were smoking), but I just added build-time probes
to scripts/genconfig.sh and can extend those for bionic support for that
stuff.

Beyond that: POSIX-2008/SUSv4 support is good on general principles, and
it's a free spec on the web, so I'm trying to get as close to that as is
reasonable, and document where we diverge. (Internationalization, for
example: being 8-bit clean is obvious and some UTF-8 support may be
reasonable in places, but most of this belongs at the GUI level, not at
the command line level.  Whatever language you're working in, the "for"
keyword in C remains the same.)

I've documented some of this in http://landley.net/toybox/design.html
but possibly there should be a wiki page on that too...

> Some of my own tools are published at www.tuxad.com.

Bookmarked.  I'll try to look at it later today, but I need to move away
from the free caffeine refills to regain net access. :)

Rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: boxen.sh
Type: application/x-sh
Size: 361 bytes
Desc: not available
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20120204/0b999a74/attachment-0002.sh>


More information about the Toybox mailing list