DragonFly On-Line Manual Pages

Search: Section:  


KGZIP(8)	       DragonFly System Manager's Manual	      KGZIP(8)

NAME

kgzip -- compress a kernel

SYNOPSIS

kgzip [-cv] [-f format] [-l loader] [-o output] file

DESCRIPTION

The kgzip utility compresses a kernel or some other bootable binary. Operation is in two phases as follows: 1. A load image of the executable file is built which omits all but the `text' and `data' segments. This image is compressed using gzip(1) and output as data in relocatable object format. 2. The object file is linked with a special self-hosting loader, pro- ducing an executable suitable for booting with either the second- or third-level bootstraps. Supported object formats are 32-bit ELF and a.out ZMAGIC. If the file operand has a `.o' suffix, input is assumed to be for the link phase, and the first phase is omitted. The options are: -c Omit the link phase. -v Display object file information. -f format Use format as the output format, where format is `aout' or `elf'. The default format is ELF. -l loader Link loader as the loader. -o output Name the output file output. The default is to use the input name with the suffix `.o' (for relocatables) or `.kgz' (for executables).

NOTES

Global variables equivalent to the following are defined in the output: struct kgz_hdr { char ident[4]; /* identification: "KGZ" */ uint32_t dload; /* decoded image load address */ uint32_t dsize; /* decoded image size */ uint32_t isize; /* image size in memory */ uint32_t entry; /* entry point */ uint32_t nsize; /* encoded image size */ } kgz; uint8_t kgz_ndata[]; /* encoded data */ The encoded data is simply gzip(1) output: a header (with no optional fields); compressed data; and 32-bit CRC and size values.

FILES

/usr/lib/kgzldr.o The default loader

EXIT STATUS

The kgzip utility exits 0 on success, and >0 if an error occurs.

SEE ALSO

gzip(1), ld(1), a.out(5), elf(5), boot(8), loader(8)

AUTHORS

Robert Nordier <rnordier@FreeBSD.org>.

BUGS

As symbols are lost, the usefulness of this utility for compressing ker- nels is limited to situations where loader(8) cannot be used; otherwise the preferred method of compressing a kernel is simply to gzip(1) it. DragonFly 4.3 July 19, 1999 DragonFly 4.3

Search: Section: