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>.

BUGS

As symbols are lost, the usefulness of this utility for com
pressing kernels is limited to situations where loader(8) cannot be
used; otherwise
the preferred method of compressing a kernel is simply to
gzip(1) it.
BSD July 19, 1999
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout