| <!--#include file="header.html" --> |
| |
| <p><b>December 12, 2007</b> - Updated the list of implemented applications, |
| put up a <a href=todo.txt>todo list</a> and <a href=code.html>infrastructure |
| documentation</a>. Expect another release towards the end of the month.</p> |
| |
| <p><b>June 18, 2007</b> - Put out |
| <a href=downloads/toybox-0.0.3.tar.bz2>toybox-0.0.3.tar.bz2</a> since it's |
| been too long since I did something like that. This one implements |
| catv, count, df, echo, false, oneit, pwd, sleep, sync, toysh, true, which, |
| and yes (which is what "make defconfig" enables). There are several other |
| commands not enabled by defconfig, because they don't really work yet.</p> |
| |
| <p>Most of the general infrastructure's there now, although lots of tweaking |
| and optimizing is still needed. The test suite is skeletal and not entirely |
| checked in yet, but I'm working on that.</p> |
| |
| <p>I don't have nearly as much time to work on this as I'd like, but I'm making |
| a little progress.</p> |
| |
| <p><b>January 31, 2007</b> - |
| Screwing up the web page a bit, adding an index bar along the side |
| which doesn't properly connect up to anything yet. (Busy implementing |
| mke2fs and gene2fs.)</p> |
| |
| <p>Warning: lots of this page is about what I plan to do, not what I've |
| already done. See <a href="#status>status</a> or <a href="/notes.html>my |
| development blog</a>, or <a href="/hg/toybox">browse the mercurial |
| archive</a>.</p> |
| |
| <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> |
| |
| <h2><a name="commands" />Which commands are planned?</h2> |
| |
| <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>. 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.</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).</p> |
| |
| <b><h2><a name="status" />What commands are implemented?</h2></b> |
| |
| <p>The following commands are currently implemented: basename, catv, chroot, |
| count, df, dirname, dmesg, echo, false, hello, mkfifo, oneit, pwd, sha1sum, |
| sleep, sync, true, tty, which, yes.</p> |
| |
| <p>The following commands are partly implemented, in a somewhat usable but not |
| necessarily complete state: bzcat/bunzip2, help, mke2fs, netcat/nc, sh/toysh, |
| mdev, touch, readlink.</p> |
| |
| <p>The following are partially implemented commands that don't actually do |
| anything yet: mke2fs, md5sum.</p> |
| |
| <p>For more information, see <a href=todo.txt>the todo list</a>.</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> |
| |
| <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 the tagged release versions ("tip" |
| is the current development version).</p> |
| |
| |
| <p>My <a href=/notes.html>development log</a> is currently the best way to |
| track what's going on with this project. There's also a |
| <a href=http://www2.them.com:8080/cgi-bin/mailman/listinfo/toybox>mailing list</a> for toybox development.</p> |
| |
| <!--#include file="footer.html" --> |