aboutsummaryrefslogtreecommitdiff
path: root/www/about.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/about.html')
-rwxr-xr-xwww/about.html96
1 files changed, 96 insertions, 0 deletions
diff --git a/www/about.html b/www/about.html
new file mode 100755
index 00000000..4dae2d21
--- /dev/null
+++ b/www/about.html
@@ -0,0 +1,96 @@
+<!--#include file="header.html" -->
+
+<h2><a name="what" />What is ToyBox?</h2>
+
+<p>The goal of the Toybox project is to create simple implementations of all
+the important Linux command line utilities. These implementations should
+be small (the entire project should total less than a megabyte, uncompressed),
+fast, simple, and correctly implemented (which is related to standards
+compliance, but isn't quite the same thing). Click for
+<a href="design.html">more about the design goals</a></p>
+
+<p>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
+<a href=/code/firmware>Firmware Linux</a> project is trying to get a complete
+Linux system to rebuild itself from source code using toybox.</p>
+
+<p>Toybox is <a href=license.html>Licensed under GPL version 2</a>.</p>
+
+<p>Toybox can be built as a single "swiss army knife" executable (ala BusyBox
+or Red Hat's Nash), or each command can be built as a traditional independent
+executable.</p>
+
+<b><h2><a name="status" />What commands are implemented?</h2></b>
+
+<p>The current list of commands implemented by toybox is at the top of the
+<a href=news.html>news page</a></p>. That list is updated when new commands
+go in.</p>
+
+<p>In general, configuring toybox for "defconfig" enables all the commands
+compete enough to be useful. Configuring "allyesconfig" enables partially
+implemented commands as well.</p>
+
+<p>The following commands are incomplete, but demonstrate some basic
+functionality: bzcat/bunzip2, help, mke2fs, sh/toysh, mdev.</p>
+
+<p>The following are partially implemented commands that don't actually do
+anything yet: mke2fs.</p>
+
+
+<b><h3>Command Shell</h3></b>
+<p>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
+"exit". This is the largest single sub-project in toybox.</p>
+
+<p>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,
+<a href="http://www.opengroup.org/onlinepubs/009695399/utilities/alias.html">alias</a>,
+export, set, unset, read, trap, and exec. (Note: not done yet.)</p>
+
+</ul>
+
+<h2><a name="commands" />Which commands are planned?</h2>
+
+<p>The toybox <a href=todo.txt>todo list</a> 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.)</p>
+
+<p>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.</p>
+
+<b><h3>Relevant Standards</h3></b>
+
+<p>Most commands are implemented according to
+<a href=http://www.opengroup.org/onlinepubs/009695399/idx/utilities.html>The
+Single Unix Specification version 3</a> 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
+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. (The standard provides an important
+frame of reference, but is not infallable set of commandments to be blindly
+obeyed.)</p>
+
+<p>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.</p>
+
+<b><h2><a name="downloads" />Download</h2></b>
+
+<p>This project is maintained as a mercurial archive. To get a copy of the
+current development version, either use mercurial (hg clone
+http://landley.net/toybox) or click on one of the zip/gz/bz2 links
+at the top of the <a href=/hg/toybox>mercurial archive browser</a> page to get
+an archive of the appropriate version. Click
+<a href="/hg/toybox?cmd=tags">tags</a> to see all the tagged release
+versions ("tip" is the current development version).</p>
+
+<p>The maintainer's <a href=/notes.html>development log</a> and the project's
+<a href=http://www2.them.com:8080/cgi-bin/mailman/listinfo/toybox>mailing
+list</a> are also good ways to track what's going on with the project.</p>
+
+<!--#include file="footer.html" -->