aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2016-08-14 19:04:02 -0500
committerRob Landley <rob@landley.net>2016-08-14 19:04:02 -0500
commita7055db6cb0cde39ca0e6533f63290e0170854a6 (patch)
treee2119e8500d168dedbf1986741577bc8a6e62603
parent8b685bae21f8753925dbefb8b07b78c47534f943 (diff)
downloadtoybox-a7055db6cb0cde39ca0e6533f63290e0170854a6.tar.gz
Explain shared library policy, fix an unblanaced tag, add some links.
-rw-r--r--[-rwxr-xr-x]www/design.html31
-rwxr-xr-xwww/roadmap.html8
2 files changed, 31 insertions, 8 deletions
diff --git a/www/design.html b/www/design.html
index b358d440..993a7f78 100755..100644
--- a/www/design.html
+++ b/www/design.html
@@ -289,12 +289,13 @@ older kernels or other implementations (ala BSD), but we don't police their
corner cases.</p>
<b><h3>32/64 bit</h3></b>
-<p>Toybox should work on both 32 bit and 64 bit systems. By the end of 2008
-64 bit hardware will be the new desktop standard, but 32 bit hardware will
-continue to be important in embedded devices for years to come.</p>
+<p>Toybox should work on both 32 bit and 64 bit systems. 64 bit desktop
+hardware went mainstream in 2005 and was essentially ubiquitous
+by the end of the decade, but 32 bit hardware will continue to be important
+in embedded devices for several more years.</p>
<p>Toybox relies on the fact that on any Unix-like platform, pointer and long
-are always the same size (on both 32 and 64 bit). Pointer and int are _not_
+are always the same size (on both 32 and 64 bit). Pointer and int are _not_
the same size on 64 bit systems, but pointer and long are.</p>
<p>This is guaranteed by the LP64 memory model, a Unix standard (which Linux
@@ -352,6 +353,28 @@ of it.)</p>
<p>Locale support isn't currently a goal; that's a presentation layer issue
(I.E. a GUI problem).</p>
+<p><h3>Shared Libraries</h3></p>
+
+<p>Toybox's policy on shared libraries is that they should never be
+required, but can optionally be used to improve performance.</p>
+
+<p>Toybox should provide the command line utilities for
+<a href=roadmap.html#dev_env>self-hosting development evirionments</a>,
+and an easy way to set up "hermetic builds" (I.E. builds which provide
+their own dependencies, isolating the build logic from host command version
+skew with a simple known build environment). In both cases, external
+dependencies defeat the purpose.</p>
+
+<p>This means toybox should provide full functionality without relying
+on any external dependencies (other than libc). But toybox may optionally use
+libraries such as zlib and openssl to improve performance for things like
+deflate and sha1sum, which lets the corresponding built-in implementations
+be simple (and thus slow). But the built-in implementations need to exist and
+work.</p>
+
+<p>(This is why we use an external https wrapper program, because depending on
+openssl or similar to be linked in would change the behavior of toybox.)</p>
+
<a name="codestyle" />
<h2>Coding style</h2>
diff --git a/www/roadmap.html b/www/roadmap.html
index 9dff8b2a..4cdafb0d 100755
--- a/www/roadmap.html
+++ b/www/roadmap.html
@@ -96,7 +96,7 @@ source.)</p>
alias bg cd command fc fg getopts hash jobs kill read type ulimit umask
unalias wait exit if while for case export set unset trap exec function source
</span>
-<b></blockquote>
+</b></blockquote>
<p>A few other commands are judgement calls, providing command-line
internationalization support (iconv locale localedef), System V inter-process
@@ -193,9 +193,9 @@ su sync tar umount useradd userdel usermod zcat
<a name="dev_env">
<h2><a href="#dev_env">Use case: provide a self-hosting development environment</a></h2>
-<p>The following commands are enough to build the Aboriginal Linux development
-environment, boot it to a shell prompt, and build Linux From Scratch 6.8 under
-it. (Aboriginal Linux currently uses BusyBox for this, thus provides a
+<p>The following commands are 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. (Aboriginal Linux <a href=http://landley.net/aboriginal/history.html>currently uses</a> BusyBox for this, thus providing a
drop-in test environment for toybox. We install both implementations side
by side, redirecting the symlinks a command at a time until the older
package is no longer used, and can be removed.)</p>