<html><head><title>What is toybox?</title>
<!--#include file="header.html" -->

<h2><a name="what" />What is toybox?</h2>

<p>Toybox combines many common Linux command line utilities together into
a single <a href=license.html>BSD-licensed</a> executable. It's simple, small, fast, and reasonably
standards-compliant (<a href=http://opengroup.org/onlinepubs/9699919799>POSIX-2008</a> and <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0>LSB 4.1</a>).</p>

<p>Toybox's main goal is to make Android
<a href=http://landley.net/aboriginal/about.html#selfhost>self-hosting</a>
by improving Android's command line utilities so it can
build an installable Android Open Source Project image
entirely from source under a stock Android system. After a talk at the 2013
Embedded Linux Conference explaining this plan
(<a href=http://landley.net/talks/celf-2013.txt>outline</a>,
<a href=https://www.youtube.com/watch?v=SGmtP5Lg_t0>video</a>), Google
<a href=https://lwn.net/Articles/629362/>merged toybox into AOSP</a> and
began shipping toybox in Android Mashmallow.</p>

<p>Toybox aims to provide one quarter of a theoretical "minimal native
development environment", which is the simplest Linux system capable of
rebuilding itself from source code and then building
<a href=http://linuxfromscratch.org/lfs>Linux From Scratch</a>
and the <a href=https://source.android.com>Android Open Source Project</a>
under the result. In theory, this should only require four packages:
1) a set of posix-ish command line utilities,
2) a compiler<a name="1_back"></a><sup><font size=-3><a href=#1>[1]</a></font></sup>,
3) a C library, and 4) a kernel. This provides a reproducible and auditable
base system, which with the addition of a few convienciences (vi, top,
shell command line history...) can provide a usable interactive experience
rather than just a headless build server.</p>

<b><h2><a name="why" />Why is toybox?</h2></b>

<p>The <a href=http://landley.net/talks/celf-2013.txt>2013 toybox talk</a>
at ELC was devoted to this question, and has the following sections:</p>

<ul>
<li>0m29s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=0m29s>The smartphone is replacing the PC</a></li>
  <ul>
  <li>4m22s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=4m22s>Software needed to become self-hosting</a></li>
  <li>6m20s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=6m20s>Do we care if android or iphone wins?</a></li>
  </ul>
<li>9m45s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=9m45s>Android not vanilla: oppose or accept?</a></li>
  <ul>
  <li>11m30s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=11m30s>Open source can't do User Interfaces</a></li>
  </ul>
<li>15m09s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=15m09s>Android is not copyleft: oppose or accept?</a></li>
<li>18m23s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=18m23s>Security issues</a></li>
<li>21m15s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=21m15s>Solutions to the software problems</a></li>
  <ul>
  <li>22m55s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=22m55s>What toybox needs to be/do</a></li>
  <li>28m17s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=28m17s>What is toybox?</a></li>
    <ul>
    <li>28m58s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=28m58s>Why toybox started...</a></li>
    <li>37m50s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=37m50s>What does toybox actually implement?</a></li>
    </ul>
  </ul>
</ul>

<p>A more recent talk from 2019 compares
<a href=https://www.youtube.com/watch?v=MkJkyMuBm3g#t=1m18s>BusyBox vs toybox</a>
and explains the design decisions behind both.
(A 2015 toybox talk was part of the channel
<a href=https://marc.info/?l=linux-embedded&m=158159902514847&w=2>accidentally deleted</a> off youtube by the Linux Foundation,
but the <a href=https://landley.net/talks/celf-2015.txt>outline</a> is
still available.)</p>

<b><h2><a name="context" />What context was toybox created in?</h2></b>

<p>The toybox maintainer's previous minimal self-hosting system project,
<a href=http://landley.net/aboriginal/about.html>Aboriginal Linux</a>,
got a native development environment down to only seven packages in
its 1.0 release (busybox, uClibc, gcc, binutils, make, bash, and linux)
and then built Linux From Scratch under the result. That project
<a href=http://landley.net/aboriginal/history.html>was the reason</a>
toybox's maintainer became busybox maintainer, having done so
much work to extend busybox to replace all the gnu tools in a Linux From
Scratch build that the previous maintainer handed over the project (to
spend more time on buildroot).</p>

<p>Despite the maintainer's history with busybox, toybox is a fresh
from-scratch implementation under an
<a href=https://source.android.com/source/licenses.html>android-compatible</a>
<a href=license.html>license</a>. Busybox predates Android, but has never
shipped with Android due to the license. As long as we're starting over anyway,
we can do a better job.</p>

<p>Toybox's current minimal native development environment builder is a new
<a href=https://github.com/landley/toybox/blob/master/scripts/mkroot.sh>tiny
implementation</a> integrated into the toybox source.
The "make root" target will create a simple toybox chroot
(by default in the root/host directory), and adding a LINUX= argument to
the make command line pointing to Linux kernel source code creates a tiny
bootable system with a wrapper script to run it under the emulator
<a href=https://qemu.org>qemu</a>.</p>

