From 4c2484f46f969414b2aaf08300d80a81f18edcb1 Mon Sep 17 00:00:00 2001
From: Rob Landley Toybox has configurable levels of functionality, and should scale from tiny
embedded systems up to full general purpose desktop and development
-environments. The author plans to run it on his laptop, and the
-Firmware Linux project is trying to get a complete
+environments. The author plans to install it on his Android phone in
+place of Toolbox, and the
+Aboriginal Linux project is trying to get a complete
Linux system to rebuild itself from source code using toybox. Toybox is released under a simple 2-clause BSD-style
@@ -26,26 +27,17 @@ executable. The current list of commands implemented by toybox is at the top of the
news page. That list is updated when new commands
-go in.
In general, configuring toybox for "defconfig" enables all the commands compete enough to be useful. Configuring "allyesconfig" enables partially implemented commands as well.
-The following commands are incomplete, but demonstrate some basic -functionality: bzcat/bunzip2, help, mke2fs, sh/toysh, mdev.
- -The following are partially implemented commands that don't actually do -anything yet: mke2fs.
- -Several toybox commands can do things other vesions can't. For example:
- -The toybox "df" isn't confused by initramfs the way other df implementations +
Several toybox commands can do things other vesions can't. For example +the toybox "df" isn't confused by initramfs the way other df implementations are. If initramfs is visible, df shows it like any other mount point.
-The toybox "touch" command has a -l option to set the length of a file. -This can truncate a file, or create completely sparse files.
-The Toybox Shell (toysh) aims to be a reasonable bash replacement. It implements the "sh" and "toysh" commands, plus the built-in commands "cd" and @@ -53,7 +45,7 @@ implements the "sh" and "toysh" commands, plus the built-in commands "cd" and
The following additional commands may be built into the shell (but not as separate executables): cd, exit, if, while, for, function, fg, bg, jobs, source, -alias, +alias, export, set, unset, read, trap, and exec. (Note: not done yet.)
@@ -62,17 +54,18 @@ export, set, unset, read, trap, and exec. (Note: not done yet.)The toybox todo list mentions many potential commands which may be added to this project. (Whether that file is readable by anybody -but the project's maintainer is open to debate.)
+but the project's maintainer is open to debate.) The roadmap wiki in the +nav bar has a more human readable version.The criteria for a toybox 1.0 release is that a system built from just the -Linux kernel, toybox, uClibc, and a compiler (such as tinycc) can rebuild -itself from source code.
+Linux kernel, toybox, C library (such as uClibc), and a compiler (such as +tinycc) can rebuild itself from source code.Most commands are implemented according to -The -Single Unix Specification version 3 where applicable. This does not mean +The +Single Unix Specification version 4 where applicable. This does not mean that Toybox is implementing every SUSv3 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 @@ -84,8 +77,9 @@ obeyed.)
The other major sources of commands are the Linux man pages, and testing the behavior of existing commands (although not generally looking at their -source code). SUSv3 does not include many basic commands such as "mount", -"init", and "mke2fs", which are kind of nice to have.
+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.The maintainer's development log and the project's -mailing +mailing list are also good ways to track what's going on with the project.