<html><head><title>toybox roadmap</title>
<!--#include file="header.html" -->
<title>Toybox Roadmap</title>

<h2>Roadmap sections</h2>

<ul>
<li><a href=#goals>Introduction</a></li>
<li><a href=#susv4>POSIX-2008/SUSv4</a></li>
<li><a href=#sigh>Linux "Standard" Base</a></li>
<li><a href=#rfc>IETF RFCs and Man Pages</a></li>
<li><a href=#dev_env>Development Environment</a></li>
<li><a href=#android>Android Toolbox</a></li>
<li><a href=#aosp>Building AOSP</a></li>
<li><a href=#tizen>Tizen Core</a></li>
<li><a href=#yocto>Yocto</a></li>
<li><a href=#fhs>Filesystem Hierachy Standard</a></li>
<li><a href=#buildroot>buildroot</a></li>
<li>Miscelaneous: <a href=#klibc>klibc</a>, <a href=#glibc>glibc</a>,
<a href=#sash>sash</a>, <a href=#sbase>sbase</a>,
<a href=#uclinux>uclinux</a>...</li>
<li><a href=#packages>Other Packages</a></li>
</ul>

<a name="goals" />
<h2>Introduction (Goals and use cases)</h2>

<p>We have several potential use cases for a new set of command line
utilities, and are using those to determine which commands to implement
for Toybox's 1.0 release. Most of these have their own section in the
<a href=status.html>status page</a>, showing current progress towards
commplation.</p>

<p>The most interesting publicly available standards are A) POSIX-2008 (also
known as SUSv4), B) the Linux Standard Base version 4.1, and C) the official
<a href=https://www.kernel.org/doc/man-pages/>Linux man pages</a>.
But they include commands we've decided not implement, exclude
commands or features we have, and don't always entirely match reality.</p>

<p>The most thorough real world test (other than a large interactive
userbase) is using toybox as the command line in a build system such as
<a href=https://landley.net/aboriginal/about.html>Aboriginal
Linux</a>, having it rebuild itself from source code, and using the result
to <a href=https://github.com/landley/control-images>build Linux From Scratch</a>.
The current "minimal native development system" goal is to use
<a href=faq.html#mkroot>mkroot</a>
plus <a href=faq.html#cross>musl-cross-make</a> to hermetically build
<a href=https://source.android.com>AOSP</a>.</p>

<p>We've also checked what commands were provided by similar projects
(klibc, sash, sbase, embutils,
nash, and beastiebox), looked at various vendor configurations of busybox,
and collected end user requests.</p>

<p>Finally, we'd like to provide a good replacement for the Bash shell,
which was the first program Linux ever ran and remains the standard shell
of Linux (no matter what Ubuntu says). This doesn't necessarily mean including
every last Bash 5.x feature, but does involve {various,features} &lt(beyond)
posix.</p>

<p>See the <a href=status.html>status page</a> for the categorized command list
and progress towards implementing it. There's also a
<a href=todo.html>historical todo list</a> from the project's 2011 relaunch.</p>

<hr />
<a name="standards">
<h2>Use case: standards compliance.</h2>

