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