Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (FreeBSD-5.4-RELEASE)
Apropos / Subsearch:
optional field

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

     kgzip -- compress a kernel

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

     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

     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.

     /usr/lib/kgzldr.o  The default loader

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

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

     Robert Nordier <rnordierATFreeBSD.org>.

     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.

BSD                              July 19, 1999                             BSD