- Dec 17, 2001
- 3,566
- 3
- 81
Just finished experimenting with Busybox 1.00pre2, and thought it deserved mention here. For those unfamiliar with it, Busybox is an incredibly nifty little program designed for embedded devices, boot disks, and other tiny systems. Though insignificant by normal standards, programs like "mount" and "ls" do add up when you're dealing with a system that needs to fit on a floppy disk. Busybox replaces all of those standard utilities - for example, you just symlink "ls" to busybox, busybox detects how it was called, and behaves appropriately.
Anyway, that's old news. What's incredible is the stuff jammed into the 1.00 version compared to 0.60. Highlights: ash (with history and tab completion!), init, login, gzip, fdisk, cpio, grep, sed, and vi. (vi!) All that, plus the usual stuff from earlier releases, fits into 208k. That's built as a dynamic executable against libc6, so you do need the ~1M libc, but that still leaves a lot of space on a compressed filesystem. Probably if you built busybox and your other utilities statically, or used uClibc, you would come out ahead. Not sure I feel like going through the trouble of checking, though. In any event, I managed to squish a bootable kernel, support for ext2/3, VFAT, ISO, mkfs/fsck for ext2/3/VFAT, fdisk, LILO, USB keyboard support, vi, and support for the common IDE chipsets on a single standard format 1.44 floppy. No networking, NTFS, reiserfs, SCSI, or NFS, but still - that one disk is sufficient to handle basic rescue and backup/restore functions for a large majority of (my) machines, particularly for old ones that are too decrepit to run Knoppix. If you went with a two disk root/boot set, I'd guess you could easily add in drivers for common network and SCSI cards, along with the remaining file system support and a simple FTP client.
So, yeah - props to the Busybox people. If you've got old machines you need boot disks for, or just want to geek around with the boot process, check it out along with the Bootdisk HOWTO and get working.
edit: typos
Anyway, that's old news. What's incredible is the stuff jammed into the 1.00 version compared to 0.60. Highlights: ash (with history and tab completion!), init, login, gzip, fdisk, cpio, grep, sed, and vi. (vi!) All that, plus the usual stuff from earlier releases, fits into 208k. That's built as a dynamic executable against libc6, so you do need the ~1M libc, but that still leaves a lot of space on a compressed filesystem. Probably if you built busybox and your other utilities statically, or used uClibc, you would come out ahead. Not sure I feel like going through the trouble of checking, though. In any event, I managed to squish a bootable kernel, support for ext2/3, VFAT, ISO, mkfs/fsck for ext2/3/VFAT, fdisk, LILO, USB keyboard support, vi, and support for the common IDE chipsets on a single standard format 1.44 floppy. No networking, NTFS, reiserfs, SCSI, or NFS, but still - that one disk is sufficient to handle basic rescue and backup/restore functions for a large majority of (my) machines, particularly for old ones that are too decrepit to run Knoppix. If you went with a two disk root/boot set, I'd guess you could easily add in drivers for common network and SCSI cards, along with the remaining file system support and a simple FTP client.
So, yeah - props to the Busybox people. If you've got old machines you need boot disks for, or just want to geek around with the boot process, check it out along with the Bootdisk HOWTO and get working.
edit: typos
