annotate www/roadmap.html @ 673:c102f31a753e

Missing line in patch -l. Oops.
author Rob Landley <rob@landley.net>
date Sun, 07 Oct 2012 23:53:25 -0500
parents 3c591e7a367d
children ae3455c2989b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
639
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 <!--#include file="header.html" -->
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
2 <title>Toybox Roadmap</title>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
3
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
4 <h2>Goals and use cases</h2>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
5
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
6 <p>We have several potential use cases for a new set of command line
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
7 utilities, and are using those to determine which commands to implement
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
8 for Toybox's 1.0 release.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
9
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
10 <p>Our current candidate list combines the commands toybox already implements,
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
11 the development environment command list, the toolbox standard commands,
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
12 various vendor configurations of busybox, a selected subset of the SUSv4
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
13 standard, a couple of the less-insane bits of LSB, a few outright requests,
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
14 plus additional to-be-determined shell functionality.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
15
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
16 <p>See the <a href=status.html>status page</a> for the combined list
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
17 and progress towards implementing it.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
18
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
19 <hr />
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
20 <a name="standards">
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
21 <h2>Use case: standards compliance.</h2>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
22
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
23 <h3>POSIX-2008/SUSv4</h3>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
24 <p>The best standards are the kind that describe reality, rather than
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
25 attempting to impose a new one. (I.E. a good standard should document, not
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 legislate.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
27
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 <p>The kind of standards which describe existing reality tend to be approved by
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
29 more than one standards body, such ANSI and ISO both approving C. That's why
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
30 the IEEE POSIX committee's 2008 standard, the Single Unix Specification version
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
31 4, and the Open Group Base Specification edition 7 are all the same standard
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
32 from three sources.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
33
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
34 <p>The <a href="http://opengroup.org/onlinepubs/9699919799/idx/utilities.html">"utilities"
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
35 section</a>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
36 of these standards is devoted to the unix command line, and are the best such
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
37 standard for our purposes. (My earlier work on BusyBox was implemented with
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
38 regard to SUSv3, an earlier version of this standard.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
39
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
40 <h3>Problems with the standard</h3>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
41
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
42 <p>Unfortunately, these standards describe a subset of reality, lacking any
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
43 mention of commands such as init, login, or mount required to actually boot a
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
44 system. It provides ipcrm and ipcs, but not ipcmk, so you can use System V IPC
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
45 resources but not create them.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
46
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
47 <p>These standards also contain a large number of commands that are
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
48 inappropriate for toybox to implement in its 1.0 release. (Perhaps some of
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
49 these could be reintroduced in later releases, but not now.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
50
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
51 <p>Starting with the full "utilities" list, we first remove generally obsolete
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
52 commands (compess ed ex pr uncompress uccp uustat uux), commands for the
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
53 pre-CVS "SCCS" source control system (admin delta get prs rmdel sact sccs unget
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
54 val what), fortran support (asa fort77), and batch processing support (batch
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
55 qalter qdel qhold qmove qmsg qrerun qrls qselect qsig qstat qsub).</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
56
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
57 <p>Some commands are for a compiler toolchain (ar c99 cflow ctags cxref gencat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
58 iconv lex m4 make nm strings strip tsort yacc), which is outside of toybox's
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
59 mandate and should be supplied externally. (Again, some of these may be
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
60 revisited later, but not for toybox 1.0.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
61
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
62 <p>Some commands are part of a command shell, and cannot be implemented as
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
63 separate executables (alias bg cd command fc fg getopts hash jobs kill read
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
64 type ulimit umask unalias wait). These may be revisited as part of a built-in
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
65 toybox shell, but are not exported into $PATH via symlinks. (If you fork a
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
66 child process and have it "cd" then exit, you've accomplished nothing.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
67
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
68 <p>A few other commands are judgement calls, providing command-line
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
69 internationalization support (iconv locale localedef), System V inter-process
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
70 communication (ipcrm ipcs), and cross-tty communication from the minicomputer
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
71 days (talk mesg write). The "pax" utility was supplanted by tar, "mailx" is
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
72 a command line email client, and "lp" submits files for printing to... what
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
73 exactly? (cups?) The standard defines crontab but not crond.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
74
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
75 <p>Removing all of that leaves the following commands, which toybox should
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
76 implement:</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
77
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
78 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
79 <span id=posix>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
80 at awk basename bc cal cat chgrp chmod chown cksum cmp comm cp
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
81 csplit cut date dd df diff dirname du echo env expand expr false file find
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
82 fold fuser getconf grep head id join kill link ln logger logname ls man
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
83 mkdir mkfifo more mv newgrp nice nl nohup od paste patch pathchk printf ps
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
84 pwd renice rm rmdir sed sh sleep sort split stty tabs tail tee test time
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
85 touch tput tr true tty uname unexpand uniq unlink uudecode uuencode vi wc
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
86 who xargs zcat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
87 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
88 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
89
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
90 <h3>Linux Standard Base</h3>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
91
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
92 <p>One attempt to supplement POSIX towards an actual usable system was the
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
93 Linux Standard Base. Unfortunately, the quality of this "standard" is
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
94 fairly low.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
95
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
96 <p>POSIX allowed its standards process to be compromised
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
97 by leaving things out, thus allowing IBM mainframes and Windows NT to drive
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
98 a truck through the holes and declare themselves compilant. But it means what
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
99 they DID standardize tends to be respected.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
100
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
101 <p>The Linux Standard Base's failure mode is different, they respond to
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
102 pressure by including special-case crap, such as allowing Red Hat to shoehorn
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
103 RPM on the standard even though all sorts of distros (from Debian to Slackware)
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
104 don't use it and probably never will. This means anything in the LSB is
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
105 at best a suggestion: arbitrary portions of this standard are widely
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
106 ignored.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
107
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
108 <p>The LSB does specify a <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/cmdbehav.html>list of command line
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
109 utilities</a>:</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
110
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
111 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
112 ar at awk batch bc chfn chsh col cpio crontab df dmesg du echo egrep
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
113 fgrep file fuser gettext grep groupadd groupdel groupmod groups
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
114 gunzip gzip hostname install install_initd ipcrm ipcs killall lpr ls
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
115 lsb_release m4 md5sum mknod mktemp more mount msgfmt newgrp od passwd
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
116 patch pidof remove_initd renice sed sendmail seq sh shutdown su sync
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
117 tar umount useradd userdel usermod xargs zcat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
118 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
119
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
120 <p>Where posix specifies one of those commands, LSB's deltas tend to be
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
121 accomodations for broken tool versions which aren't up to date with the
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
122 standard yet. (See <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/more.html>more</a> and <a href=http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/xargs.html>xargs</a>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
123 for examples.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
124
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
125 <p>Since we've already committed to using our own judgement to skip bits of
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
126 POSIX, and LSB's "judgement" in this regard is purely bug workarounds to declare
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
127 various legacy tool implementations "compliant", this means we're mostly
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
128 interested in the set of tools that aren't specified in posix at all.</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
129
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
130 <p>Of these, gettext and msgfmt are internationalization, install_initd and
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
131 remove_initd aren't present on ubuntu 10.04, lpr is out of scope, and
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
132 lsb_release is a distro issue (it's a nice command, but the output of
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
133 lsb_release -a is the name and version number of the linux distro you're
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
134 running, which toybox doesn't know).</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
135
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
136 <p>This leaves:</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
137
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
138 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
139 <span id=lsb>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
140 chfn chsh dmesg egrep fgrep groupadd groupdel groupmod groups
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
141 gunzip gzip hostname install killall md5sum
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
142 mknod mktemp mount passwd pidof sendmail seq shutdown
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
143 su sync tar umount useradd userdel usermod zcat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
144 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
145 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
146
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
147 <hr />
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
148 <a name="dev_env">
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
149 <h2>Use case: provide a self-hosting development environment</h2>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
150
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
151 <p>The following commands are enough to build the Aboriginal Linux development
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
152 environment, boot it to a shell prompt, and build Linux From Scratch 6.8 under
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
153 it. (Aboriginal Linux currently uses BusyBox for this, thus provides a
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
154 drop-in test environment for toybox. We install both implementations side
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
155 by side, redirecting the symlinks a command at a time until the older
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
156 package is no longer used, and can be removed.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
157
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
158 <p>This use case includes running init scripts and other shell scripts, running
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
159 configure, make, and install in each package, and providing basic command line
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
160 facilities such as a text editor. (It does not include a compiler toolchain or
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
161 C library, those are outside the scope of this project.)</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
162
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
163 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
164 <span id=development>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
165 bzcat cat cp dirname echo env patch rmdir sha1sum sleep sort sync
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
166 true uname wc which yes zcat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
167 awk basename bzip2 chmod chown cmp cut date dd diff
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
168 egrep expr find grep gzip head hostname id install ln ls
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
169 mkdir mktemp mv od readlink rm sed sh tail tar touch tr uniq
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
170 wget whoami xargs chgrp comm gunzip less logname man split
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
171 tee test time bunzip2 chgrp chroot comm cpio dmesg
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
172 dnsdomainname ftpd ftpget ftpput gunzip ifconfig init less
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
173 logname losetup man mdev mount mountpoint nc pgrep pkill
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
174 pwd route split stat switch_root tac umount vi
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
175 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
176 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
177
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
178 <p>Note: Aboriginal Linux installs bash 2.05b as #!/bin/sh and its scripts
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
179 require bash extensions not present in shells such as busybox ash.
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
180 This means that toysh needs to supply several bash extensions _and_ work
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
181 when called under the name "bash".</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
182
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
183 <hr />
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
184 <a name=toolbox>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
185 <h2>Use case: Replacing Android Toolbox</h2>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
186
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
187 <h3>Full toolbox command set</h3>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
188
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
189 <p>Here is the full list of toolbox commands:
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
190 </p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
191 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
192 alarm cat chmod chown cmp cp date dd df dmesg getevent getprop hd id ifconfig
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
193 iftop insmod ioctl kill ln log ls lsmod mkdir mount mv netstat newfs_msdos notify
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
194 pidof printenv ps renice rm rmdir rmmod route schedtop sendevent setconsole
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
195 setprop sleep smd start stop sync toolbox top umount vmstat watchprops wipe
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
196 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
197
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
198 <p>The following Toolbox commands are reasonably standardized:</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
199
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
200 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
201 <span id=toolbox_std>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
202 cat chmod chown cmp cp date dd df dmesg id ifconfig iftop insmod ioctl ionice
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
203 kill ln ls lsmod lsof mkdir mount mv netstat newfs_msdos notify
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
204 ps printenv reboot renice rm rmdir rmmod route
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
205 sleep start stop sync top umount uptime vmstat
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
206 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
207 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
208
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
209 <h3>Android-specific commands</h3>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
210 <p>Toolbox also provides the following nonstandard commands, which are unique
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
211 to Android (or at least do not appear in Ubuntu or SUSv4):</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
212
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
213 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
214 <span id=toolbox>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
215 alarm hd getevent getprop ioctl log nandread notify
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
216 r schedtop sendevent setconsole setprop smd watchprops wipe
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
217 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
218 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
219
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
220 <hr />
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
221 <h2>Requests:</h2>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
222
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
223 <p>The following additional commands have been requested by various users:</p>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
224 <blockquote><b>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
225 <span id=request>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
226 freeramdisk getty halt hexdump hwclock klogd modprobe ping ping6 pivot_root
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
227 poweroff sfdisk sudo syslogd taskset telnet telnetd tracepath traceroute unzip
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
228 usleep vconfig zip free login modinfo unshare netcat help
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
229 </span>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
230 </b></blockquote>
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
231
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
232 <!-- #include "footer.html" -->
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents:
diff changeset
233