2d5609b7ae
Improved code and comments. Don't do anything except transfer control in the head.o module. |
||
---|---|---|
.. | ||
boot.c | ||
gzip.h | ||
head.S | ||
Makefile | ||
malloc.c | ||
misc.c | ||
README | ||
tail.S | ||
unzip.c |
/* Beware: mostly obsolete info */ This is the first (alpha) release of kernel packer/unpacker for FreeBSD. It is based on xBoot from Linux, but hardly rewritten. It assumes that: 1) The kernel should be loaded at 0x100000 phys address. 2) The CS selector is equal to 8, which is OK for all current secondary boot programs. Run "make install" to install it. It will place "kzip" shell script into /usr/sbin, and several files into /usr/libexec/kzip directory. Then try to zip your kernel, for example: % kzip /kernel System size is 462848 Compressed size 247027 It will create file /kernel.kz: % ls -l /kernel /kernel.kz -rwxr-xr-x 1 root 497297 Oct 8 12:41 /386bsd -rwxrwxr-x 1 root 262144 Oct 8 13:37 /386bsd.kz Then rename /kernel.kz to /kernel and reboot. % mv /kernel /o3kernel % mv /kernel.kz /kernel % sync % reboot During booting, you will see the message: Uncompressing kernel...done Booting the kernel The packed kernel should load and run. The main problem with packed kernel is the lack of symbol table, so all commands that require it, will not run. Among them: ps, savecore, *stat, etc. Packed kernels are good for install and fixit floppies. Serge Vakulenko, <vak@zebub.msk.su> Opdated for FreeBSD 2.1 by Gary Jennejohn 12FEB95