blob: 15e9b30ada526ac8df281f345f2f9443d5dea9f8 [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 Andersenf378fce2000-05-01 19:27:17 +000038Running the following:
39
Erik Andersen12d1b372000-05-01 19:50:37 +000040 rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \
41 sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq
Erik Andersenf378fce2000-05-01 19:27:17 +000042
43reveals the list of all external (i.e. libc) things that BusyBox depends on.
44It would be a very nice thing to reduce this list to an absolute minimum, and
45then create a microLibc to provide these functions. There is no good reason
46for GNU libc to be so big. I'm sure it can be a lot better.
47
Erik Andersen9b7d9642000-05-01 19:49:20 +000048(BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...)
49
Erik Andersenf378fce2000-05-01 19:27:17 +000050
51-----------------------
52
Erik Andersen7c4b2f32000-02-29 21:49:22 +000053Compile with debugging on, run 'nm --size-sort ./busybox'
54and then start with the biggest things and make them smaller...
55
Erik Andersen7c4b2f32000-02-29 21:49:22 +000056-----------------------
57
Erik Andersene2729152000-02-18 21:34:17 +000058busybox.defs.h is too big and hard to follow.
59
Erik Andersen5661fe02000-04-05 01:00:52 +000060Perhaps I need to add a better build system (like the Linux kernel?)
Erik Andersene2729152000-02-18 21:34:17 +000061
62-----------------------
63
Erik Andersen27fdd082000-02-19 18:16:49 +000064Feature request:
65
66/bin/busybox --install -s which makes all links to commands that it
67 can support (an optionnal -s should be used for symbolic links instead
68 of hard links).
69
Erik Andersen3b9522f2000-02-22 17:12:00 +000070-----------------------
71
72
73> Have you ever thought of doig network logging in busybox syslogd ? It
74> would quite make sense on embedded systems... :)
75
76So far I had not considered it. Basically, you wish to have
77messages from the embedded box logged to a remote network
78syslog box, right? I can see that this would be useful.
79I'll add this to the TODO list,
80
Erik Andersen029011b2000-03-04 21:19:32 +000081
82-----------------------
83
84
Erik Andersen029011b2000-03-04 21:19:32 +000085 I think that the add_inode &c in utility.c needs to also stow the
86 st_dev field, and that du.c should NOT call `reset_inode_list'
87 because there can be hard links from inside one argv/ to inside
88 another argv/. du.c probably ought to have an -x switch like GNU du
89 does also...
90
91
Erik Andersen298854f2000-03-23 01:09:18 +000092------------------------------------------------------------------
93
94
95Date: Fri, 25 Feb 2000 08:23:12 +0000 (GMT)
96From: Riley Williams <rhw@MemAlpha.CX>
97X-Sender: rhw@moo.cus.org.uk
98To: almesber@lrc.di.epfl.ch
99Cc: "Albert D. Cahalan" <acahalan@cs.uml.edu>,
100 Linux Kernel <linux-kernel@vger.rutgers.edu>
101Subject: Re: What /proc should contain [was: /proc/driver/microcode]
102In-Reply-To: <20000224165245.A29790@lrc.di.epfl.ch>
103Message-ID: <Pine.LNX.4.21.0002250806220.8741-100000@moo.cus.org.uk>
104Sender: owner-linux-kernel@vger.rutgers.edu
105Precedence: bulk
106
107Hi there.
108
109 >> Nope, most /proc access is does via programs written in C.
110
111 > That varies a lot from file to file. E.g. I haven't seen any
112 > programs that are specificly designed to read /proc/atm/* yet,
113 > and I know of only one (fuser) that reads /proc/mounts,
114 > extracting only partial information (just to pick two examples
115 > that I'm quite familiar with).
116
117As a point of reference, here's a slightly tweaked analysis of the
118programs on the system I'm reading your mail on. Basically, I ran the
119following script...
120
121 Q> #!/bin/bash
122 Q> function use() {
123 Q> for Z in $* ; do
124 Q> strings $Z | grep /proc | sed "s=^=$Z ="
125 Q> done
126 Q> }
127 Q> use /{,s}bin/* /usr/{,s}bin/* | sort -u | tee proc-usage
128
129...and then went through it removing comments and print format
130strings. Replace /proc with /dev and you'd soon have an equivalent
131list for that - although I can report that such is MUCH larger...
132
133There are three programs therein that refer to /proc/mounts ...
134
135 /bin/mount
136 /bin/umount
137 /usr/bin/eject
138
139...and, as you stated, none that refer to /proc/atm on this system.
140However, as this is a RedHat Linux 5.0 based system, that's not
141necessarily an up to date reference thereto...
142
143Here's the list anyway...
144
145/bin/kill /proc/%d/cmdline
146/bin/kill /proc/%d/stat
147
148/bin/mount /proc/devices
149/bin/mount /proc/filesystems
150/bin/mount /proc/mounts
151
152/bin/netstat /proc/net
153/bin/netstat /proc/net/appletalk
154/bin/netstat /proc/net/ax25
155/bin/netstat /proc/net/ax25_route
156/bin/netstat /proc/net/dev
157/bin/netstat /proc/net/ip_masquerade
158/bin/netstat /proc/net/ipx
159/bin/netstat /proc/net/ipx_route
160/bin/netstat /proc/net/netstat
161/bin/netstat /proc/net/nr
162/bin/netstat /proc/net/nr_neigh
163/bin/netstat /proc/net/nr_nodes
164/bin/netstat /proc/net/raw
165/bin/netstat /proc/net/route
166/bin/netstat /proc/net/rt_cache
167/bin/netstat /proc/net/snmp
168/bin/netstat /proc/net/tcp
169/bin/netstat /proc/net/udp
170/bin/netstat /proc/net/unix
171
172/bin/umount /proc/devices
173/bin/umount /proc/mounts
174
175/sbin/arp /proc/net/appletalk
176/sbin/arp /proc/net/arp
177/sbin/arp /proc/net/ax25
178/sbin/arp /proc/net/ipx
179/sbin/arp /proc/net/nr
180/sbin/arp /proc/net/unix
181
182/sbin/cardctl /proc/devices
183
184/sbin/cardmgr /proc/devices
185
186/sbin/fdisk /proc/ide/%s/media
187/sbin/fdisk /proc/scsi/scsi
188
189/sbin/getty /proc/version
190
191/sbin/ifconfig /proc/net
192/sbin/ifconfig /proc/net/appletalk
193/sbin/ifconfig /proc/net/ax25
194/sbin/ifconfig /proc/net/dev
195/sbin/ifconfig /proc/net/ipx
196/sbin/ifconfig /proc/net/nr
197/sbin/ifconfig /proc/net/unix
198
199/sbin/ifup /proc/sys/kernel/modprobe
200
201/sbin/ipchains /proc/net/ip_fwchains
202/sbin/ipchains /proc/net/ip_fwnames
203/sbin/ipchains /proc/net/ip_masquerade
204/sbin/ipchains /proc/sys/net/ipv4/ip_forward
205
206/sbin/ipmaddr /proc/net/dev_mcast
207/sbin/ipmaddr /proc/net/igmp
208/sbin/ipmaddr /proc/net/igmp6
209
210/sbin/iptunnel /proc/net/dev
211
212/sbin/killall5 /proc/%s/cmdline
213/sbin/killall5 /proc/%s/exe
214/sbin/killall5 /proc/%s/stat
215/sbin/killall5 /proc/version
216
217/sbin/klogd /proc/kmsg
218
219/sbin/lsmod /proc/modules
220
221/sbin/modprobe /proc/modules
222
223/sbin/pidof /proc/%s/cmdline
224/sbin/pidof /proc/%s/exe
225/sbin/pidof /proc/%s/stat
226/sbin/pidof /proc/version
227
228/sbin/probe /proc/pci
229
230/sbin/rarp /proc/net/ax25
231/sbin/rarp /proc/net/nr
232/sbin/rarp /proc/net/rarp
233
234/sbin/rmmod /proc/modules
235
236/sbin/rmmod.static /proc/modules
237
238/sbin/route /proc/net/appletalk
239/sbin/route /proc/net/ax25
240/sbin/route /proc/net/ax25_route
241/sbin/route /proc/net/ipx
242/sbin/route /proc/net/ipx_route
243/sbin/route /proc/net/nr
244/sbin/route /proc/net/nr_neigh
245/sbin/route /proc/net/nr_nodes
246/sbin/route /proc/net/route
247/sbin/route /proc/net/rt_cache
248/sbin/route /proc/net/unix
249
250/sbin/scsi_info /proc/scsi
251/sbin/scsi_info /proc/scsi/%s
252/sbin/scsi_info /proc/scsi/scsi
253
254/sbin/slattach /proc/net/ax25
255/sbin/slattach /proc/net/nr
256
257/sbin/swapoff /proc/swaps
258
259/sbin/swapon /proc/swaps
260
261/sbin/uugetty /proc/version
262
263/usr/bin/dig /proc/
264/usr/bin/dig /proc/interrupts
265/usr/bin/dig /proc/meminfo
266/usr/bin/dig /proc/rtc
267/usr/bin/dig /proc/self/status
268/usr/bin/dig /proc/stat
269
270/usr/bin/dnsquery /proc/
271/usr/bin/dnsquery /proc/interrupts
272/usr/bin/dnsquery /proc/meminfo
273/usr/bin/dnsquery /proc/rtc
274/usr/bin/dnsquery /proc/self/status
275/usr/bin/dnsquery /proc/stat
276
277/usr/bin/eject /proc/mounts
278
279/usr/bin/emacs /proc/loadavg
280
281/usr/bin/fetchmail /proc/net/dev
282
283/usr/bin/free /proc/meminfo
284
285/usr/bin/gmake /proc/loadavg
286
287/usr/bin/gpm-root /proc/loadavg
288/usr/bin/gpm-root /proc/meminfo
289
290/usr/bin/host /proc/
291/usr/bin/host /proc/interrupts
292/usr/bin/host /proc/meminfo
293/usr/bin/host /proc/rtc
294/usr/bin/host /proc/self/status
295/usr/bin/host /proc/stat
296
297/usr/bin/hoststat /proc/loadavg
298
299/usr/bin/hwdiag /proc/cpuinfo
300/usr/bin/hwdiag /proc/pci
301/usr/bin/hwdiag /proc/scsi/scsi
302/usr/bin/hwdiag /proc/version
303
304/usr/bin/lsdev /proc/dma
305/usr/bin/lsdev /proc/interrupts
306/usr/bin/lsdev /proc/ioports
307
308/usr/bin/mailq /proc/loadavg
309
310/usr/bin/make /proc/loadavg
311
312/usr/bin/mcookie /proc/loadavg
313/usr/bin/mcookie /proc/stat
314
315/usr/bin/newaliases /proc/loadavg
316
317/usr/bin/nslookup /proc/
318/usr/bin/nslookup /proc/interrupts
319/usr/bin/nslookup /proc/meminfo
320/usr/bin/nslookup /proc/rtc
321/usr/bin/nslookup /proc/self/status
322/usr/bin/nslookup /proc/stat
323
324/usr/bin/nsupdate /proc/
325/usr/bin/nsupdate /proc/interrupts
326/usr/bin/nsupdate /proc/meminfo
327/usr/bin/nsupdate /proc/rtc
328/usr/bin/nsupdate /proc/self/status
329/usr/bin/nsupdate /proc/stat
330
331/usr/bin/pgp /proc/version
332/usr/bin/pgpe /proc/version
333/usr/bin/pgpk /proc/version
334/usr/bin/pgps /proc/version
335/usr/bin/pgpv /proc/version
336
337/usr/bin/procinfo /proc/cmdline
338/usr/bin/procinfo /proc/devices
339/usr/bin/procinfo /proc/dma
340/usr/bin/procinfo /proc/filesystems
341/usr/bin/procinfo /proc/interrupts
342/usr/bin/procinfo /proc/loadavg
343/usr/bin/procinfo /proc/meminfo
344/usr/bin/procinfo /proc/modules
345/usr/bin/procinfo /proc/stat
346/usr/bin/procinfo /proc/uptime
347/usr/bin/procinfo /proc/version
348
349/usr/bin/purgestat /proc/loadavg
350
351/usr/bin/screen /proc/loadavg
352
353/usr/bin/strace /proc/%d/stat
354
355/usr/bin/top /proc/cpuinfo
356/usr/bin/top /proc/meminfo
357/usr/bin/top /proc/stat
358
359/usr/bin/vmstat /proc/%s/stat
360/usr/bin/vmstat /proc/meminfo
361/usr/bin/vmstat /proc/stat
362
363/usr/sbin/atd /proc/loadavg
364
365/usr/sbin/dnskeygen /proc/
366/usr/sbin/dnskeygen /proc/interrupts
367/usr/sbin/dnskeygen /proc/meminfo
368/usr/sbin/dnskeygen /proc/rtc
369/usr/sbin/dnskeygen /proc/self/status
370/usr/sbin/dnskeygen /proc/stat
371
372/usr/sbin/fuser /proc/%d/stat
373/usr/sbin/fuser /proc/net/%s
374/usr/sbin/fuser /proc/net/unix
375
376/usr/sbin/in.identd /proc/net/tcp
377
378/usr/sbin/irpd /proc/
379/usr/sbin/irpd /proc/interrupts
380/usr/sbin/irpd /proc/meminfo
381/usr/sbin/irpd /proc/rtc
382/usr/sbin/irpd /proc/self/status
383/usr/sbin/irpd /proc/stat
384
385/usr/sbin/named /proc/
386/usr/sbin/named /proc/interrupts
387/usr/sbin/named /proc/meminfo
388/usr/sbin/named /proc/rtc
389/usr/sbin/named /proc/self/status
390/usr/sbin/named /proc/stat
391
392/usr/sbin/named-xfer /proc/
393/usr/sbin/named-xfer /proc/interrupts
394/usr/sbin/named-xfer /proc/meminfo
395/usr/sbin/named-xfer /proc/rtc
396/usr/sbin/named-xfer /proc/self/status
397/usr/sbin/named-xfer /proc/stat
398
399/usr/sbin/readprofile /proc/profile
400
401/usr/sbin/rwhod /proc/loadavg
402/usr/sbin/rwhod /proc/uptime
403
404/usr/sbin/sendmail /proc/loadavg
405
406/usr/sbin/setconsole /proc/openprom/options
407/usr/sbin/setconsole /proc/openprom/options/${console}-mode
408/usr/sbin/setconsole /proc/openprom/options/input-device
409/usr/sbin/setconsole /proc/openprom/options/output-device
410
411Best wishes from Riley.
412
413 * Copyright (C) 1999, Memory Alpha Systems.
414 * All rights and wrongs reserved.
415
416+----------------------------------------------------------------------+
417| There is something frustrating about the quality and speed of Linux |
418| development, ie., the quality is too high and the speed is too high, |
419| in other words, I can implement this XXXX feature, but I bet someone |
420| else has already done so and is just about to release their patch. |
421+----------------------------------------------------------------------+
422 * http://www.memalpha.cx/Linux/Kernel/
423
424
425-
426To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
427the body of a message to majordomo@vger.rutgers.edu
428Please read the FAQ at http://www.tux.org/lkml/
429