<h3><a name=susv4 /><a href="#susv4">POSIX-2008/SUSv4</a></h3>
<p>The best standards describe reality rather than attempting to impose a
new one. A good standard should document, not legislate.
Standards which document existing reality tend to be approved by
more than one standards body, such ANSI and ISO both approving <a href=https://landley.net/c99-draft.html>C99</a>. That's why IEEE 1003.1-2008,
the Single Unix Specification version 4, and the Open Group Base Specification
edition 7 are all the same standard from three sources, but most people just
call it "posix" (portable operating system derived from unix).
It's available <a href=https://pubs.opengroup.org/onlinepubs/9699919799>online in full</a>, and may be downloaded as a tarball.
Previous versions (<a href=https://pubs.opengroup.org/onlinepubs/009695399/>SUSv3</a> and
<a href=https://pubs.opengroup.org/onlinepubs/7990989775/>SUSv2</a>)
are also available.
(Note: 
<a href=https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/>Posix
2008</a> was reissued in 2013 and 2018, the first was minor wordsmithing
with no behavioral changes, the second was to renew a ten year timeout
to still be considered a "current standard" by some government regulations.
It's still posix-2008/SUSv4/issue 7.)</p>

<h3>Why not just use posix for everything?</h3>

<p>Unfortunately, Posix describes an incomplete subset of reality, because
it was designed to. It started with proprietary unix vendors collaborating to
describe the functionality their fragmented APIs could agree on, which was then
incorporated into <a href=https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub151-2-1993.pdf>US federal procurement standards</a>
as a <a href=https://www.youtube.com/watch?v=nwrTTXOg-KI>compliance requirement</a>
for things like navy contracts, giving large corporations
like IBM and Microsoft millions of dollars of incentive
to punch holes in the standard big enough to drive
<a href=https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem>Windows NT</a> and
<a href=http://www.naspa.net/magazine/1996/May/T9605006.PDF>OS/360</a> through.
When open source projects like Linux started developing on the internet
(enabled by the 1993 relaxation of the National Science Foundation's
"Acceptable Use Policy" allowing everyone to connect to the internet,
previously restricted to approved government/military/university organizations),
Posix <a href=http://www.opengroup.org/testing/fips/policy_info.html>ignored
the upstarts</a> and Linux eventually
<a href=https://www.linuxjournal.com/article/3417>returned the favor</a>,
leaving Posix behind.</p>

<p>The result is a "standard" that lacks any mention of commands like
"init" or "mount" required to actually boot a system.
It describes logname but not login. It provides ipcrm
and ipcs, but not ipcmk, so you can use System V IPC resources but not create
them. And widely used real-world commands such as tar and cpio (the basis
of initramfs and RPM) which were present in earlier
versions of the standard have been removed, while obsolete commands like
cksum, compress, sccs and uucp remain with no mention of modern counterparts
like crc32/sha1sum, gzip/xz, svn/git or scp/rsync. Meanwhile posix' description
of the commands
themselves are missing dozens of features and specify silly things like ebcdic
support in dd or that wc should use %d (not %lld) for byte counts. So
we have to extensively filter posix to get a useful set of recommendations.</p>

<h3>Analysis</h3>

<p>Starting with the
<a href="http://pubs.opengroup.org/onlinepubs/9699919799.2008edition/idx/utilities.html">full "utilities" list</a>,
we first remove generally obsolete
commands (compress ed ex pr uncompress uccp uustat uux), commands for the
pre-CVS "SCCS" source control system (admin delta get prs rmdel sact sccs unget
val what), fortran support (asa fort77), and batch processing support (batch
qalter qdel qhold qmove qmsg qrerun qrls qselect qsig qstat qsub).</p>

<p>Some commands are for a compiler toolchain (ar c99 cflow ctags cxref gencat
iconv lex m4 make nm strings strip tsort yacc) which is outside of toybox's
mandate and should be supplied externally. (Again, some of these may be
revisited later, but not for toybox 1.0.)</p>

<p>Some commands are part of a command shell, and can't be implemented as
separate executables (alias bg cd command fc fg getopts hash jobs kill read
type ulimit umask unalias wait). These may be revisited as part of the built-in
toybox shell, but are not exported into $PATH via symlinks. (If you fork a
child process and have it "cd" then exit, you've accomplished nothing.)
Again, what posix provides is incomplete: a shell also needs exit, if, while,
for, case, export, set, unset, trap, exec... (And for bash compatibility
function, source, declare...)</p>

<p>A few other commands are judgement calls, providing command-line
internationalization support (iconv locale localedef), System V inter-process
communication (ipcrm ipcs), and cross-tty communication from the minicomputer
days (talk mesg write).  The "pax" utility <a href=https://slashdot.org/story/06/09/04/1335226/debian-kicks-jrg-schilling>failed</a> to replace tar,
"mailx" is
a command line email client, and "lp" submits files for printing to... what
exactly?  (cups?)  The standard defines crontab but not crond. What is
pathchk supposed to be portable _to_? (Linux accepts 255 byte path components
with any char except NUL or / and no max length on the total path, and
<a href=https://yarchive.net/comp/linux/utf8.html>EXPLICITLY</a>
doesn't care if it's an invalid utf8 sequence.)</p>

<p>Removing all of that leaves the following commands, which toybox should
implement:</p>

<blockquote><b>
<span id=posix>
at awk basename bc cal cat chgrp chmod chown cksum cmp comm cp
csplit cut date dd df diff dirname du echo env expand expr false file find
fold fuser getconf grep head id join kill link ln logger logname ls man
mkdir mkfifo more mv newgrp nice nl nohup od paste patch printf ps
pwd renice rm rmdir sed sh sleep sort split stty tabs tail tee test time
touch tput tr true tty uname unexpand uniq unlink uudecode uuencode vi wc
who xargs zcat
</span>
</b></blockquote>

<h3><a name=sigh /><a href="#sigh">Linux Standard Base</a></h3>

<p>One attempt to supplement POSIX towards an actual usable system was the
Linux Standard Base. Unfortunately, the quality of this "standard" is
fairly low, largely due to the Free Standards Group that maintained it
being consumed by <a href=https://landley.net/notes-2010.html#18-07-2010>the Linux Foundation</a> in 2007.</p>

<p>Where POSIX allowed its standards process to be compromised
by leaving things out (but what
they DID standardize tends to be respected, if sometimes obsolete),
the Linux Standard Base's failure mode is different. They respond to
pressure by including anything their members pay them enough to promote,
such as allowing Red Hat to push
RPM into the standard even though all sorts of distros (Debian, Slackware, Arch,
Gentoo, Android) don't use it and never will. This means anything in the LSB is
at best a suggestion: arbitrary portions of this standard are widely
ignored.</p>

<p>The <a href=https://mjg59.dreamwidth.org/39546.html>community perception</a>
seems to be that the Linux Standard Base is
the best standard money can buy, I.E. the Linux Foundation is supported by
financial donations from large companies and the LSB
<a href=https://www.softwarefreedom.org/blog/2016/apr/11/lf/>represents the interests
of those donors</a> regardless of technical merit. (The Linux Foundation, which
maintains the LSB, isn't a 501c3. It's a 501c6, the
same kind of legal entity as the Tobacco Institute and
<a href=https://lwn.net/Articles/706585/>Microsoft's</a>
old "<a href=https://en.wikipedia.org/wiki/Don%27t_Copy_That_Floppy>Don't Copy That Floppy</a>" program.) Debian officially
<a href=http://lwn.net/Articles/658809>washed its hands of LSB</a> by
refusing to adopt release 5.0 in 2015, and no longer even pretends to support
it (which affect Debian derivatives like Ubuntu and Knoppix). Toybox has
stayed on 4.1 for similar reasons: a lot of historical effort went into
producing the standard before the Linux Foundation took over.</p>

<p>That said, Posix by itself isn't enough, and this is the next most
comprehensive standards effort for Linux so far, so we salvage what we can.</p>

<h3>Analysis</h3>

<p>The LSB specifies a <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/cmdbehav.html>list of command line
utilities</a>:</p>

<blockquote><b>
ar at awk batch bc chfn chsh col cpio crontab df dmesg du echo egrep 
fgrep file fuser gettext grep groupadd groupdel groupmod groups 
gunzip gzip hostname install install_initd ipcrm ipcs killall lpr ls 
lsb_release m4 md5sum mknod mktemp more mount msgfmt newgrp od passwd 
patch pidof remove_initd renice sed sendmail seq sh shutdown su sync 
tar umount useradd userdel usermod xargs zcat
</b></blockquote>

<p>Where posix specifies one of those commands, LSB's deltas tend to be
accomodations for broken tool versions which aren't up to date with the
standard yet. (See <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/more.html>more</a> and <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/xargs.html>xargs</a>
for examples.)</p>

<p>Since we've already committed to using our own judgement to skip bits of
POSIX, and LSB's "judgement" in this regard is purely bug workarounds to declare
various legacy tool implementations "compliant", this means we're mostly
interested in the set of LSB tools that aren't mentioned in posix.</p>

<p>Of these, gettext and msgfmt are internationalization, install_initd and
remove_initd weren't present in Ubuntu 10.04, lpr is out of scope,
lsb_release just reports information in /etc/os-release, and sendmail's
turned into a pile of cryptographic verification and DNS shenanigans due
to spammers.</p>

<p>This leaves:</p>

<blockquote><b>
<span id=lsb>
chfn chsh dmesg egrep fgrep groupadd groupdel groupmod groups
gunzip gzip hostname install killall md5sum
mknod mktemp mount passwd pidof seq shutdown
su sync tar umount useradd userdel usermod zcat
</span>
</b></blockquote>

<h3><a name=rfc /><a href="#rfc">IETF RFCs and Man Pages</a></h3>

<p>They're very nice, but there's thousands of them.</p>

<p>Discussion of standards wouldn't be complete without the Internet
Engineering Task Force's "<a href=https://www.rfc-editor.org/in-notes/rfc-index.txt>Request For Comments</a>" collection and Michael Kerrisk's
<a href=https://www.kernel.org/doc/man-pages/>Linux man-pages project</a>.
Except these aren't standards, they're collections of documentation with
low barriers to inclusion. They're not saying "you should support
X", they're saying "if you do, here's how".
Thus neither really helps us select which commands to include.</p>

<p>The man pages website includes the commands in git, yum, perf, postgres,
flatpack... Great for examining the features of a command you've
already decided to include, useless for deciding _what_ to include.</p>

<p>The RFCs are more about protocols than commands. The noise level is
extremely high: there's thousands of RFCs, many describing a proposed idea
that never took off, and less than 1% of the resulting documents are
currently relevant to toybox. And the documents are numbered based on the
order they were received, with no real attempt at coherently indexing
the result. As with man pages they can be <a href=https://www.ietf.org/rfc/rfc0610.txt>long and complicated</a> or
<a href=https://www.ietf.org/rfc/rfc1951.txt>terse and impenetrable</a>,
have developed a certain amount of <a href=https://www.ietf.org/rfc/rfc8179.txt>bureaucracy</a> over the years, and often the easiest way to understand what
they <a href=https://www.ietf.org/rfc/rfc4330.txt>document</a> is to find an <a href=https://www.ietf.org/rfc/rfc1769.txt>earlier version</a> to read first.</p>

<p>That said, RFC documents can be useful (especially for networking protocols)
and the four URL templates the recommended starting files
for new commands (toys/example/skeleton.c or toys/example/hello.c depending on how much
plumbing you want to start with) provide point to posix, lsb, man, and
rfc pages.</p>

<hr />
<a name="dev_env">
<h2><a href="#dev_env">Use case: provide a self-hosting development environment</a></h2>

<p>The following commands were enough to build the <a href=http://landley.net/aboriginal/about.html>Aboriginal Linux</a> development
environment, boot it to a shell prompt, and build <a href=http://www.linuxfromscratch.org/lfs/view/6.8/>Linux From Scratch 6.8</a> under it.</p>

<blockquote><b>
<span id=development>
bzcat cat cp dirname echo env patch rmdir sha1sum sleep sort sync
true uname wc which yes zcat
awk basename chmod chown cmp cut date dd diff
egrep expr fdisk find grep gzip head hostname id install ln ls
mkdir mktemp mv od readlink rm sed sh tail tar touch tr uniq
wget whoami xargs chgrp comm gunzip less logname split
tee test time bunzip2 chgrp chroot comm cpio dmesg
dnsdomainname ftpd ftpget ftpput gunzip ifconfig init less
logname losetup mdev mount mountpoint nc pgrep pkill 
pwd route split stat switch_root tac umount vi
resize2fs tune2fs fsck.ext2 genext2fs mke2fs xzcat
</span>
</b></blockquote>

<p>This use case includes running init scripts and other shell scripts, running
configure, make, and install in each package, and providing basic command line
facilities such as a text editor. (It does not include a compiler toolchain or
C library, those are outside the scope of the toybox project, although mkroot
has a <a href=https://landley.net/code/qcc>potentialy follow-up project</a>.
For now we use distro toolchains,
<a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>,
and the Android NDK for build testing.)
That build system also instaled bash 2.05b as #!/bin/sh and its scripts
required bash extensions not present in shells such as busybox ash.
To replace that toysh needs to supply several bash extensions _and_ work
when called under the name "bash".</p>

<p>The development methodology used a <a href=http://landley.net/aboriginal/FAQ.html#debug_logging>command logging wrapper</a>
that intercepted each command called out of the $PATH and append the
command line to a log file, then <a href=https://github.com/landley/aboriginal/blob/master/more/report-recorded-commands.sh>analyze</a> the result to create a
<a href=https://landley.net/notes-2008.html#23-01-2008>list of commands</a>,
then <a href=https://github.com/landley/aboriginal/blob/master/host-tools.sh>create a directory of symlinks</a> pointing to those commands out of the
host $PATH. Then the new implementation can replace these commands one
at a time, checking the results and the log output to spot any behavior
changes.</p>

<h3>Stages and moving targets</h3>

<p>This use case has two stages: 1) building a bootable system that can
rebuild itself from source, and 2) a build environment capable
of bootstrapping up to arbitrary complexity (as exemplified by building
Linux From Scratch and Beyond Linux From Scratch under the resulting
system). To accomplish just the first goal, the old build
still needs the following busybox commands for which toybox does not yet
supply adequate replacements:</p>

<blockquote><b>
awk dd diff expr fdisk ftpd gzip less route sh tr unxz vi wget xzcat
</b></blockquote>

<p>All of those except awk, ftpd, and less have partial implementations
in "pending".</p>

<p>In 2017 Aboriginal Linux development ended, replaced by the
<a href=https://github.com/landley/mkroot>mkroot</a> project
designed to use an existing cross+native toolchain (such as
<a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>
or the Android NDK) instead of building its own. In 2019 the still-incomplete
mkroot was merged into toybox as the "make root" target. This is intended
as a simpler way of providing essentially the same build environment, and doesn't
significantly affect the rest of this analysis (although the "rebuild itself
from source" test now includes building musl-cross-make under either mkroot
or toybox's "make airlock" host environment).</p>

<p>Building Linux From Scratch is not the same as building the
<a href=https://source.android.com>Android Open Source Project</a>,
but after toybox 1.0 we plan to try
<a href=http://landley.net/aboriginal/about.html#hairball>modifying the AOSP build</a>
to reduce dependencies. (It's fairly likely we'll have to add at least
a read-only git utility so repo can download the build's source code,
but that's actually <a href=https://www.youtube.com/watch?v=P7n6G2IL6eo>not
that hard</a>. We'll probably also need our own "make" at some point after
1.0, which is its own moving target thanks to cmake and ninja and so on.)
The ongoing Android <a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-January/009330.html>hermetic build</a> work is already advancing
this goal.</p>

<hr />
<h2><a name=android /><a href="#android">Use case: Replacing Android Toolbox</a></h2>

<p>Android has a policy against GPL in userspace, so even though BusyBox
predates Android by many years, they couldn't use it. Instead they grabbed
an old version of ash (later replaced by
<a href="https://www.mirbsd.org/mksh.htm">mksh</a>)
and implemented their own command line utility set
called "toolbox" (which toybox has already mostly replaced).</p>

<p>Toolbox doesn't have its own repository, instead it's part of Android's
<a href=https://android.googlesource.com/platform/system/core>system/core
git repository</a>. Android's Native Development Kit (their standalone
downloadable toolchain)  has its own
<a href=https://android.googlesource.com/platform/ndk/+/master/docs/Roadmap.md>roadmap</a>, and each version has
<a href=https://developer.android.com/ndk/downloads/revision_history>release
notes</a>.</p>

<h3>Toolbox commands:</h3>

<p>According to <a href=https://android.googlesource.com/platform/system/core/+/master/toolbox/Android.bp>
system/core/toolbox/Android.bp</a> the toolbox directory builds the
following commands:</p>

<blockquote><b>
getevent getprop modprobe setprop start
</b></blockquote>

<p>getprop/setprop/start were in toybox and moved back because they're so
tied to non-public system interfaces. modprobe shares the implementation
used in init. getevent is a board bringup tool built with a python script
that pulls all the constants from the latest kernel headers.</p>

<h3>Other Android /system/bin commands</h3>

<p>Other than the toolbox links, the currently interesting
binaries in /system/bin are:</p>

<ul>
<li><b>arping</b> - ARP REQUEST tool (iputils)</li>
<li><b>blkid</b> - identify block devices (e2fsprogs)</li>
<li><b>e2fsck</b> - fsck for ext2/ext3/ext4 (e2fsprogs)</li>
<li><b>fsck.f2fs</b> - fsck for f2fs (f2fs-tools)</li>
<li><b>fsck_msdos</b> - fsck for FAT (BSD)</li>
<li><b>gzip</b> - compression/decompression tool (zlib)</li>
<li><b>ip</b> - network routing tool (iproute2)</li>
<li><b>iptables/ip6tables</b> - IPv4/IPv6 NAT admin (iptables)</li>
<li><b>iw</b> - wireless device config tool (iw)</li>
<li><b>logwrapper</b> - redirect stdio to android log (Android)</li>
<li><b>make_ext4fs</b> - make ext4 fs (Android)</li>
<li><b>make_f2fs</b> - make f2fs fs (f2fs-tools)</li>
<li><b>ping/ping6</b> - ICMP ECHO_REQUEST tool (iputils)</li>
<li><b>reboot</b> - reboot (Android)</li>
<li><b>resize2fs</b> - resize ext2/ext3/ext4 fs (e2fsprogs)</li>
<li><b>sh</b> - mksh (BSD)</li>
<li><b>ss</b> - socket statistics (iproute2)</li>
<li><b>tc</b> - traffic control (iproute2)</li>
<li><b>tracepath/tracepath6</b> - trace network path (iputils)</li>
<li><b>traceroute/traceroute6</b> - trace network route (iputils)</li>
</ul>

<p>The names in parentheses are the upstream source of the command.</p>

<h3>Analysis</h3>

<p>For reference, combining everything listed above that's still "fair game"
for toybox, we get:</p>

<blockquote><b>
arping blkid e2fsck dd fsck.f2fs fsck_msdos gzip ip iptables
ip6tables iw logwrapper make_ext4fs make_f2fs modpobe newfs_msdos ping ping6
reboot resize2fs sh ss tc tracepath tracepath6 traceroute traceroute6
</b></blockquote>

<p>We may eventually implement all of that, but for toybox 1.0 we need to
focus a bit. If Android has an acceptable external package, and the command
isn't needed for system bootstrapping, replacing the external package is
not a priority.</p>

<p>However, several commands toybox plans to implement anyway could potentially
replace existing Android versions, so we should take into account Android's use
cases when doing so. This includes:</p>
<blockquote><b>
<span id=toolbox>
dd getevent gzip modprobe newfs_msdos sh
</span>
</b></blockquote>

<p>Update: <a href=https://android.googlesource.com/platform/system/core/+/master/system/core/Android.bp>
external/toybox/Android.bp</a> has symlinks for the following toys out
of "pending". (The toybox modprobe is also built for the device, but
it isn't actually used and is only there for sanity checking against
the libmodprobe-based implementation.) These should be a priority for
cleanup:</p>

<blockquote><b>
bc dd diff expr getfattr lsof more stty tr traceroute
</b></blockquote>

<p>Android wishlist:</p>

<blockquote><b>
mtools genvfatfs mke2fs gene2fs
</b></blockquote>

<hr />
<h2><a name=aosp /><a href="#aosp">Use case: Building AOSP</a></h2>

<p>The list of external tools used to build AOSP was
<a href="https://android.googlesource.com/platform/build/soong/+/master/ui/build/paths/config.go">here</a>,
but as they're switched over to toybox they disappear and reappear
<a href="https://android.googlesource.com/platform/prebuilts/build-tools/+/refs/heads/master/path/linux-x86/">here</a>.</p>

<blockquote><b>
awk basename bash bc bzip2 cat chmod cmp comm cp cut date dd diff dirname du
echo egrep env expr find fuser getconf getopt git grep gzip head hexdump
hostname id jar java javap ln ls lsof m4 make md5sum mkdir mktemp mv od openssl
paste patch pgrep pkill ps pstree pwd python python2.7 python3 readlink
realpath rm rmdir rsync sed setsid sh sha1sum sha256sum sha512sum
sleep sort stat tar tail tee todos touch tr true uname uniq unix2dos unzip
wc which whoami xargs xxd xz zip zipinfo
</b></blockquote>

<p>The following are already in the tree and will be used directly:</p>

<blockquote><b>
awk bzip2 jar java javap m4 make python python2.7 python3 xz
</b></blockquote>

<p>Subtracting what's already in toybox (including the following toybox toys
that are still in pending: <code>bc dd diff expr gzip lsof tar tr</code>),
that leaves:</p>