<p>The list of commands remaining before we can build Linux From Scratch under
the result (with an appropriate
<a href=https://github.com/landley/toybox/blob/master/scripts/mcm-buildall.sh>compiler</a>)
is tracked <a href=roadmap.html#dev_env>in
the roadmap</a>, and doing so is one of the main goals for toybox's 1.0
release.</p>

<p>Building LFS requres fewer commands than building AOSP, which has a lot more
<a href=http://source.android.com/source/initializing.html>build
prerequisites</a>. In theory some of those can be built from source
as external packages (we're clearly not including our own java implementation),
but some early prerequisites may need to be added to bootstrap AOSP far enough
to build them (such as a read-only version of "git":
how does repo download the AOSP source otherwise?)
<a name="2_back"></a><sup><font size=-3><a href=#2>[2]</a></font></sup></p>

<b><h2><a name="status" />What commands are planned/implemented in toybox?</h2></b>

<p>The current list of commands implemented by toybox is on the
<a href=status.html>status page</a>, which is updated each release.
There is also a <a href=roadmap.html>roadmap</a> listing all planned commands
for the 1.0 release and the reasons for including them.</p>

<p>In general, configuring toybox with "make defconfig" enables all the commands
compete enough to be useful. Configuring "allyesconfig" enables partially
implemented commands as well, along with debugging features.</p>

<b><h3>Relevant Standards</h3></b>

<p>Most commands are implemented according to POSIX-2008 (I.E.
<a href=http://opengroup.org/onlinepubs/9699919799/idx/utilities.html>The
Single Unix Specification version 4</a>) where applicable. This does not mean
that toybox is implementing every SUSv4 utility: some such as SCCS and ed are
obsolete, while others such as c99 are outside the scope of the project.
Toybox also isn't implementing full internationalization support: it should be
8-bit clean and handle UTF-8, but otherwise we leave this to X11 and higher
layers. And some things (like $CDPATH support in "cd") await a good
explanation of why to bother with them. (POSIX provides an important
frame of reference, but is not an infallable set of commandments to be blindly
obeyed. We do try to document our deviations from it in the comment section
at the start of each command under toys/posix.)</p>

<p>The other major sources of commands are the Linux man pages, the
Linux Standard Base, and testing the behavior of existing command
implementations (although not generally looking at their
source code), including the commands in Android's toolbox. SUSv4 does not
include many basic commands such as "mount", "init", and "mke2fs", which are
kind of nice to have.</p>

<p>For more on this see the <a href=roadmap.html>roadmap</a> and
<a href=design.html>design goals</a>.</p>

<b><h2><a name="downloads" />Download</h2></b>

<p>This project is maintained as a <a href=https://github.com/landley/toybox>git
archive</a>, and also offers <a href=http://landley.net/toybox/downloads>source
tarballs</a> and <a href=http://landley.net/toybox/bin>static binaries</a>
of the release versions.</p>

<p>The maintainer's <a href=http://landley.net/notes.html>development log</a> and the project's
<a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>mailing
list</a> are also good ways to track what's going on with the project.</p>

<b><h2><a name="toycans" />What's the toybox logo image?</h2></b>

<p>It's <a href=toycans-big.jpg>carefully stacked soda cans</a>. Specifically,
it's a bunch of the original "Coke Zero" and "Pepsi One" cans, circa 2006,
stacked to spell out the binary values of the ascii string "Toybox", with
null terminator at the bottom. (The big picture's on it's side because
the camera was held sideways to get a better shot.)</p>

<p>No, it's not photoshopped, I actually had these cans until a coworker
who Totally Did Not Get It <sup><font size=-3><a href=http://www.timesys.com>tm</a></font></sup> threw them out one day after I'd gone home,
thinking they were recycling. (I still have two of each kind, but
Pepsi One seems discontinued and Coke Zero switched its can color
from black to grey, presumably in celebration. It was fun while it lasted...)</p>

<b><h2>Footnotes</h2></b>

<p><a name="1" /><a href="#1_back">[1]</a> Ok, most toolchains (gcc, llvm, pcc, libfirm...)
are multiple packages, but the maintainer of toybox used to maintain a
<a href=http://landley.net/tinycc>fork of tinycc</a> (an integrated
compiler/assembler/linker which once upon a
time did <a href=http://bellard.org/tcc/tccboot.html>build a bootable linux
kernel</a> before its original developer abandoned the project),
and has <a href=http://landley.net/hg/qcc/file/tip/todo/todo.txt>vague plans</a> of <a href=http://landley.net/qcc>trying
again someday</a>. The compiler toolchain is _conceptually_ one package,
implementable as a single multicall binary acting like make, cc, as, ld, cpp,
strip, readelf, nm, objdump, and so on as necessary. It's just the existing
packages that do this <strike>kinda suck</strike> don't. (In theory "make"
belongs in qcc, in practice llvm hasn't got its own make so toybox probably
needs to add it after 1.0 to eliminate another gpl build prerequite from
AOSP.)</p>

<p><a name="2" /><a href="#2_back">[2]</a>
The dividing line is
"Is there an acceptably licensed version Android can ship, or do we have
to write one?" Since android is not "GNU/Linux" in any way, we need to
clean out all traces of gnu software from its build to get a clean
self-hosting system.</p>

<!--#include file="footer.html" -->
