TODO list for busybox in no particular order. Just because something is listed here doesn't mean that it is going to be added to busybox, or that doing so is even a good idea. It just means that I _might_ get around to it some time. If you have any good ideas, please let me know. * login/sulogin/passwd/getty/etc are part of tinylogin, and so are not needed or wanted in busybox (or else I'd have to link in libcrypt). * Networking apps are probably going to be split out some time soon into a separate package (named perhaps tiny-netkit?). This currently includes hostid, hostname, mnc, and ping. -Erik ----------- * Allow tar to create archives with sockets, devices, and other special files * Make insmod actually work * dnsdomainname * traceroute/netstat * rdate * hwclock * killall * stty * tr * cut * expr (maybe?) (ash builtin?) ----------------------- Compile with debugging on, run 'nm --size-sort ./busybox' and then start with the biggest things and make them smaller... ----------------------- busybox.defs.h is too big and hard to follow. I either need to add a better build system (like the Linux kernel?) or I need to split up busybox.defs.h into coherent chunks (i.e. busybox.defs.h just has a bunch of: #include "fileutils.h" #include "shellutils.h" which would then have smaller sets of #defines... Hmm. Needs to be carefully thought out. ----------------------- -rw-r--r-- 1000/1000 4398 2000-01-06 21:55 uniq.c -rw-r--r-- 1000/1000 1568 1999-10-20 18:08 update.c -rw-r----- 0/1000 1168 2000-01-29 21:03 update.o -rw-r--r-- 1000/1000 22820 2000-01-05 11:36 utility.c -rw-r----- 0/1000 7372 2000-01-29 21:03 utility.o tar: Skipping to next file header tar: Skipping to next file header tar: Archive - EOF not on block boundary tar: Error is not recoverable: exiting now #1 You are storing by id instead of name like normal tar. Did you realize this? (or am I missing some compile option? )ctar did not do this, and I don't think it's a good idea for LRP. #2 ctar did not produce the EOF error like your tar does. I believe you need to pad the end of the archive with at least 2 tarsized (512byte) blocks. (I think???) #3 There is no exclude file(s) option to tar. LRP's packaging system can not function without this. Will you have the time to add this soon? ----------------------- cd /mnt mkdir BACKUP mv * BACKUP Today, "mv" behaved as a cp -a and my disk becomed full. It does not work properly either when renaming a directory into something else (it produces a lot of disk activity when doing this). ----------------------- Feature request: /bin/busybox --install -s which makes all links to commands that it can support (an optionnal -s should be used for symbolic links instead of hard links). ----------------------- > Have you ever thought of doig network logging in busybox syslogd ? It > would quite make sense on embedded systems... :) So far I had not considered it. Basically, you wish to have messages from the embedded box logged to a remote network syslog box, right? I can see that this would be useful. I'll add this to the TODO list, ----------------------- In utility.c:copyFile: It uses followLinks for both source and destination files... is that right for `mv'? Will need to revisit the GNU, freeBSD, and MINIX versions for this... Should read the Unix98 and POSIX specs also. ----------------------- I think that the add_inode &c in utility.c needs to also stow the st_dev field, and that du.c should NOT call `reset_inode_list' because there can be hard links from inside one argv/ to inside another argv/. du.c probably ought to have an -x switch like GNU du does also... ------------------------------------------------------------------ Date: Fri, 25 Feb 2000 08:23:12 +0000 (GMT) From: Riley Williams X-Sender: rhw@moo.cus.org.uk To: almesber@lrc.di.epfl.ch Cc: "Albert D. Cahalan" , Linux Kernel Subject: Re: What /proc should contain [was: /proc/driver/microcode] In-Reply-To: <20000224165245.A29790@lrc.di.epfl.ch> Message-ID: Sender: owner-linux-kernel@vger.rutgers.edu Precedence: bulk Hi there. >> Nope, most /proc access is does via programs written in C. > That varies a lot from file to file. E.g. I haven't seen any > programs that are specificly designed to read /proc/atm/* yet, > and I know of only one (fuser) that reads /proc/mounts, > extracting only partial information (just to pick two examples > that I'm quite familiar with). As a point of reference, here's a slightly tweaked analysis of the programs on the system I'm reading your mail on. Basically, I ran the following script... Q> #!/bin/bash Q> function use() { Q> for Z in $* ; do Q> strings $Z | grep /proc | sed "s=^=$Z =" Q> done Q> } Q> use /{,s}bin/* /usr/{,s}bin/* | sort -u | tee proc-usage ...and then went through it removing comments and print format strings. Replace /proc with /dev and you'd soon have an equivalent list for that - although I can report that such is MUCH larger... There are three programs therein that refer to /proc/mounts ... /bin/mount /bin/umount /usr/bin/eject ...and, as you stated, none that refer to /proc/atm on this system. However, as this is a RedHat Linux 5.0 based system, that's not necessarily an up to date reference thereto... Here's the list anyway... /bin/kill /proc/%d/cmdline /bin/kill /proc/%d/stat /bin/mount /proc/devices /bin/mount /proc/filesystems /bin/mount /proc/mounts /bin/netstat /proc/net /bin/netstat /proc/net/appletalk /bin/netstat /proc/net/ax25 /bin/netstat /proc/net/ax25_route /bin/netstat /proc/net/dev /bin/netstat /proc/net/ip_masquerade /bin/netstat /proc/net/ipx /bin/netstat /proc/net/ipx_route /bin/netstat /proc/net/netstat /bin/netstat /proc/net/nr /bin/netstat /proc/net/nr_neigh /bin/netstat /proc/net/nr_nodes /bin/netstat /proc/net/raw /bin/netstat /proc/net/route /bin/netstat /proc/net/rt_cache /bin/netstat /proc/net/snmp /bin/netstat /proc/net/tcp /bin/netstat /proc/net/udp /bin/netstat /proc/net/unix /bin/umount /proc/devices /bin/umount /proc/mounts /sbin/arp /proc/net/appletalk /sbin/arp /proc/net/arp /sbin/arp /proc/net/ax25 /sbin/arp /proc/net/ipx /sbin/arp /proc/net/nr /sbin/arp /proc/net/unix /sbin/cardctl /proc/devices /sbin/cardmgr /proc/devices /sbin/fdisk /proc/ide/%s/media /sbin/fdisk /proc/scsi/scsi /sbin/getty /proc/version /sbin/ifconfig /proc/net /sbin/ifconfig /proc/net/appletalk /sbin/ifconfig /proc/net/ax25 /sbin/ifconfig /proc/net/dev /sbin/ifconfig /proc/net/ipx /sbin/ifconfig /proc/net/nr /sbin/ifconfig /proc/net/unix /sbin/ifup /proc/sys/kernel/modprobe /sbin/ipchains /proc/net/ip_fwchains /sbin/ipchains /proc/net/ip_fwnames /sbin/ipchains /proc/net/ip_masquerade /sbin/ipchains /proc/sys/net/ipv4/ip_forward /sbin/ipmaddr /proc/net/dev_mcast /sbin/ipmaddr /proc/net/igmp /sbin/ipmaddr /proc/net/igmp6 /sbin/iptunnel /proc/net/dev /sbin/killall5 /proc/%s/cmdline /sbin/killall5 /proc/%s/exe /sbin/killall5 /proc/%s/stat /sbin/killall5 /proc/version /sbin/klogd /proc/kmsg /sbin/lsmod /proc/modules /sbin/modprobe /proc/modules /sbin/pidof /proc/%s/cmdline /sbin/pidof /proc/%s/exe /sbin/pidof /proc/%s/stat /sbin/pidof /proc/version /sbin/probe /proc/pci /sbin/rarp /proc/net/ax25 /sbin/rarp /proc/net/nr /sbin/rarp /proc/net/rarp /sbin/rmmod /proc/modules /sbin/rmmod.static /proc/modules /sbin/route /proc/net/appletalk /sbin/route /proc/net/ax25 /sbin/route /proc/net/ax25_route /sbin/route /proc/net/ipx /sbin/route /proc/net/ipx_route /sbin/route /proc/net/nr /sbin/route /proc/net/nr_neigh /sbin/route /proc/net/nr_nodes /sbin/route /proc/net/route /sbin/route /proc/net/rt_cache /sbin/route /proc/net/unix /sbin/scsi_info /proc/scsi /sbin/scsi_info /proc/scsi/%s /sbin/scsi_info /proc/scsi/scsi /sbin/slattach /proc/net/ax25 /sbin/slattach /proc/net/nr /sbin/swapoff /proc/swaps /sbin/swapon /proc/swaps /sbin/uugetty /proc/version /usr/bin/dig /proc/ /usr/bin/dig /proc/interrupts /usr/bin/dig /proc/meminfo /usr/bin/dig /proc/rtc /usr/bin/dig /proc/self/status /usr/bin/dig /proc/stat /usr/bin/dnsquery /proc/ /usr/bin/dnsquery /proc/interrupts /usr/bin/dnsquery /proc/meminfo /usr/bin/dnsquery /proc/rtc /usr/bin/dnsquery /proc/self/status /usr/bin/dnsquery /proc/stat /usr/bin/eject /proc/mounts /usr/bin/emacs /proc/loadavg /usr/bin/fetchmail /proc/net/dev /usr/bin/free /proc/meminfo /usr/bin/gmake /proc/loadavg /usr/bin/gpm-root /proc/loadavg /usr/bin/gpm-root /proc/meminfo /usr/bin/host /proc/ /usr/bin/host /proc/interrupts /usr/bin/host /proc/meminfo /usr/bin/host /proc/rtc /usr/bin/host /proc/self/status /usr/bin/host /proc/stat /usr/bin/hoststat /proc/loadavg /usr/bin/hwdiag /proc/cpuinfo /usr/bin/hwdiag /proc/pci /usr/bin/hwdiag /proc/scsi/scsi /usr/bin/hwdiag /proc/version /usr/bin/lsdev /proc/dma /usr/bin/lsdev /proc/interrupts /usr/bin/lsdev /proc/ioports /usr/bin/mailq /proc/loadavg /usr/bin/make /proc/loadavg /usr/bin/mcookie /proc/loadavg /usr/bin/mcookie /proc/stat /usr/bin/newaliases /proc/loadavg /usr/bin/nslookup /proc/ /usr/bin/nslookup /proc/interrupts /usr/bin/nslookup /proc/meminfo /usr/bin/nslookup /proc/rtc /usr/bin/nslookup /proc/self/status /usr/bin/nslookup /proc/stat /usr/bin/nsupdate /proc/ /usr/bin/nsupdate /proc/interrupts /usr/bin/nsupdate /proc/meminfo /usr/bin/nsupdate /proc/rtc /usr/bin/nsupdate /proc/self/status /usr/bin/nsupdate /proc/stat /usr/bin/pgp /proc/version /usr/bin/pgpe /proc/version /usr/bin/pgpk /proc/version /usr/bin/pgps /proc/version /usr/bin/pgpv /proc/version /usr/bin/procinfo /proc/cmdline /usr/bin/procinfo /proc/devices /usr/bin/procinfo /proc/dma /usr/bin/procinfo /proc/filesystems /usr/bin/procinfo /proc/interrupts /usr/bin/procinfo /proc/loadavg /usr/bin/procinfo /proc/meminfo /usr/bin/procinfo /proc/modules /usr/bin/procinfo /proc/stat /usr/bin/procinfo /proc/uptime /usr/bin/procinfo /proc/version /usr/bin/purgestat /proc/loadavg /usr/bin/screen /proc/loadavg /usr/bin/strace /proc/%d/stat /usr/bin/top /proc/cpuinfo /usr/bin/top /proc/meminfo /usr/bin/top /proc/stat /usr/bin/vmstat /proc/%s/stat /usr/bin/vmstat /proc/meminfo /usr/bin/vmstat /proc/stat /usr/sbin/atd /proc/loadavg /usr/sbin/dnskeygen /proc/ /usr/sbin/dnskeygen /proc/interrupts /usr/sbin/dnskeygen /proc/meminfo /usr/sbin/dnskeygen /proc/rtc /usr/sbin/dnskeygen /proc/self/status /usr/sbin/dnskeygen /proc/stat /usr/sbin/fuser /proc/%d/stat /usr/sbin/fuser /proc/net/%s /usr/sbin/fuser /proc/net/unix /usr/sbin/in.identd /proc/net/tcp /usr/sbin/irpd /proc/ /usr/sbin/irpd /proc/interrupts /usr/sbin/irpd /proc/meminfo /usr/sbin/irpd /proc/rtc /usr/sbin/irpd /proc/self/status /usr/sbin/irpd /proc/stat /usr/sbin/named /proc/ /usr/sbin/named /proc/interrupts /usr/sbin/named /proc/meminfo /usr/sbin/named /proc/rtc /usr/sbin/named /proc/self/status /usr/sbin/named /proc/stat /usr/sbin/named-xfer /proc/ /usr/sbin/named-xfer /proc/interrupts /usr/sbin/named-xfer /proc/meminfo /usr/sbin/named-xfer /proc/rtc /usr/sbin/named-xfer /proc/self/status /usr/sbin/named-xfer /proc/stat /usr/sbin/readprofile /proc/profile /usr/sbin/rwhod /proc/loadavg /usr/sbin/rwhod /proc/uptime /usr/sbin/sendmail /proc/loadavg /usr/sbin/setconsole /proc/openprom/options /usr/sbin/setconsole /proc/openprom/options/${console}-mode /usr/sbin/setconsole /proc/openprom/options/input-device /usr/sbin/setconsole /proc/openprom/options/output-device Best wishes from Riley. * Copyright (C) 1999, Memory Alpha Systems. * All rights and wrongs reserved. +----------------------------------------------------------------------+ | There is something frustrating about the quality and speed of Linux | | development, ie., the quality is too high and the speed is too high, | | in other words, I can implement this XXXX feature, but I bet someone | | else has already done so and is just about to release their patch. | +----------------------------------------------------------------------+ * http://www.memalpha.cx/Linux/Kernel/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/