<blockquote><b>
bash fuser getopt git hexdump openssl pstree rsync sh todos unzip zip zipinfo
</b></blockquote>

<p>For AOSP, zip/zipinfo/unzip are likely to be libziparchive based. The
todos callers will use unix2dos instead if it's available. git/openssl
seem like they should just be brought in to the tree. rsync is used to
work around a Mac <code>cp -Rf</code> bug with broken symbolic links. That
leaves:</p>

<blockquote><b>
bash fuser getopt hexdump pstree
</b></blockquote>

<p>(Why are fuser and pstree used during the AOSP build? They're used for
diagnostics if something goes wrong. So it's really just bash, getopt,
and hexdump that are actually used to build.)</p>

<hr />
<h2><a name=tizen /><a href="#tizen">Use case: Tizen Core</a></h2>

<p>A side effect of the Linux Foundation following the money to the
exclusion of all else is they "support" their donors' myriad often
contradictory pet projects with elaborate announcements and press releases.
Long ago when Nokia's Maemo merged
with Intel's Moblin to form <a href=https://www.linuxfoundation.org/press-release/linux-foundation-to-host-meego-project/>MeeGo</a>, there were believable <a href=https://www.linuxfoundation.org/press-release/public-support-for-the-meego-project/>statements</a>
about unifying fragmented vendor efforts. Then MeeGo merged with
<a href=http://en.wikipedia.org/wiki/LiMo_Foundation>LiMo</a> to
<a href=notes-2012.html#16-05-2012>form Tizen</a>,
which became a Samsung-only project (that <a href=https://www.androidheadlines.com/2021/05/samsung-tvs-continue-use-tizen-os.html>still ships</a>
inside <a href=https://twitter.com/cstross/status/1453747613686288385>televisions</a>,
but was otherwise subsumed into <a href=https://www.theverge.com/2021/5/18/22440483/samsung-smartwatch-google-wearos-tizen-watch>Android GO</a>).</p>

<p>Along the way, the Tizen project expressed a desire to eliminate GPLv3 software
from its core system, and in installing toybox as
<a href=https://wiki.tizen.org/wiki/Toybox>part of this process</a>.</p>

<p>They had a fairly long list of new commands they wanted to see in toybox:</p>

<blockquote><b>
<span id=tizen_cmd>
arch base64 users unexpand shred join csplit
hostid nproc runcon sha224sum sha256sum sha384sum sha512sum sha3sum mkfs.vfat fsck.vfat 
dosfslabel uname pinky diff3 sdiff zcmp zdiff zegrep zfgrep zless zmore
</span>
</b></blockquote>

<p>In addition, they wanted to use several commands then in pending:</p>

<blockquote><b>
<span id=tizen>
tar diff printf wget rsync fdisk vi less tr test stty fold expr dd
</span>
</b></blockquote>

<p>Also, tizen uses a different Linux Security Module called SMACK, so
many of the SELinux options ala ls -Z needed smack alternatives in an
if/else setup. (We added lib/lsm.h to abstract this.)</p>

<hr />
<h2><a name=yocto /><a href="#yocto">Use case: Yocto</a></h2>

<p>Another project the Linux Foundation is paid to appreciate is Yocto,
which was designed to fix the ongoing proprietary fragmentation problem
(now in Linux build systems instead of vendor unix forks) by being the
build system equivalent of a glue trap. While proclaiming that having the
"minimum level of standardization" contributes to a "strong ecosystem",
Yocto uses a "<a href=https://www.yoctoproject.org/software-overview/layers/>layered</a>"
design where everybody who touches it is encouraged to add more and more layers
of metadata on top of what came before, until they wind up <a href=https://github.com/varigit/variscite-bsp-platform>using repo</a> just to manage
the layers (let alone their contents). But -- and this is the
important bit -- all these dispirate forks are called "yocto" and built on
top of giant piles of code the Linux Foundation can take credit for
since they filed the serial numbers off OpenEmbedded.</p>

<p>Yocto's "core-image-minimal" target (only 3,106 build steps in the 3.3
release, which believe it or not is
<a href=https://landley.net/notes-2019.html#06-02-2019>an improvement</a>) builds a busybox-based system with the following commands:</p>

<blockquote><b>
<span id=yocto_cmd>
addgroup adduser ascii sh awk base32 basename blkid bunzip2 bzcat bzip2 cat
chattr chgrp chmod chown chroot chvt clear cmp cp cpio crc32 cut date dc dd
deallocvt delgroup deluser depmod df diff dirname dmesg dnsdomainname du
dumpkmap dumpleases echo egrep env expr false fbset fdisk fgrep find flock
free fsck fstrim fuser getopt getty grep groups gunzip gzip head hexdump
hostname hwclock id ifconfig ifdown ifup insmod ip kill killall klogd less
ln loadfont loadkmap logger logname logread losetup ls lsmod lzcat md5sum
mesg microcom mkdir mkfifo mknod mkswap mktemp modprobe more mount mountpoint
mv nc netstat nohup nproc nslookup od openvt patch pgrep pidof pivot_root
printf ps pwd rdate readlink realpath reboot renice reset resize rev rfkill
rm rmdir rmmod route run-parts sed seq setconsole setsid sh sha1sum sha256sum
shuf sleep sort start-stop-daemon stat strings stty sulogin swapoff swapon
switch_root sync sysctl syslogd tail tar tee telnet test tftp time top touch
tr true ts tty udhcpc udhcpd umount uname uniq unlink unzip uptime users
usleep vi watch wc wget which who whoami xargs xzcat yes zcat
</span>
</b></blockquote>



<a name="fhs" />
<hr /><a href=fhs>Filesystem Hierachy Standard</a>
<h2>Filesystem Hierarchy Standard:</h2>

<p>Another standard taken over by the Linux Foundation. (At least the
links to this one didn't <a href=http://lanana.org/>go 404</a> the
instant they took it over). Of historical interest due to what it
managed to achieve before they chased away the hobbyists maintaining it.
Only one version (3.0 in 2015) has been released since the Linux Foundation
absorbed the FHS. The previous release, Version 2.3, was released in 2004.
The Linux Foundation did not retain earlier versions. The contents of
the relevant sections appear identical between the two versions, the
Linux Foundation just added section numbers.</p>

<p><a href=https://refspects.linuxfoundation.org/FHS_3.0/fhs-3.0.html>FHS 3.0</a>
section 3.4.2 requires commands to be in the /bin directory, and then 3.4.3
has an optional list,
and then 3.16.2 and 3.16.3 similarly cover /sbin. There are linux
specific sections in 6.1.2 and 6.1.6 but everything in them is obsolete.</p>

<p>The /bin options include csh but not bash, and ed but not vi.
The /sbin options have update which seems obsolete (filesystem
buffers haven't needed a userspace process to flush them for DECADES),
fastboot and fasthalt (reboot and halt have -nf), and
fsck.* and mkfs.* that don't actually specify any specific filesystems.
Removing that gives us:</p>

<blockquote><b>
<span id=fhs_cmd>
cat chgrp chmod chown cp date dd df dmesg echo false hostname kill ln
login ls mkdir mknod more mount mv ps pwd rm rmdir sed sh stty su sync true
umount uname tar cpio gzip gunzip zcat netstat ping
shutdown fdisk getty halt ifconfig init mkswap reboot route swapon swapoff
</span>
</b></blockquote>

<hr /><a name=buildroot />
<h2>buildroot:</h2>

<p>If a toybox-based development environment is to support running
buildroot under it, the <a href=https://buildroot.org/downloads/manual/manual.html#requirement-mandatory>mandatory packages</a>
section of the buildroot manual lists:</p>

<blockquote><p><b>
which sed make bash patch gzip bzip2 tar cpio unzip rsync file bc wget
</b></p></blockquote>

<p>(It also lists binutils gcc g++ perl python, and for debian it wants
build-essential. And it wants file to be in /usr/bin because
<a href=https://git.busybox.net/buildroot/tree/support/dependencies/dependencies.sh?h=2018.02.x#n84>libtool
breaks otherwise</a>.)</p>

<p>Oddly, buildroot can't NOT cross compile. Buildroot does not support a cross toolchain that lives in "/usr/bin"
with a prefix of "" (if you try, and chop out the test for a blank prefix,
it dies trying to run "/usr/bin/-gcc"). You can patch your way to
making it work if you try, but buildroot's developers explicitly do not
support this.</p>

<hr /><a name=klibc />
<h2>klibc:</h2>

<p>Long ago some kernel developers came up with a project called
<a href=http://en.wikipedia.org/wiki/Klibc>klibc</a>.
After a decade of development it still has no web page or HOWTO,
and nobody's quite sure if the license is BSD or GPL. It inexplicably
<a href=http://www.infoworld.com/d/data-center/perl-isnt-going-anywhere-better-or-worse-211580>requires perl to build</a>, and seems like an ideal candidate for
replacement.</p>

<p>In addition to a C library less general-purpose than bionic (let alone
musl), klibc builds a random assortment of executables to run init scripts
with. There's no multiplexer command, these are individual executables:</p>

<blockquote><p><b>
cat chroot cpio dd dmesg false fixdep fstype gunzip gzip halt ipconfig kill
kinit ln losetup ls minips mkdir mkfifo mknodes
mksyntax mount mv nfsmount nuke pivot_root poweroff readlink reboot resume
run-init sh sha1hash sleep sync true umount uname zcat
</b></p></blockquote>

<p>To get that list, build klibc according to the instructions (I
<a href=http://landley.net/notes-2013.html#23-01-2013>looked at</a> version
2.0.2 and did cd klibc-*; ln -s /output/of/kernel/make/headers_install
linux; make) then <b>echo $(for i in $(find . -type f); do file $i | grep -q
executable && basename $i; done | grep -v '[.]g$' | sort -u)</b> to find
executables, then eliminate the *.so files and *.shared duplicates.</p>

<p>Some of those binaries are build-time tools that don't get installed,
which removes mknodes, mksyntax, sha1hash, and fixdep from the list.
(And sha1hash is just an unpolished sha1sum anyway.)</p>

<p>The run-init command is more commonly called switch_root, nuke is just
"rm -rf -- $@", and minips is more commonly called "ps": I'm not doing aliases
for these oddball names.
The "kinit" command is another gratuitous rename, it's init running as PID 1.
The halt, poweroff, and reboot commands work with it.</p>

<p>Yet more stale forks of dash and gzip got sucked in here (see "dubious
license terms" above).

<p>In theory "blkid" or "file" handle fstype (and df for mounted filesystems),
but we could do fstype.</p>

<p>We should implement nfsmount, and probably smbmount
and p9mount even though this hasn't got one. The reason these aren't
in the base "mount" command is they interactively query login credentials.</p>

<p>The ipconfig command here has a built in dhcp client, so it's ifconfig
and dhcpcd and maybe some other stuff.</p>

<p>The resume command is... weird. It finds a swap partition and reads data
from it into a /proc file, something the kernel is capable of doing itself.
(Even though the klibc author
<a href=http://www.zytor.com/pipermail/klibc/2006-June/001748.html>attempted
to remove</a> that capability from the kernel, current kernel/power/hibernate.c
still parses "resume=" on the command line). And yet various distros seem to
make use of klibc for this.
Given the history of swsusp/hibernate (and 
<a href=http://lwn.net/Articles/333007>TuxOnIce</a>
and <a href=http://lwn.net/Articles/242107>kexec jump</a>...) I've lost track
of the current state of the art here. Ah, Documentation/power/userland-swsusp.txt
has the API docs, and <a href=http://suspend.sf.net>here's a better
tool</a>...</p>

<p>This gives us a klibc command list:</p>

<blockquote><b>
<span id=klibc_cmd>
cat chroot dmesg false kill ln losetup ls mkdir mkfifo readlink rm switch_root
sleep sync true uname

cpio dd ps mv pivot_root
mount nfsmount fstype umount
sh gunzip gzip zcat
kinit halt poweroff reboot
ipconfig
resume
</span>
</b></blockquote>

<hr />
<a name=glibc />
<h2>glibc</h2>

<p>Rather a lot of command line utilities come bundled with glibc:</p>

<blockquote><b>
catchsegv getconf getent iconv iconvconfig ldconfig ldd locale localedef
mtrace nscd rpcent rpcinfo tzselect zdump zic
</b></blockquote>

<p>Of those, musl libc only implements ldd. Of the rest:</p>

<ul>
<li><b>catchsegv</b> is a rudimentary debugger, probably out of scope for toybox.</li>
<li><b>iconv</b> has been <a href="#susv4">previously discussed</a>.</li>
<li><b>iconvconfig</b> is only relevant if iconv is user-configurable; musl uses a
non-configurable iconv.</li>
<li><b>getconf</b> is a posix utility which displays several variables from 
unistd.h; it probably belongs in the development toolchain.</li>
<li><b>getent</b> handles retrieving entries from passwd-style databases
(in a rather lame way) and is trivially replacable by grep.</li>
<li><b>locale</b> was discussed under <a href=#susv4>posix</a>.
localedef compiles locale definitions, which musl currently does not use.</li>
<li><b>mtrace</b> is a perl script to use the malloc debugging that glibc has built-in;
this is not relevant for musl, and would necessarily vary with libc.</li>
<li><b>nscd</b> is a name service caching daemon, which is not yet relevant for musl.</li>
<li><b>rpcinfo</b> and <b>rpcent</b> are related to the Remote Procedure Calls
layer (an old sun technology used by some userspace NFS implementations),
which musl does not include and debian does not install by default.</li>
</ul>

<p>The remaining commands involve glibc's bundled timezone database,
which seems to be derived from the <a href=http://www.iana.org/time-zones>IANA
timezone database</a>. Unless we want to maintain our own fork of the
standards body's database like glibc does, these are of no interest,
but for completeness:</p>

<ul>
<li><b>tzselect</b> outputs a TZ variable correponding to user input. 
The documentation does not indicate how to use it in a script, but it seems
that Debian may have done so.</li>
<li><b>zdump</b> prints current time in each of several timezones, optionally
outputting a great deal of extra information about each timezone.</li>
<li><b>zic</b> converts a description of a timezone to a file in tz format.</li>
</ul>

<p>We implemented getconf, and I could see maybe arguing for ncsd.
The rest are not relevant to toybox.</p>

</b></blockquote>

<hr />
<a name=sash />
<h2>Stand-Alone Shell</h2>

<p>Wikipedia has <a href=http://en.wikipedia.org/wiki/Stand-alone_shell>a good
summary of sash</a>, with links. The original Stand-Alone Shell project reached
a stopping point, and then <a href=http://www.baiti.net/sash>"sash plus
patches"</a> extended it a bit further. The result is a megabyte executable
that provides 40 commands.</p>

<p>Sash is a shell with built-in commands. It doesn't have a multiplexer
command, meaning "sash ls -l" doesn't work (you have to go "sash -c 'ls -l'").
</p>

<p>The list of commands can be obtained via building it and doing
"echo help | ./sash | awk '{print $1}' | sed 's/^-//' | xargs echo", which
gives us:</p>

<blockquote><b>
alias aliasall ar cd chattr chgrp chmod chown cmp cp chroot dd echo ed exec
exit file find grep gunzip gzip help kill losetup losetup ln ls lsattr mkdir
mknod more mount mv pivot_root printenv prompt pwd quit rm rmdir setenv source
sum sync tar touch umask umount unalias where
</b></blockquote>

<p>Plus sh because it's a shell. A dozen or so commands can only sanely be
implemented as shell builtins (alias aliasall cd exec exit prompt quit setenv
source umask unalias), where is an alias for which, and at triage time toybox
already has chgrp, chmod, chown, cmp, cp, chroot, echo, help, kill, losetup,
ln, ls, mkdir, mknod, printenv, pwd, rm, rmdir, sync, and touch.</p>

<p>This leaves:</p>

<blockquote><b>
<span id=sash_cmd>
ar chattr dd ed file find grep gunzip gzip lsattr more mount mv pivot_root
sh tar umount
</span>
</b></blockquote>

<p>(For once, this project doesn't include a fork of gzip, instead
it sucks in -lz from the host.)</p>

<hr />
<a name=sbase />
<h2>sbase:</h2>

<p>It's <a href=http://git.suckless.org/sbase>on suckless</a> in
<a href=http://git.suckless.org/ubase>two parts</a>. As of November 2015 it's
implemented the following (renaming "cron" to "crond" for
consistency, and yanking "sponge", "mesg", "pagesize", "respawn", and
"vtallow"):</p>

<blockquote><p>
<span id=sbase_cmd>
basename cal cat chgrp chmod chown chroot cksum cmp comm cp crond cut date
dirname du echo env expand expr false find flock fold getconf grep head
hostname join kill link ln logger logname ls md5sum mkdir mkfifo mktemp mv
nice nl nohup od paste printenv printf pwd readlink renice rm rmdir sed seq
setsid sha1sum sha256sum sha512sum sleep sort split strings sync tail
tar tee test tftp time touch tr true tty uname unexpand uniq unlink uudecode
uuencode wc which xargs yes
</span>
</p></blockquote>

<p>and<p>

<blockquote><p>
<span id=sbase_cmd>
chvt clear dd df dmesg eject fallocate free id login mknod mountpoint
passwd pidof ps stat su truncate unshare uptime watch
who
</span>
</p></blockquote>

<hr />
<a name=nash />
<h2>nash:</h2>

<p>Red Hat's nash was part of its "mkinitrd" package, replacement for a shell
and utilities on the boot floppy back in the 1990's (the same general idea
as BusyBox, developed independently). Red Hat discontinued nash development
in 2010, replacing it with dracut (which collects together existing packages,
including busybox).</p>

<p>I couldn't figure out how to beat source code out of
<a href=http://pkgs.fedoraproject.org/git/mkinitrd>Fedora's current git</a>
repository. The last release version that used it was Fedora Core 12
which has <a href=http://archive.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/source/SRPMS/mkinitrd-6.0.93-1.fc12.src.rpm>a source rpm</a>
that can be unwound with "rpm2cpio mkinitrd.src.rpm | cpio -i -d -H newc
--no-absolute-filenames" and in there is a mkinitrd-6.0.93.tar.bz2 which
has the source.</p>

<p>In addition to being a bit like a command shell, the nash man page lists the
following commands:</p>

<blockquote><p>
access echo find losetup mkdevices mkdir mknod mkdmnod mkrootdev mount
pivot_root readlink raidautorun setquiet showlabels sleep switchroot umount
</p></blockquote>

<p>Oddly, the only occurrence of the string pivot_root in the nash source code
is in the man page, the command isn't there. (It seems to have been removed
when the underscoreless switchroot went in.)</p>

<p>A more complete list seems to be the handlers[] array in nash.c:</p>

<blockquote><p>
access buildEnv cat cond cp daemonize dm echo exec exit find kernelopt
loadDrivers loadpolicy mkchardevs mkblktab mkblkdevs mkdir mkdmnod mknod
mkrootdev mount netname network null plymouth hotplug killplug losetup
ln ls raidautorun readlink resume resolveDevice rmparts setDeviceEnv
setquiet setuproot showelfinterp showlabels sleep stabilized status switchroot
umount waitdev
</p></blockquote>

<p>This list is nuts: "plymouth" is an alias for "null" which is basically
"true" (which thie above list doesn't have). Things like buildEnv and
loadDrivers are bespoke Red Hat behavior that might as well be hardwired in
to nash's main() without being called.</p>

<p>Instead of eliminating items
from the list with an explanation for each, I'm just going to cherry pick
a few: the device mapper (dm, raidautorun) is probably interesting,
hotplug (may be obsolete due to kernel changes that now load firmware
directly), and another "resume" ala klibc.</p>

<p>But mostly: I don't care about this one. And neither does Red Hat anymore.</p>

<p>Verdict: ignore</p>

<hr />
<a name=beastiebox />
<h2>Beastiebox</h2>

<p>Back in 2008, the BSD guys vented some busybox-envy
<a href=http://beastiebox.sourceforge.net>on sourceforge</a>. Then stopped.
Their repository is still in CVS, hasn't been touched in years, it's a giant
hairball of existing code sucked together. (The web page says the author
is aware of crunchgen, but decided to do this by hand anyway. This is not
a collection of new code, it's a katamari of existing code rolled up in a
ball.)</p>

<p>Combining the set of commands listed on the web page with the set of
man pages in the source gives us:</P>

<blockquote><p>
[ cat chmod cp csh date df disklabel dmesg echo ex fdisk fsck fsck_ffs getty
halt hostname ifconfig init kill less lesskey ln login ls lv mksh more mount
mount_ffs mv pfctl ping poweroff ps reboot rm route sed sh stty sysctl tar test
traceroute umount vi wiconfig
</p></blockquote>

<p>Apparently lv is the missing link between ed and vi, copyright 1982-1997 (do
not want), ex is another obsolete vi mode, lesskey is "used to
specify a set of key bindings to be used with less", and csh is a shell they
sucked in (even though they have mksh?), [ is an alias for test. Several more bsd-isms that don't have Linux
equivalents (even in the ubuntu "install this package" search) are
disklabel, fsck_ffs, mount_ffs, and pfctl. And wiconfig is a
wavelan interface network card driver utility. Subtracting all that and the
commands toybox already implements at triage time, we get:</p>

<blockquote><p>
<span id=beastiebox_cmd>
fdisk fsck getty halt ifconfig init kill less more mount mv ping poweroff
ps reboot route sed sh stty sysctl tar test traceroute umount vi
</span>
</p></blockquote>

<p>Not a hugely interesting list, but eh.</p>

<p>Verdict: ignore</p>

<hr />
<a name=BsdBox />
<h2>BsdBox</h2>

<p>Somebody decided to do a <a href=https://wiki.freebsd.org/AdrianChadd/BsdBox>multicall binary for freebsd</a>.</p>

<p>They based it on crunchgen, a tool that glues existing programs together
into an archive and uses the name to execute the right one. It has no
simplification or code sharing benefits whatsoever, it's basically an
archiver that produces executables.</p>

<p>That's about where I stopped reading.</p>

<p>Verdict: ignore.</p>

<hr />
<a name=slowaris />
<h2>OpenSolaris Busybox</h2>

<p>Somebody <a href=http://hub.opensolaris.org/bin/view/Project+busybox/>wrote
a wiki page</a> saying that Busybox for OpenSolaris would be a good idea.</p>

<p>The corresponding "files" tab is an auto-generated stub. The project never
even got as far as suggesting commands to include before Oracle discontinued
OpenSolaris.</p>

<p>Verdict: ignore.</p>

<hr />
<a name=uclinux />
<h2>uClinux</h2>

<p>Long ago a hardware developer named Jeff Dionne put together a
nommu Linux distribution, which involved rewriting a lot of command line
utilities that relied on <a href=http://nommu.org/memory-faq.txt>features
unavailable on nommu</a> hardware.</p>

<p>In 2003 Jeff moved to Japan and handed
the project off to people who allowed it to roll to a stop. The website
turned into a mess of 404 links, the navigation indexes stopped being
updated over a decade ago, and the project's CVS repository suffered a
hard drive failure for which there were no backups. The project continued
to put out "releases" through 2014 (you have to scroll down in the "news"
section to find them, the "HTTP download" section in the nav bar on the
left hasn't been updated in over a decade), which were hand-updated tarball
snapshots mostly consisting of software from the 1990's. For example the
2014 release still contained ipfwadm, the package which predated ipchains,
which predated iptables, which is in the process of being replaced by
nftables.</p>

<p>Nevertheless, people still try to use this because (at least until the
launch of <a href=http://nommu.org>nommu.org</a>) the project was viewed
as the place to discuss, develop, and learn about nommu Linux.
The role of uclinux.org as an educational resource kept people coming
to it long after it had collapsed as a Linux distro.</p>

<p>Starting around 0.6.0 toybox began to address nommu support with the goal
of putting uClinux out of its misery.</p>

<p>An analysis of <a href=http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20140504.tar.bz2>uClinux-dist-20140504</a> found 312 package
subdirectories under "user".</p>

<h3>Taking out the trash</h3>

<p>A bunch of packages (<b>inotify-tools, input-event-demon, ipsec-tools, netifd,
keepalived, mobile-broadband-provider-info, nuttp, readline, snort,
snort-barnyard, socat, sqlite, sysklogd, sysstat, tcl, ubus, uci, udev,
unionfs, uqmi, usb_modeswitch, usbutils, util-linux</b>)
are hard to evaluate because
uclinux has directories for them, but their source isn't actually in the
uclinux tree. In some of these the makefiles download a git repo during
the build, so I'm assuming you can build the external package if you really
care. (Even when I know what these packages do, I'm skipping them
because uclinux doesn't actually contain them, and any given snapshot
of the build system will bitrot as external web links change over time.)</p>

<p>Other packages are orphaned, meaning they're not mentioned from any Kconfig
or Makefiles outside of their directory, so uclinux can't actually build
them: <b>mbus</b> is an orphaned i2c test program expecting to run in some sort
of hardwired hardware context, <b>mkeccbin</b> is an orphaned "ECC annotated
binary file" generator (meaning it's half of a flash writer),
<b>wsc_upnp</b> is a "Ralink WPS" driver (some sort of stale wifi chip)...</p>

<p>The majority of the remaining packages are probably not of interest to
toybox due to being so obsolete or special purpose they may not actually be
of interest to anybody anymore. (This list also includes a lot of
special-purpose network back-end stuff that's hard for anybody but
datacenter admins to evaluate the current relevance of.)</p>

<blockquote><b><p>
arj asterisk boottools bpalogin br2684ctl camserv can4linux cgi_generic
cgihtml clamav clamsmtp conntrack-tools cramfs crypto-tools cxxtest
ddns3-client de2ts-cal debug demo diald discard dnsmasq dnsmasq2
ethattach expat-examples ez-ipupdate fakeidentd
fconfig ferret flatfs flthdr freeradius freeswan frob-led frox fswcert
game gettyd gnugk haserl horch
hostap hping httptunnel ifattach ipchains
ipfwadm ipmasqadm ipportfw ipredir ipset iso_client
jamvm jffs-tools jpegview jquery-ui kendin-config kismet klaxon kmod
l2tpd lcd ledcmd ledcon lha lilo lirc lissa load loattach
lpr lrpstat lrzsz mail mbus mgetty microwin ModemManager msntp musicbox
nooom null openswan openvpn palmbot pam_* pcmcia-cs playrt plugdaemon pop3proxy
potrace qspitest quagga radauth
ramimage readprofile rdate readprofile routed rrdtool rtc-ds1302
sendip ser sethdlc setmac setserial sgutool sigs siproxd slattach
smtpclient snmpd net-snmp snortrules speedtouch squashfs scep sslwrap stp
stunnel tcpblast tcpdump tcpwrappers threaddemos tinylogin tinyproxy
tpt tripwire unrar unzoo version vpnled w3cam xl2tpd zebra
</p></b></blockquote>
    
<p>This stuff is all over the place: arj, lha, rar, and zoo are DOS archivers,
ethattach describes itself as just "a network tool",
mail is a textmode smtp mailer literally described as "Some kind of mail
proggy" in uclinux's kconfig (as opposed to clamsmtp and smtpclient and
so on), this gettyd isn't a generic version but specifically a
hardwired ppp dialin utility, mgetty isn't a generic version but is combined
with "sendfax", hostap is an intersil prism driver, wlan-ng is also an
intersil prism dirver, null is a program to intentionally dereference a
null pointer (in case you needed one), iso_client is a
"Demo Application for the USB Device Driver", kendin-config is
"for configuring the Micrel Kendin KS8995M over QSPI", speedtouch configures
a specific brand of asdl modem, portmap is part of Anfs,
ferret, linux-igd, and miniupnp are all upnp packages,
lanbypass "can be used to control the LAN
bypass switches on the Advantech x86 based hardware platforms", lcd is
"test of lcddma device driver" (an out-of-tree Coldfire driver apparently
lost to history, the uclinux linux-2.4.x directory has a config symbol for
it, but nothing in the code actually _uses_ it...), qspitest is another
coldfire thing, mii-tool-fec is
"strictly for the FEC Ethernet driver as implemented (and modified) for
the uCdimm5272", rtc-ds1302 and rtc-m41t11 are usermode drivers for specific
clock chips, stunnel is basically "openssl s_client -quiet -connect",
potrace is a bitmap to vector graphic converter, radauth performs command line
authentication against a radius server,
clamav, klaxon, ferret, l7-protocols, and nessus are very old network security
software (it's got a stale snapshot of nmap too), xl2tpd is a PPP over UDP
tunnel (rfc 2661), zebra is the package quagga replaced,
lilo is the x86-only bootloader that predated grub (and recently discontinued
development), lissa is a "framebuffer graphics demo" from
1998, the squashfs package here is the out of tree patches for 2.4 kernels
and such before the filesystem was merged upstream (as opposed to the
squashfs-new package which is a snapshot of the userspace tool from 2011),
load is basically "dd file /dev/spi", version is basically "cat /proc/version",
microwin is a port of the WinCE graphics API to Linux, scep is a 2003
implementation of an IETF draft abandoned in 2010, tpt depends on
Andrew Morton's 15 year old unmerged "timepegs" kernel patch using the pentium
cycle counter, vpnled controls a light that reboots systems (what?),
w3cam is a video4linux 1.0 client (v4l2 showed up during 2.5 and support for
the old v4l1 was removed in 2.6.38 back in 2011), busybox ate tinylogin
over a decade ago, lrpstat is a java network monitor
from 2001, lrzsz is zmodem/ymodem/zmodem, msntp and stp implement rfc2030
meaning it overflows in 2036 (the package was last updated in 2000), rdate
is rfc 868 meaning it also overflows in 2036 (which is why ntp was invented
a few decades back), reiserfsprogs development stopped abruptly after
Hans Reiser was convicted of murdering his wife Nina (denying it on the
stand and then leading them to the body as part of his plea bargain during
sentencing)...
</p>

<p>Seriously, there's a lot of crap in there. It's hard to analyze most
of it far enough to prove it _doesn't_ do anything.</p>

<h3>Non-toybox programs</h3>

<p>The following software may actually still do something intelligible
(although the package versions tend to be years out of date), but
it's not a direction toybox has chosen to go in.</p>

<p>There are several programming languages (<b>bash, lua, jamvm, tinytcl,
perl, python</b>) in there. Maybe someone somewhere wants a 2008 release of a
java virtual machine tested to work on nommu systems (jamvm), but it's out
of scope for toybox.</p>

<p>A bunch of benchmark programs: <b>cpu, dhrystone, mathtest, nbench, netperf,
netpipe, and whetstone</b>.</p>

<p>A bunch of web servers: <b>appWeb, boa, fnord (via tcpserver), goahead, httpd,
mini_httpd, and thttpd</b>.</p>

<p>A bunch of shells: <b>msh</b> is a clever (I.E. obfuscated) little shell,
<b>nwsh</b> is "new shell" (that's what it called itself in 1999 anyway),
<b>sash</b> is another shell with a bunch of builtins (ls, ps, df, cp, date, reboot,
and shutdown, this roadmap analyzes it <a href="#sash">elsewhere</a>),
<b>sh</b> is a very old minix shell fork, and <b>tcsh</b> is also a shell.</p>

<p>Also in this category, we have:</p>

<blockquote><b><p>
dropbear jffs-tools jpegview kexec-tools bind ctorrent
iperf iproute2 ip-sentinel iptables kexec
nmap oggplay openssl oprofile p7zip pppd pptp play vplay
hdparm mp3play at clock
mtd-utils mysql logrotate brcfg bridge-utils flashw
ebtables etherwake ethtool expect gdb gdbserver hostapd
lm_sensors load netflash netstat-nat
radvd recover rootloader resolveip rp-pppoe
rsyslog rsyslogd samba smbmount squashfs-new squid ssh strace tip
uboot-envtools ulogd usbhubctrl vconfig vixie-cron watchdogd
wireless_tools wpa_supplicant
</p></b></blockquote>

<p>An awful lot of those are borderline: play and vplay are wav file
audio players, there's oprofile _and_ readprofile (which just reads kernel
profiling data from /proc/profile),
radvd is a "routr advertisement daemon" (ipv6 stateless autoconf),
ctorrent is a bittorent client, 
lm_sensors is hardware (heat?) monitoring,
resolveip is dig only less so,
rp-pppoe is ppp over ethernet,
ebtables is an ethernet version of iptables (for bridging),
their dropbear is from 2012, and that ssh version is from 2011
(which means it's about nine months too _old_ to have the heartbleed bug).
There's both ulogd and ulogd2 (no idea why), and pppd is version 2.4 but
there's a ppd-2.3 directory also.</p>

<p>Lots of flash stuff:
flashw is a flash writer, load is an spi flash loader, netflash writes
to flash via tftp,
recover is also a reflash daemon intended to come up when the system can't boot,
rootloader seems to be another reflash daemon but without dhcp.</p>

<h3>Already in roadmap</h3>

<p>The following packages contain commands already in the toybox roadmap:</p>

<blockquote><b><p>
agetty cal cksum cron dhcpcd dhcpcd-new dhcpd dhcp-isc dosfstools e2fsprogs
elvis-tiny levee fdisk fileutils ftp ftpd grep hd hwclock inetd init ntp
iputils login module-init-tools netcat shutils ntpdate lspci ping procps
proftpd rsync shadow shutils stty sysutils telnet telnetd tftp tftpd traceroute
unzip wget mawk net-tools
</p></b></blockquote>

<p>There are some duplicates in there, levee is a tiny vi implementation
like elvis-tiny, ntp and ntpdate overlap, etc.</p>

<p>Verdict: We don't really need to do a whole lot special for nommu
systems, just get the existing toybox roadmap working on nommu and
we're good. The uClinux project can rest in peace.</p>

<hr />
<h2>Requests:</h2>

<p>The following additional commands have been requested (and often submitted)
by various users. I _really_ need to clean up this section.</p>

<p>Also:</p>
<blockquote><b>
<span id=request>
dig freeramdisk getty halt hexdump hwclock klogd modprobe ping ping6 pivot_root
poweroff readahead rev sfdisk sudo syslogd taskset telnet telnetd tracepath
traceroute unzip usleep vconfig zip free login modinfo unshare netcat help w
iwconfig iwlist rdate
dos2unix unix2dos catv clear
pmap realpath setsid timeout truncate
mkswap swapon swapoff
count oneit fstype
acpi blkid eject pwdx
sulogin rfkill bootchartd
arp makedevs sysctl killall5 crond crontab deluser last mkpasswd watch
blockdev rpm2cpio arping brctl dumpleases fsck
tcpsvd tftpd
factor fallocate fsfreeze inotifyd lspci nbd-client partprobe strings
base32 base64 mix
reset hexedit nsenter shred
fsync insmod ionice lsmod lsusb rmmod vmstat xxd top iotop
lsof ionice compress dhcp dhcpd addgroup delgroup host iconv ip
ipcrm ipcs netstat openvt
deallocvt iorenice
udpsvd adduser
microcom tunctl chrt getfattr setfattr
kexec
ascii crc32 devmem fmt i2cdetect i2cdump i2cget i2cset mcookie prlimit sntp ulimit uuidgen dhcp6 ipaddr iplink iproute iprule iptunnel cd exit toysh bash traceroute6
blkdiscard rtcwake
watchdog
pwgen readelf unicode
rsync
linux32 hd strace
</span>
</b></blockquote>

<hr />
<a name=packages />
<h2>Other packages</h2>

<p>System administrators have <a href=https://github.com/landley/toybox/issues/168#issuecomment-583725500>asked</a> what other Linux packages toybox commands
replace, so they can annotate alternatives in their package management system.</p>

<p>This section uses the package definitions from Chapter 6 of
<a href=http://www.linuxfromscratch.org/lfs/downloads/9.0/LFS-BOOK-9.0-NOCHUNKS.html>Linux From Scratch 9.0</a>). Each package lists what we currently
replace, pending commands [in square brackets], and what we DON'T plan to
implement.</p>

<p>Each "see also" note means the listed package also installs the listed shared
libraries. (While toybox contains equivalent functionality to a lot of these
shared libraries in its lib/ directory, it does not currently provide a shared
library interface.)</p>

<h3>Packages toybox plans to provide complete-ish replacents for:</h3>
<ul>
<li><b>file</b>: file (see also: libmagic)</li>
<li><b>m4</b>: [m4]</li>
<li><b>bc</b>: [bc] [dc]</li>
<li><b>bison</b>: [yacc] (not: bison, see also: liby)</li>
<li><b>flex</b>: [lex] (not: flex flex++, see also: libfl)</li>
<li><b>make</b>: [make]</li>
<li><b>sed</b>: sed</li>
<li><b>grep</b>: grep egrep fgrep</li>
<li><b>bash</b>: bash sh (not: bashbug)</li>
<li><b>diffutils</b>: cmp [diff] [diff3] [sdiff]</li>
<li><b>gawk</b>: [awk] (not: gawk gawk-5.0.1)</li>
<li><b>findutils</b>: find xargs (not: locate updatedb)</li>
<li><b>less</b>: less (not: lessecho lesskey)</li>
<li><b>gzip</b>: zcat [gzip] [gunzip] [zcmp] [zdiff] [zegrep] [zfgrep] [zgrep] [zless] [zmore]
(not: gzexe uncompress zforce znew)</li>
<li><b>make</b>: [make]</li>
<li><b>patch</b>: patch</li>
<li><b>tar</b>: tar</li>
<li><b>procps-ng</b>: free pgrep pidof pkill ps sysctl top uptime vmstat w watch
[pmap] [pwdx] [slabtop]
(not: tload, see also libprocps)</li>
<li><b>sysklogd</b>: [klogd] [syslogd]</li>
<li><b>sysvinit</b>: [init] halt poweroff reboot killall5 [shutdown]
(not telinit runlevel fstab-decode bootlogd)</li>
<li><b>man</b>: man (but not accessdb apropos catman lexgrog mandb manpath whatis,
see also libman libmandb)</li>
<li><b>vim</b>: vi xxd (but not ex, rview, rvim, view, vim, vimdiff, vimtutor)</li>
<li><b>sysvinit</b>: [init] halt poweroff reboot killall5 [shutdown]
(not telinit runlevel fstab-decode bootlogd)</li>
<li><b>kmod</b>: insmod lsmod rmmod modinfo [modprobe]
(not: depmod kmod)</li>
<li><b>attr</b>: [getfattr] setfattr (not: attr, see also: libattr)</li>
<li><b>shadow</b>: [chfn] [chpasswd] [chsh] [groupadd] [groupdel] [groupmod]
[newusers] passwd [su] [useradd] [userdel] [usermod]
[lastlog] [login] [newgidmap] [newuidmap]
(not: chage expiry faillog groupmems grpck logoutd newgrp nologin pwck sg
vigr vipw, grpconv grpunconv pwconv pwunconv, chgpasswd gpasswd)</li>
<li><b>psmisc</b>: killall [fuser] [pstree] [peekfd] [prtstat]
(not: pslog pstree.x11)</li>
<li><b>inetutils</b>: dnsdomainname [ftp] hostname ifconfig ping ping6 [telnet] [tftp] [traceroute] (not: talk)</li>
<li><b>coreutils</b>: [ base32 base64 basename cat chgrp chmod chown chroot cksum comm cp cut date
dd df dirname du echo env expand factor false fmt fold groups head hostid id install
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc od
paste printenv printf pwd readlink realpath rm rmdir seq sha1sum shred
sleep sort split stat sync tac tail tee test timeout touch true truncate
tty uname uniq unlink wc who whoami yes
[expr] [fold] [join] [numfmt] [runcon] [sha224sum] [sha256sum] [sha384sum]
[sha512sum] [stty] [b2sum] [tr] [unexpand]
(not: basenc chcon csplit dir dircolors pathchk
pinky pr ptx shuf stdbuf sum tsort users vdir, see also libstdbuf)</li>
<li><b>util-linux</b>: blkid blockdev cal chrt dmesg eject fallocate flock hwclock
ionice kill logger losetup mcookie mkswap more mount mountpoint nsenter
pivot_root prlimit rename renice rev setsid swapoff swapon switch_root taskset
umount unshare uuidgen
[addpart] [fdisk] [findfs] [findmnt] [fsck] [fsfreeze] [fstrim] [getopt]
[hexdump] [linux32] [linux64] [lsblk] [lscpu] [lsns] [setarch]
(not: agetty blkdiscard blkzone cfdisk chcpu chmem choom col
colcrt colrm column ctrlaltdel delpart fdformat fincore fsck.cramfs
fsck.minix ipcmk ipcrm ipcs isosize last lastb ldattach look lsipc
lslocks lslogins lsmem mesg mkfs mkfs.bfs mkfs.cramfs mkfs.minix namei partx
raw readprofile resizepart rfkill rtcwake script scriptreplay
setterm sfdisk sulogin swaplabel ul
uname26 utmpdump uuidd uuidparse wall wdctl whereis wipefs
i386 x86_64 zramctl)</li>
</ul>

<p>Commentary: toybox init doesn't do runlevels, man and vim are just the
relevant commands without the piles of strange overgrowth, and if you want
to call a toybox binary by another name you can create a symlink to a
symlink. If somebody really wants to argue for "gzexe" or similar, be
my guest, but there's a lot of obsolete crap in shadow, coreutils,
util-linux...</p>

<p>No idea why LFS is installing inetutils instead of net-tools
(which contains arp route ifconfig mii-tool nameif netstat and rarp that
toybox does or might implement, and plipconfig slattach that it probably won't.)</p>

<h3>Packages toybox plans to provide partial replacents for:</h3>

<p>Toybox provides replacements for some binaries from these packages,
but there are other useful binaries which this package provides that toybox
currently considers out of scope for the project:</p>

<ul>
<li><b>binutils</b>: strings [ar] [nm] [readelf] [size] [objcopy] [strip]
(not c++filt, dwp, elfedit, gprof. The following commands belong
in <a href=/code/qcc>qcc</a>: addr2line as ld objdump ranlib)</li>
<li><b>bzip2</b>: bunzip2 bzcat [bzcmp] [bzdiff] [bzegrep] [bzfgrep] [bzgrep] [bzless]
[bzmore] (not: bzip2, bzip2recover, see also libbz2)</li>
<li><b>xz</b>: [xzcat] [lzcat] [lzcmp] [lzdiff] [lzegrep] [lzfgrep] [lzgrep]
[lzless] [lzmadec, lzmainfo] [lzmore] [unlzma] [unxz] [xzcat]
[xzcmp] [xzdec] [xzdiff] [xzegrep] [xzfgrep] [xzgrep] [xzless] [xzmore]
(not: compression side, see also: liblzma)</li>
<li><b>ncurses</b>: clear reset (not: everything else, see also: libcurses)</li>
<li><b>e2fsprogs</b>: chattr lsattr [e2fsck] [mkfs.ext2] [mkfs.ext3]
[fsck.ext2] [fsck.ext3] [e2label] [resize2fs] [tune2fs]
(not badblocks compile_et debugfs dumpe2fse2freefrag e2image
e2mmpstatus e2scrub e2scrub_all e2undo e4crypt e4defrag filefrag
fsck.ext4 logsave mk_cmds mkfs.ext4 mklost+found)</li>
</ul>

<p>Toybox provides several decompressors but compresses to a single format
(deflate, ala gzip/zlib). Our e2fsprogs doesn't currently plan to support
ext4 or defrag. The "qcc" reference is because someday an external project to glue
QEMU's <a href=https://git.qemu.org/?p=qemu.git;a=blob;f=tcg/README;h=bfa2e4ed246c;hb=HEAD>Tiny Code Generator</a>
to Fabrice Bellard's old <a href=http://landley.net/hg/tinycc>Tiny C Compiler</a>
making a multicall binary that does cc/ld/as for all the targets QEMU
supports (then use the
<a href=https://github.com/JuliaComputing/llvm-cbe>LLVM C Backend</a>
to compile LLVM itself to C for use as a modern replacement for
<a href=https://en.wikipedia.org/wiki/Cfront>cfront</a> to bootstrap
C++ code) is under consideration
as a successor project to toybox. Until then things like objdump -d
(requiring target-specific disassembly for an unbounded number of architectures)
are out of scope for toybox. (This means drawing the line somewhere between
architecture-specific support in file and strace, and including a full
assembler for each architecture.)</p>
</span>

<h3>Packages from LFS ch6 toybox does NOT plan to replace:</h3>

<ul>
<li><b>linux-api-headers</b></li>
<li><b>man-pages glibc</b></li>
<li><b>zlib</b></li>
<li><b>readline</b></li>
<li><b>gmp</b></li>
<li><b>mpfr</b></li>
<li><b>mpc</b></li>
<li><b>gcc</b></li>
<li><b>pkg-config</b></li>
<li><b>ncurses</b></li>
<li><b>acl</b></li>
<li><b>libcap</b></li>
<li><b>psmisc</b></li>
<li><b>iana-etc</b></li>
<li><b>libtool</b></li>
<li><b>gdbm</b></li>
<li><b>gperf</b></li>
<li><b>expat</b></li>
<li><b>perl</b></li>
<li><b>XML::Parser</b></li>
<li><b>intltool</b></li>
<li><b>autoconf</b></li>
<li><b>automake</b></li>
<li><b>gettext</b></li>
<li><b>libelf</b></li>
<li><b>libffi</b></li>
<li><b>openssl</b></li>
<li><b>python</b></li>
<li><b>ninja</b></li>
<li><b>meson</b></li>
<li><b>check</b></li>
<li><b>groff</b></li>
<li><b>grub</b></li>
<li><b>libpipeline</b></li>
<li><b>texinfo</b></li>
</ul>

<p>That said, we do implement our own zlib and readline replacements, and
presumably _could_ export them as library bindings. Plus we provide
our own version of a bunch of the section 1 man pages (as command help).
Possibly libcap and acl are interesting?</p>

<h3>Misc</h3>

<p>The kbd package has over a dozen commands, we only implement chvt. The
iproute2 package implements over a dozen commands, there's an "ip" in
pending but I'm not a fan (ifconfig and route and such should be extended
to work properly). We don't implement eudev, but toybox's maintainer
created busybox mdev way back when (which replaces it) and plans to do a
new one for toybox as soon as we work out what subset is still needed now that
devtmpfs is available.</p>

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

