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