OSDN Git Service

Explain shared library policy, fix an unblanaced tag, add some links.
authorRob Landley <rob@landley.net>
Mon, 15 Aug 2016 00:04:02 +0000 (19:04 -0500)
committerRob Landley <rob@landley.net>
Mon, 15 Aug 2016 00:04:02 +0000 (19:04 -0500)
www/design.html [changed mode: 0755->0644]
www/roadmap.html

old mode 100755 (executable)
new mode 100644 (file)
index b358d44..993a7f7
@@ -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>
 
index 9dff8b2..4cdafb0 100755 (executable)
@@ -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>