TODO list for busybox in no particular order. Just because something
is listed here doesn't mean that it is going to be added to busybox,
or that doing so is even a good idea. It just means that I _might_ get
around to it some time. If you have any good ideas, please let me know.

 -Erik

-----------

* Allow tar to create archives with sockets, devices, and other special files
* Add in a mini insmod, rmmod, lsmod
* init clearly needs to support some type of minimalist /etc/inittab. I
    currently have _way_ too much policy hardcoded in the source.  Adding
    support for getty has made me realize how much that sucks.
* dnsdomainname
* traceroute/nslookup/netstat
* rdate
* hwclock
* killall
* stty
* sort/uniq
* wc
* tr
* expr (maybe?)  (ash builtin?)
* login/sulogin/passwd/getty  (These are actully now part of tinylogin, which 
                                I've just started to maintain).

