HardenedBSD/sys/i386/boot/kzipboot
..
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