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 ad - dress */
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 SEE ALSO
gzip(1), ld(1), a.out(5), elf(5), boot(8), loader(8)
AUTHORS
Robert Nordier <rnordier@FreeBSD.org>.