blob: 87f48db38487c78f8dd7041cad446db62a371793 [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
7 needed or wanted in busybox (or else I'd have to link in libcrypt).
8
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
Eric Andersen394f7641999-11-23 21:38:12 +000018* Allow tar to create archives with sockets, devices, and other special files
Erik Andersen10c341a1999-12-17 18:52:06 +000019* Make insmod actually work
Eric Andersen485b9551999-12-07 23:14:59 +000020* dnsdomainname
Erik Andersen9ffdaa62000-02-11 21:55:04 +000021* traceroute/netstat
Eric Andersenb186d981999-12-03 09:19:54 +000022* rdate
23* hwclock
Eric Andersenb186d981999-12-03 09:19:54 +000024* killall
Eric Andersenb186d981999-12-03 09:19:54 +000025* stty
Eric Andersenb186d981999-12-03 09:19:54 +000026* tr
Erik Andersene2729152000-02-18 21:34:17 +000027* cut
Eric Andersen2cb55071999-12-10 08:25:07 +000028* expr (maybe?) (ash builtin?)
Eric Andersenb186d981999-12-03 09:19:54 +000029
Erik Andersenfac10d72000-02-07 05:29:42 +000030
31
Erik Andersene2729152000-02-18 21:34:17 +000032-----------------------
33
Erik Andersen7c4b2f32000-02-29 21:49:22 +000034Compile with debugging on, run 'nm --size-sort ./busybox'
35and then start with the biggest things and make them smaller...
36
37
38-----------------------
39
Erik Andersene2729152000-02-18 21:34:17 +000040
41busybox.defs.h is too big and hard to follow.
42
43I either need to add a better build system (like the Linux kernel?)
44or I need to split up busybox.defs.h into coherent chunks (i.e.
45busybox.defs.h just has a bunch of:
46
47#include "fileutils.h"
48#include "shellutils.h"
49
50which would then have smaller sets of #defines...
51Hmm. Needs to be carefully thought out.
52
53-----------------------
54
55
Erik Andersenfac10d72000-02-07 05:29:42 +000056-rw-r--r-- 1000/1000 4398 2000-01-06 21:55 uniq.c
57-rw-r--r-- 1000/1000 1568 1999-10-20 18:08 update.c
58-rw-r----- 0/1000 1168 2000-01-29 21:03 update.o
59-rw-r--r-- 1000/1000 22820 2000-01-05 11:36 utility.c
60-rw-r----- 0/1000 7372 2000-01-29 21:03 utility.o
61tar: Skipping to next file header
62tar: Skipping to next file header
63tar: Archive - EOF not on block boundary
64tar: Error is not recoverable: exiting now
65
66
67#1 You are storing by id instead of name like normal tar. Did you realize this?
68(or am I missing some compile option? )ctar did not do this, and I don't think
69it's a good idea for LRP.
70
71#2
72ctar did not produce the EOF error like your tar does. I believe you need to
73pad the end of the archive with at least 2 tarsized (512byte) blocks. (I
74think???)
75
76#3
77There is no exclude file(s) option to tar. LRP's packaging system can not
78function without this. Will you have the time to add this soon?
79
Erik Andersene2729152000-02-18 21:34:17 +000080
81-----------------------
82
Erik Andersene2729152000-02-18 21:34:17 +000083cd /mnt
84mkdir BACKUP
85mv * BACKUP
86
87Today, "mv" behaved as a cp -a and my disk becomed full. It does not
88work properly either when renaming a directory into something else
89(it produces a lot of disk activity when doing this).
90
91
Erik Andersen27fdd082000-02-19 18:16:49 +000092-----------------------
93
94
95Feature request:
96
97/bin/busybox --install -s which makes all links to commands that it
98 can support (an optionnal -s should be used for symbolic links instead
99 of hard links).
100
Erik Andersen3b9522f2000-02-22 17:12:00 +0000101
102-----------------------
103
104
105> Have you ever thought of doig network logging in busybox syslogd ? It
106> would quite make sense on embedded systems... :)
107
108So far I had not considered it. Basically, you wish to have
109messages from the embedded box logged to a remote network
110syslog box, right? I can see that this would be useful.
111I'll add this to the TODO list,
112
Erik Andersen029011b2000-03-04 21:19:32 +0000113
114-----------------------
115
116
117 In utility.c:copyFile: It uses followLinks for both source and
118 destination files... is that right for `mv'? Will need to revisit
119 the GNU, freeBSD, and MINIX versions for this... Should read the
120 Unix98 and POSIX specs also.
121
122-----------------------
123
124 I think that the add_inode &c in utility.c needs to also stow the
125 st_dev field, and that du.c should NOT call `reset_inode_list'
126 because there can be hard links from inside one argv/ to inside
127 another argv/. du.c probably ought to have an -x switch like GNU du
128 does also...
129
130
Erik Andersen298854f2000-03-23 01:09:18 +0000131------------------------------------------------------------------
132
133
134Date: Fri, 25 Feb 2000 08:23:12 +0000 (GMT)
135From: Riley Williams <rhw@MemAlpha.CX>
136X-Sender: rhw@moo.cus.org.uk
137To: almesber@lrc.di.epfl.ch
138Cc: "Albert D. Cahalan" <acahalan@cs.uml.edu>,
139 Linux Kernel <linux-kernel@vger.rutgers.edu>
140Subject: Re: What /proc should contain [was: /proc/driver/microcode]
141In-Reply-To: <20000224165245.A29790@lrc.di.epfl.ch>
142Message-ID: <Pine.LNX.4.21.0002250806220.8741-100000@moo.cus.org.uk>
143Sender: owner-linux-kernel@vger.rutgers.edu
144Precedence: bulk
145
146Hi there.
147
148 >> Nope, most /proc access is does via programs written in C.
149
150 > That varies a lot from file to file. E.g. I haven't seen any
151 > programs that are specificly designed to read /proc/atm/* yet,
152 > and I know of only one (fuser) that reads /proc/mounts,
153 > extracting only partial information (just to pick two examples
154 > that I'm quite familiar with).
155
156As a point of reference, here's a slightly tweaked analysis of the
157programs on the system I'm reading your mail on. Basically, I ran the
158following script...
159
160 Q> #!/bin/bash
161 Q> function use() {
162 Q> for Z in $* ; do
163 Q> strings $Z | grep /proc | sed "s=^=$Z ="
164 Q> done
165 Q> }
166 Q> use /{,s}bin/* /usr/{,s}bin/* | sort -u | tee proc-usage
167
168...and then went through it removing comments and print format
169strings. Replace /proc with /dev and you'd soon have an equivalent
170list for that - although I can report that such is MUCH larger...
171
172There are three programs therein that refer to /proc/mounts ...
173
174 /bin/mount
175 /bin/umount
176 /usr/bin/eject
177
178...and, as you stated, none that refer to /proc/atm on this system.
179However, as this is a RedHat Linux 5.0 based system, that's not
180necessarily an up to date reference thereto...
181
182Here's the list anyway...
183
184/bin/kill /proc/%d/cmdline
185/bin/kill /proc/%d/stat
186
187/bin/mount /proc/devices
188/bin/mount /proc/filesystems
189/bin/mount /proc/mounts
190
191/bin/netstat /proc/net
192/bin/netstat /proc/net/appletalk
193/bin/netstat /proc/net/ax25
194/bin/netstat /proc/net/ax25_route
195/bin/netstat /proc/net/dev
196/bin/netstat /proc/net/ip_masquerade
197/bin/netstat /proc/net/ipx
198/bin/netstat /proc/net/ipx_route
199/bin/netstat /proc/net/netstat
200/bin/netstat /proc/net/nr
201/bin/netstat /proc/net/nr_neigh
202/bin/netstat /proc/net/nr_nodes
203/bin/netstat /proc/net/raw
204/bin/netstat /proc/net/route
205/bin/netstat /proc/net/rt_cache
206/bin/netstat /proc/net/snmp
207/bin/netstat /proc/net/tcp
208/bin/netstat /proc/net/udp
209/bin/netstat /proc/net/unix
210
211/bin/umount /proc/devices
212/bin/umount /proc/mounts
213
214/sbin/arp /proc/net/appletalk
215/sbin/arp /proc/net/arp
216/sbin/arp /proc/net/ax25
217/sbin/arp /proc/net/ipx
218/sbin/arp /proc/net/nr
219/sbin/arp /proc/net/unix
220
221/sbin/cardctl /proc/devices
222
223/sbin/cardmgr /proc/devices
224
225/sbin/fdisk /proc/ide/%s/media
226/sbin/fdisk /proc/scsi/scsi
227
228/sbin/getty /proc/version
229
230/sbin/ifconfig /proc/net
231/sbin/ifconfig /proc/net/appletalk
232/sbin/ifconfig /proc/net/ax25
233/sbin/ifconfig /proc/net/dev
234/sbin/ifconfig /proc/net/ipx
235/sbin/ifconfig /proc/net/nr
236/sbin/ifconfig /proc/net/unix
237
238/sbin/ifup /proc/sys/kernel/modprobe
239
240/sbin/ipchains /proc/net/ip_fwchains
241/sbin/ipchains /proc/net/ip_fwnames
242/sbin/ipchains /proc/net/ip_masquerade
243/sbin/ipchains /proc/sys/net/ipv4/ip_forward
244
245/sbin/ipmaddr /proc/net/dev_mcast
246/sbin/ipmaddr /proc/net/igmp
247/sbin/ipmaddr /proc/net/igmp6
248
249/sbin/iptunnel /proc/net/dev
250
251/sbin/killall5 /proc/%s/cmdline
252/sbin/killall5 /proc/%s/exe
253/sbin/killall5 /proc/%s/stat
254/sbin/killall5 /proc/version
255
256/sbin/klogd /proc/kmsg
257
258/sbin/lsmod /proc/modules
259
260/sbin/modprobe /proc/modules
261
262/sbin/pidof /proc/%s/cmdline
263/sbin/pidof /proc/%s/exe
264/sbin/pidof /proc/%s/stat
265/sbin/pidof /proc/version
266
267/sbin/probe /proc/pci
268
269/sbin/rarp /proc/net/ax25
270/sbin/rarp /proc/net/nr
271/sbin/rarp /proc/net/rarp
272
273/sbin/rmmod /proc/modules
274
275/sbin/rmmod.static /proc/modules
276
277/sbin/route /proc/net/appletalk
278/sbin/route /proc/net/ax25
279/sbin/route /proc/net/ax25_route
280/sbin/route /proc/net/ipx
281/sbin/route /proc/net/ipx_route
282/sbin/route /proc/net/nr
283/sbin/route /proc/net/nr_neigh
284/sbin/route /proc/net/nr_nodes
285/sbin/route /proc/net/route
286/sbin/route /proc/net/rt_cache
287/sbin/route /proc/net/unix
288
289/sbin/scsi_info /proc/scsi
290/sbin/scsi_info /proc/scsi/%s
291/sbin/scsi_info /proc/scsi/scsi
292
293/sbin/slattach /proc/net/ax25
294/sbin/slattach /proc/net/nr
295
296/sbin/swapoff /proc/swaps
297
298/sbin/swapon /proc/swaps
299
300/sbin/uugetty /proc/version
301
302/usr/bin/dig /proc/
303/usr/bin/dig /proc/interrupts
304/usr/bin/dig /proc/meminfo
305/usr/bin/dig /proc/rtc
306/usr/bin/dig /proc/self/status
307/usr/bin/dig /proc/stat
308
309/usr/bin/dnsquery /proc/
310/usr/bin/dnsquery /proc/interrupts
311/usr/bin/dnsquery /proc/meminfo
312/usr/bin/dnsquery /proc/rtc
313/usr/bin/dnsquery /proc/self/status
314/usr/bin/dnsquery /proc/stat
315
316/usr/bin/eject /proc/mounts
317
318/usr/bin/emacs /proc/loadavg
319
320/usr/bin/fetchmail /proc/net/dev
321
322/usr/bin/free /proc/meminfo
323
324/usr/bin/gmake /proc/loadavg
325
326/usr/bin/gpm-root /proc/loadavg
327/usr/bin/gpm-root /proc/meminfo
328
329/usr/bin/host /proc/
330/usr/bin/host /proc/interrupts
331/usr/bin/host /proc/meminfo
332/usr/bin/host /proc/rtc
333/usr/bin/host /proc/self/status
334/usr/bin/host /proc/stat
335
336/usr/bin/hoststat /proc/loadavg
337
338/usr/bin/hwdiag /proc/cpuinfo
339/usr/bin/hwdiag /proc/pci
340/usr/bin/hwdiag /proc/scsi/scsi
341/usr/bin/hwdiag /proc/version
342
343/usr/bin/lsdev /proc/dma
344/usr/bin/lsdev /proc/interrupts
345/usr/bin/lsdev /proc/ioports
346
347/usr/bin/mailq /proc/loadavg
348
349/usr/bin/make /proc/loadavg
350
351/usr/bin/mcookie /proc/loadavg
352/usr/bin/mcookie /proc/stat
353
354/usr/bin/newaliases /proc/loadavg
355
356/usr/bin/nslookup /proc/
357/usr/bin/nslookup /proc/interrupts
358/usr/bin/nslookup /proc/meminfo
359/usr/bin/nslookup /proc/rtc
360/usr/bin/nslookup /proc/self/status
361/usr/bin/nslookup /proc/stat
362
363/usr/bin/nsupdate /proc/
364/usr/bin/nsupdate /proc/interrupts
365/usr/bin/nsupdate /proc/meminfo
366/usr/bin/nsupdate /proc/rtc
367/usr/bin/nsupdate /proc/self/status
368/usr/bin/nsupdate /proc/stat
369
370/usr/bin/pgp /proc/version
371/usr/bin/pgpe /proc/version
372/usr/bin/pgpk /proc/version
373/usr/bin/pgps /proc/version
374/usr/bin/pgpv /proc/version
375
376/usr/bin/procinfo /proc/cmdline
377/usr/bin/procinfo /proc/devices
378/usr/bin/procinfo /proc/dma
379/usr/bin/procinfo /proc/filesystems
380/usr/bin/procinfo /proc/interrupts
381/usr/bin/procinfo /proc/loadavg
382/usr/bin/procinfo /proc/meminfo
383/usr/bin/procinfo /proc/modules
384/usr/bin/procinfo /proc/stat
385/usr/bin/procinfo /proc/uptime
386/usr/bin/procinfo /proc/version
387
388/usr/bin/purgestat /proc/loadavg
389
390/usr/bin/screen /proc/loadavg
391
392/usr/bin/strace /proc/%d/stat
393
394/usr/bin/top /proc/cpuinfo
395/usr/bin/top /proc/meminfo
396/usr/bin/top /proc/stat
397
398/usr/bin/vmstat /proc/%s/stat
399/usr/bin/vmstat /proc/meminfo
400/usr/bin/vmstat /proc/stat
401
402/usr/sbin/atd /proc/loadavg
403
404/usr/sbin/dnskeygen /proc/
405/usr/sbin/dnskeygen /proc/interrupts
406/usr/sbin/dnskeygen /proc/meminfo
407/usr/sbin/dnskeygen /proc/rtc
408/usr/sbin/dnskeygen /proc/self/status
409/usr/sbin/dnskeygen /proc/stat
410
411/usr/sbin/fuser /proc/%d/stat
412/usr/sbin/fuser /proc/net/%s
413/usr/sbin/fuser /proc/net/unix
414
415/usr/sbin/in.identd /proc/net/tcp
416
417/usr/sbin/irpd /proc/
418/usr/sbin/irpd /proc/interrupts
419/usr/sbin/irpd /proc/meminfo
420/usr/sbin/irpd /proc/rtc
421/usr/sbin/irpd /proc/self/status
422/usr/sbin/irpd /proc/stat
423
424/usr/sbin/named /proc/
425/usr/sbin/named /proc/interrupts
426/usr/sbin/named /proc/meminfo
427/usr/sbin/named /proc/rtc
428/usr/sbin/named /proc/self/status
429/usr/sbin/named /proc/stat
430
431/usr/sbin/named-xfer /proc/
432/usr/sbin/named-xfer /proc/interrupts
433/usr/sbin/named-xfer /proc/meminfo
434/usr/sbin/named-xfer /proc/rtc
435/usr/sbin/named-xfer /proc/self/status
436/usr/sbin/named-xfer /proc/stat
437
438/usr/sbin/readprofile /proc/profile
439
440/usr/sbin/rwhod /proc/loadavg
441/usr/sbin/rwhod /proc/uptime
442
443/usr/sbin/sendmail /proc/loadavg
444
445/usr/sbin/setconsole /proc/openprom/options
446/usr/sbin/setconsole /proc/openprom/options/${console}-mode
447/usr/sbin/setconsole /proc/openprom/options/input-device
448/usr/sbin/setconsole /proc/openprom/options/output-device
449
450Best wishes from Riley.
451
452 * Copyright (C) 1999, Memory Alpha Systems.
453 * All rights and wrongs reserved.
454
455+----------------------------------------------------------------------+
456| There is something frustrating about the quality and speed of Linux |
457| development, ie., the quality is too high and the speed is too high, |
458| in other words, I can implement this XXXX feature, but I bet someone |
459| else has already done so and is just about to release their patch. |
460+----------------------------------------------------------------------+
461 * http://www.memalpha.cx/Linux/Kernel/
462
463
464-
465To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
466the body of a message to majordomo@vger.rutgers.edu
467Please read the FAQ at http://www.tux.org/lkml/
468