blob: 5c642cb8dc061892134592940b9b006d058639c7 [file] [log] [blame]
Eric Andersenb186d981999-12-03 09:19:54 +00001TODO list for busybox in no particular order. Just because something
2is listed here doesn't mean that it is going to be added to busybox,
3or that doing so is even a good idea. It just means that I _might_ get
4around to it some time. If you have any good ideas, please let me know.
Eric Andersen394f7641999-11-23 21:38:12 +00005
Erik Andersen1c5b2581999-12-16 20:59:36 +00006* login/sulogin/passwd/getty/etc are part of tinylogin, and so are not
Erik Andersen94f5e0b2000-05-01 19:10:52 +00007 needed or wanted in busybox (or else I'd have to link to libcrypt).
Erik Andersen1c5b2581999-12-16 20:59:36 +00008
Erik Andersen31638212000-01-15 22:28:50 +00009* Networking apps are probably going to be split out some time soon into a
10 separate package (named perhaps tiny-netkit?). This currently includes
11 hostid, hostname, mnc, and ping.
12
13
Eric Andersenb186d981999-12-03 09:19:54 +000014 -Erik
15
16-----------
Eric Andersenbefda6e1999-11-25 08:06:22 +000017
Erik Andersen10c341a1999-12-17 18:52:06 +000018* Make insmod actually work
Eric Andersen485b9551999-12-07 23:14:59 +000019* dnsdomainname
Erik Andersen9ffdaa62000-02-11 21:55:04 +000020* traceroute/netstat
Eric Andersenb186d981999-12-03 09:19:54 +000021* rdate
22* hwclock
Eric Andersenb186d981999-12-03 09:19:54 +000023* stty
Erik Andersene2729152000-02-18 21:34:17 +000024* cut
Erik Andersen0817d132000-04-09 15:17:40 +000025* expr
Erik Andersen95c1c1e2000-04-14 21:45:29 +000026* wget (or whatever I call it)
27* tftp
28* ftp
Erik Andersenfac10d72000-02-07 05:29:42 +000029
30
Erik Andersene2729152000-02-18 21:34:17 +000031-----------------------
32
Erik Andersen5e1189e2000-04-15 16:34:54 +000033Add a compile option to turn off all the compiled in help
Erik Andersen9a8195c2000-04-18 23:32:10 +000034and usage information. Some folks don't need or want it...
Erik Andersen5e1189e2000-04-15 16:34:54 +000035
36-----------------------
37
Erik Andersen7c4b2f32000-02-29 21:49:22 +000038Compile with debugging on, run 'nm --size-sort ./busybox'
39and then start with the biggest things and make them smaller...
40
Erik Andersen7c4b2f32000-02-29 21:49:22 +000041-----------------------
42
Erik Andersene2729152000-02-18 21:34:17 +000043busybox.defs.h is too big and hard to follow.
44
Erik Andersen5661fe02000-04-05 01:00:52 +000045Perhaps I need to add a better build system (like the Linux kernel?)
Erik Andersene2729152000-02-18 21:34:17 +000046
47-----------------------
48
Erik Andersen27fdd082000-02-19 18:16:49 +000049Feature request:
50
51/bin/busybox --install -s which makes all links to commands that it
52 can support (an optionnal -s should be used for symbolic links instead
53 of hard links).
54
Erik Andersen3b9522f2000-02-22 17:12:00 +000055-----------------------
56
57
58> Have you ever thought of doig network logging in busybox syslogd ? It
59> would quite make sense on embedded systems... :)
60
61So far I had not considered it. Basically, you wish to have
62messages from the embedded box logged to a remote network
63syslog box, right? I can see that this would be useful.
64I'll add this to the TODO list,
65
Erik Andersen029011b2000-03-04 21:19:32 +000066
67-----------------------
68
69
Erik Andersen029011b2000-03-04 21:19:32 +000070 I think that the add_inode &c in utility.c needs to also stow the
71 st_dev field, and that du.c should NOT call `reset_inode_list'
72 because there can be hard links from inside one argv/ to inside
73 another argv/. du.c probably ought to have an -x switch like GNU du
74 does also...
75
76
Erik Andersen298854f2000-03-23 01:09:18 +000077------------------------------------------------------------------
78
79
80Date: Fri, 25 Feb 2000 08:23:12 +0000 (GMT)
81From: Riley Williams <rhw@MemAlpha.CX>
82X-Sender: rhw@moo.cus.org.uk
83To: almesber@lrc.di.epfl.ch
84Cc: "Albert D. Cahalan" <acahalan@cs.uml.edu>,
85 Linux Kernel <linux-kernel@vger.rutgers.edu>
86Subject: Re: What /proc should contain [was: /proc/driver/microcode]
87In-Reply-To: <20000224165245.A29790@lrc.di.epfl.ch>
88Message-ID: <Pine.LNX.4.21.0002250806220.8741-100000@moo.cus.org.uk>
89Sender: owner-linux-kernel@vger.rutgers.edu
90Precedence: bulk
91
92Hi there.
93
94 >> Nope, most /proc access is does via programs written in C.
95
96 > That varies a lot from file to file. E.g. I haven't seen any
97 > programs that are specificly designed to read /proc/atm/* yet,
98 > and I know of only one (fuser) that reads /proc/mounts,
99 > extracting only partial information (just to pick two examples
100 > that I'm quite familiar with).
101
102As a point of reference, here's a slightly tweaked analysis of the
103programs on the system I'm reading your mail on. Basically, I ran the
104following script...
105
106 Q> #!/bin/bash
107 Q> function use() {
108 Q> for Z in $* ; do
109 Q> strings $Z | grep /proc | sed "s=^=$Z ="
110 Q> done
111 Q> }
112 Q> use /{,s}bin/* /usr/{,s}bin/* | sort -u | tee proc-usage
113
114...and then went through it removing comments and print format
115strings. Replace /proc with /dev and you'd soon have an equivalent
116list for that - although I can report that such is MUCH larger...
117
118There are three programs therein that refer to /proc/mounts ...
119
120 /bin/mount
121 /bin/umount
122 /usr/bin/eject
123
124...and, as you stated, none that refer to /proc/atm on this system.
125However, as this is a RedHat Linux 5.0 based system, that's not
126necessarily an up to date reference thereto...
127
128Here's the list anyway...
129
130/bin/kill /proc/%d/cmdline
131/bin/kill /proc/%d/stat
132
133/bin/mount /proc/devices
134/bin/mount /proc/filesystems
135/bin/mount /proc/mounts
136
137/bin/netstat /proc/net
138/bin/netstat /proc/net/appletalk
139/bin/netstat /proc/net/ax25
140/bin/netstat /proc/net/ax25_route
141/bin/netstat /proc/net/dev
142/bin/netstat /proc/net/ip_masquerade
143/bin/netstat /proc/net/ipx
144/bin/netstat /proc/net/ipx_route
145/bin/netstat /proc/net/netstat
146/bin/netstat /proc/net/nr
147/bin/netstat /proc/net/nr_neigh
148/bin/netstat /proc/net/nr_nodes
149/bin/netstat /proc/net/raw
150/bin/netstat /proc/net/route
151/bin/netstat /proc/net/rt_cache
152/bin/netstat /proc/net/snmp
153/bin/netstat /proc/net/tcp
154/bin/netstat /proc/net/udp
155/bin/netstat /proc/net/unix
156
157/bin/umount /proc/devices
158/bin/umount /proc/mounts
159
160/sbin/arp /proc/net/appletalk
161/sbin/arp /proc/net/arp
162/sbin/arp /proc/net/ax25
163/sbin/arp /proc/net/ipx
164/sbin/arp /proc/net/nr
165/sbin/arp /proc/net/unix
166
167/sbin/cardctl /proc/devices
168
169/sbin/cardmgr /proc/devices
170
171/sbin/fdisk /proc/ide/%s/media
172/sbin/fdisk /proc/scsi/scsi
173
174/sbin/getty /proc/version
175
176/sbin/ifconfig /proc/net
177/sbin/ifconfig /proc/net/appletalk
178/sbin/ifconfig /proc/net/ax25
179/sbin/ifconfig /proc/net/dev
180/sbin/ifconfig /proc/net/ipx
181/sbin/ifconfig /proc/net/nr
182/sbin/ifconfig /proc/net/unix
183
184/sbin/ifup /proc/sys/kernel/modprobe
185
186/sbin/ipchains /proc/net/ip_fwchains
187/sbin/ipchains /proc/net/ip_fwnames
188/sbin/ipchains /proc/net/ip_masquerade
189/sbin/ipchains /proc/sys/net/ipv4/ip_forward
190
191/sbin/ipmaddr /proc/net/dev_mcast
192/sbin/ipmaddr /proc/net/igmp
193/sbin/ipmaddr /proc/net/igmp6
194
195/sbin/iptunnel /proc/net/dev
196
197/sbin/killall5 /proc/%s/cmdline
198/sbin/killall5 /proc/%s/exe
199/sbin/killall5 /proc/%s/stat
200/sbin/killall5 /proc/version
201
202/sbin/klogd /proc/kmsg
203
204/sbin/lsmod /proc/modules
205
206/sbin/modprobe /proc/modules
207
208/sbin/pidof /proc/%s/cmdline
209/sbin/pidof /proc/%s/exe
210/sbin/pidof /proc/%s/stat
211/sbin/pidof /proc/version
212
213/sbin/probe /proc/pci
214
215/sbin/rarp /proc/net/ax25
216/sbin/rarp /proc/net/nr
217/sbin/rarp /proc/net/rarp
218
219/sbin/rmmod /proc/modules
220
221/sbin/rmmod.static /proc/modules
222
223/sbin/route /proc/net/appletalk
224/sbin/route /proc/net/ax25
225/sbin/route /proc/net/ax25_route
226/sbin/route /proc/net/ipx
227/sbin/route /proc/net/ipx_route
228/sbin/route /proc/net/nr
229/sbin/route /proc/net/nr_neigh
230/sbin/route /proc/net/nr_nodes
231/sbin/route /proc/net/route
232/sbin/route /proc/net/rt_cache
233/sbin/route /proc/net/unix
234
235/sbin/scsi_info /proc/scsi
236/sbin/scsi_info /proc/scsi/%s
237/sbin/scsi_info /proc/scsi/scsi
238
239/sbin/slattach /proc/net/ax25
240/sbin/slattach /proc/net/nr
241
242/sbin/swapoff /proc/swaps
243
244/sbin/swapon /proc/swaps
245
246/sbin/uugetty /proc/version
247
248/usr/bin/dig /proc/
249/usr/bin/dig /proc/interrupts
250/usr/bin/dig /proc/meminfo
251/usr/bin/dig /proc/rtc
252/usr/bin/dig /proc/self/status
253/usr/bin/dig /proc/stat
254
255/usr/bin/dnsquery /proc/
256/usr/bin/dnsquery /proc/interrupts
257/usr/bin/dnsquery /proc/meminfo
258/usr/bin/dnsquery /proc/rtc
259/usr/bin/dnsquery /proc/self/status
260/usr/bin/dnsquery /proc/stat
261
262/usr/bin/eject /proc/mounts
263
264/usr/bin/emacs /proc/loadavg
265
266/usr/bin/fetchmail /proc/net/dev
267
268/usr/bin/free /proc/meminfo
269
270/usr/bin/gmake /proc/loadavg
271
272/usr/bin/gpm-root /proc/loadavg
273/usr/bin/gpm-root /proc/meminfo
274
275/usr/bin/host /proc/
276/usr/bin/host /proc/interrupts
277/usr/bin/host /proc/meminfo
278/usr/bin/host /proc/rtc
279/usr/bin/host /proc/self/status
280/usr/bin/host /proc/stat
281
282/usr/bin/hoststat /proc/loadavg
283
284/usr/bin/hwdiag /proc/cpuinfo
285/usr/bin/hwdiag /proc/pci
286/usr/bin/hwdiag /proc/scsi/scsi
287/usr/bin/hwdiag /proc/version
288
289/usr/bin/lsdev /proc/dma
290/usr/bin/lsdev /proc/interrupts
291/usr/bin/lsdev /proc/ioports
292
293/usr/bin/mailq /proc/loadavg
294
295/usr/bin/make /proc/loadavg
296
297/usr/bin/mcookie /proc/loadavg
298/usr/bin/mcookie /proc/stat
299
300/usr/bin/newaliases /proc/loadavg
301
302/usr/bin/nslookup /proc/
303/usr/bin/nslookup /proc/interrupts
304/usr/bin/nslookup /proc/meminfo
305/usr/bin/nslookup /proc/rtc
306/usr/bin/nslookup /proc/self/status
307/usr/bin/nslookup /proc/stat
308
309/usr/bin/nsupdate /proc/
310/usr/bin/nsupdate /proc/interrupts
311/usr/bin/nsupdate /proc/meminfo
312/usr/bin/nsupdate /proc/rtc
313/usr/bin/nsupdate /proc/self/status
314/usr/bin/nsupdate /proc/stat
315
316/usr/bin/pgp /proc/version
317/usr/bin/pgpe /proc/version
318/usr/bin/pgpk /proc/version
319/usr/bin/pgps /proc/version
320/usr/bin/pgpv /proc/version
321
322/usr/bin/procinfo /proc/cmdline
323/usr/bin/procinfo /proc/devices
324/usr/bin/procinfo /proc/dma
325/usr/bin/procinfo /proc/filesystems
326/usr/bin/procinfo /proc/interrupts
327/usr/bin/procinfo /proc/loadavg
328/usr/bin/procinfo /proc/meminfo
329/usr/bin/procinfo /proc/modules
330/usr/bin/procinfo /proc/stat
331/usr/bin/procinfo /proc/uptime
332/usr/bin/procinfo /proc/version
333
334/usr/bin/purgestat /proc/loadavg
335
336/usr/bin/screen /proc/loadavg
337
338/usr/bin/strace /proc/%d/stat
339
340/usr/bin/top /proc/cpuinfo
341/usr/bin/top /proc/meminfo
342/usr/bin/top /proc/stat
343
344/usr/bin/vmstat /proc/%s/stat
345/usr/bin/vmstat /proc/meminfo
346/usr/bin/vmstat /proc/stat
347
348/usr/sbin/atd /proc/loadavg
349
350/usr/sbin/dnskeygen /proc/
351/usr/sbin/dnskeygen /proc/interrupts
352/usr/sbin/dnskeygen /proc/meminfo
353/usr/sbin/dnskeygen /proc/rtc
354/usr/sbin/dnskeygen /proc/self/status
355/usr/sbin/dnskeygen /proc/stat
356
357/usr/sbin/fuser /proc/%d/stat
358/usr/sbin/fuser /proc/net/%s
359/usr/sbin/fuser /proc/net/unix
360
361/usr/sbin/in.identd /proc/net/tcp
362
363/usr/sbin/irpd /proc/
364/usr/sbin/irpd /proc/interrupts
365/usr/sbin/irpd /proc/meminfo
366/usr/sbin/irpd /proc/rtc
367/usr/sbin/irpd /proc/self/status
368/usr/sbin/irpd /proc/stat
369
370/usr/sbin/named /proc/
371/usr/sbin/named /proc/interrupts
372/usr/sbin/named /proc/meminfo
373/usr/sbin/named /proc/rtc
374/usr/sbin/named /proc/self/status
375/usr/sbin/named /proc/stat
376
377/usr/sbin/named-xfer /proc/
378/usr/sbin/named-xfer /proc/interrupts
379/usr/sbin/named-xfer /proc/meminfo
380/usr/sbin/named-xfer /proc/rtc
381/usr/sbin/named-xfer /proc/self/status
382/usr/sbin/named-xfer /proc/stat
383
384/usr/sbin/readprofile /proc/profile
385
386/usr/sbin/rwhod /proc/loadavg
387/usr/sbin/rwhod /proc/uptime
388
389/usr/sbin/sendmail /proc/loadavg
390
391/usr/sbin/setconsole /proc/openprom/options
392/usr/sbin/setconsole /proc/openprom/options/${console}-mode
393/usr/sbin/setconsole /proc/openprom/options/input-device
394/usr/sbin/setconsole /proc/openprom/options/output-device
395
396Best wishes from Riley.
397
398 * Copyright (C) 1999, Memory Alpha Systems.
399 * All rights and wrongs reserved.
400
401+----------------------------------------------------------------------+
402| There is something frustrating about the quality and speed of Linux |
403| development, ie., the quality is too high and the speed is too high, |
404| in other words, I can implement this XXXX feature, but I bet someone |
405| else has already done so and is just about to release their patch. |
406+----------------------------------------------------------------------+
407 * http://www.memalpha.cx/Linux/Kernel/
408
409
410-
411To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
412the body of a message to majordomo@vger.rutgers.edu
413Please read the FAQ at http://www.tux.org/lkml/
414