Topics


Design goals

Toybox should be simple, small, fast, and full featured. In that order.

It should be possible to get about 80% of the way to each goal before they really start to fight. When these goals need to be balanced off against each other, keeping the code as simple as it can be to do what it does is the most important (and hardest) goal. Then keeping it small is slightly more important than making it fast. Features are the reason we write code in the first place but this has all been implemented before so if we can't do a better job why bother?

Features

Toybox should provide the command line utilities of a build environment capable of recompiling itself under itself from source code. This minimal build system conceptually consists of 4 parts: toybox, a C library, a compiler, and a kernel. Toybox needs to provide all the commands (with all the behavior) necessary to run the configure/make/install of each package and boot the resulting system into a usable state.

In addition, it should be possible to bootstrap up to