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