1$NetBSD: README,v 1.2 1997/08/02 21:30:08 perry Exp $ 2 3CRUNCH 0.3 README 7/23/94 4 5Crunch is available via anonymous ftp to ftp.cs.umd.edu in 6 pub/bsd/crunch-0.3.tar.gz 7 8WHAT'S NEW IN 0.3 9 10* The prototype awk script has been replaced by a more capable and 11 hopefully more robust C program. 12* No fragile template makefiles or dependencies on the details of the 13 bsd build environment. 14* You can build crunched binaries even with no sources on-line, you 15 just need the .o files. Crunchgen still will try to figure out as 16 much as possible on its own, but you can override its guessing by 17 specifying the list of .o files explicitly. 18* Crunch itself has been bmake'd and some man pages written, so it 19 should be ready to install. 20* Added patch for FreeBSD from Jordan Hubbard, plus the .conf files used 21 for the FreeBSD install floppies as examples. 22 23 24INTRODUCTION 25 26Crunch is a little package that helps create "crunched" binaries for use 27on boot, install, and fixit floppies. A crunched binary in this case is 28one where many programs have been linked together into one a.out file. 29The different programs are run depending on the value of argv[0], so 30hard links to the crunched binary suffice to simulate a perfectly normal 31system. 32 33As an example, I have created an 980K crunched "fixit" binary containing 34the following programs in their entirety: 35 36 cat chmod cp date dd df echo ed expr hostname kill ln ls mkdir 37 mt mv pwd rcp rm rmdir sh sleep stty sync test [ badsect chown 38 clri disklabel dump rdump dmesg fdisk fsck halt ifconfig init 39 mknod mount newfs ping reboot restore rrestore swapon umount 40 ftp rsh sed telnet rlogin vi cpio gzip gunzip gzcat 41 42Note carefully: vi, cpio, gzip, ed, sed, dump/restore, some networking 43utilities, and the disk management utilities, all in a binary small 44enough to fit on a 1.2 MB root filesystem floppy (albeit with the kernel 45on its own boot floppy). A more reasonable subset can be made to fit 46easily with a kernel for a decent one-disk fixit filesystem. 47 48The linking together of different programs by hand is an old 49space-saving technique. Crunch automates the process by building the 50necessary stub files and makefile for you (via the crunchgen program), 51and by doctoring the symbol tables of the component .o files to allow 52them to link without "symbol multiply defined" conflicts (via the 53crunchide program). 54 55 56BUILDING CRUNCH 57 58Just type make, then make install. 59 60Crunch was written and tested under NetBSD/i386, but should work under 61other PC BSD systems that use GNU ld. 62 63The crunchgen(1) and crunchide(1) man pages have more details on using 64crunch, and the examples subdirectory contains some working .conf files 65and a sample Makefile. 66 67CREDITS 68 69Thanks to the NetBSD team for a consistently high quality effort in 70bringing together a solid, state of the art development environment. 71 72Thanks to the FreeBSD guys; Rod Grimes, Nate Williams and Jordan 73Hubbard; and to Bruce Evans, for immediate and detailed feedback on 74crunch 0.1, and for pressing me to make the prototype more useable. 75 76Crunch was written for the Maruti Hard Real-Time Operating System 77project at the University of Maryland, to help make for better install 78and recovery procedures for our NetBSD-based development environment. It 79is copyright (c) 1994 by the University of Maryland under a UCB-style 80freely- redistributable notice. See the file COPYRIGHT for details. 81 82Please let me know of any problems or of enhancements you make to this 83package. I'm particularly interested in the details of what you found 84was good to put on your fixit or install disks. Thanks! 85 86Share and Enjoy, 87Jaime 88............................................................................ 89: Stand on my shoulders, : jds@cs.umd.edu : James da Silva 90: not on my toes. : uunet!mimsy!jds : http://www.cs.umd.edu/users/jds 91 92