[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