.\" Copyright (c) 1999 Global Technology Associates, Inc. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, .\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE .\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" %FreeBSD: src/usr.sbin/kgzip/kgzip.8,v 1.3.2.3 2001/08/16 15:56:02 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man8/kgzip.8,v 1.7 2001/07/22 23:09:22 horikawa Exp $ .\" .Dd July 19, 1999 .Dt KGZIP 8 .Os .Sh 名前 .Nm kgzip .Nd カーネルを圧縮する .Sh 書式 .Nm .Op Fl cv .Op Fl f Ar format .Op Fl l Ar loader .Op Fl o Ar output .Ar file .Sh 解説 .Nm ユーティリテイは、カーネルその他のブート可能バイナリを圧縮します。この 動作は次の 2 つのフェーズからなります。 .Bl -enum .It 実行可能ファイルのロードイメージは、 .Sq text セグメントと .Sq data セグメント以外のすべてを省略して作成されます。 このイメージを .Xr gzip 1 を用いて圧縮し、 再配置可能なオブジェクト形式として出力します。 .It 出力されるオブジェクトファイルは、特殊な自立ローダとともにリンクされ、 第 2 レベルもしくは第 3 レベルのブートストラッププログラムによるブートに 適した実行ファイルが生成されます。 .El .Pp サポートする入力ファイルは 32 ビット ELF と a.out ZMAGIC の形式です。 .Pp .Ar file オペランドが .Sq .o 接尾子を持つ場合、入力はリンクフェーズにあると見なされ、最初のフェーズは 省略されます。 .Pp オプションは次のとおりです。 .Bl -tag -width Fl .It Fl c リンクフェーズを省略します。 .It Fl v オブジェクトファイル情報を表示します。 .It Fl f Ar format 出力形式に .Ar format を使用します。 .Ar format は .Sq aout または .Sq elf です。デフォルトの形式は ELF です。 .It Fl l Ar loader .Ar loader をローダとしてリンクします。 .It Fl o Ar output 出力ファイルの名前を .Ar output とします。 デフォルトの名前は、(再配置可能形式については) 入力ファイル名の接尾子を .Sq .o にしたものです。または、(実行可能形式については) 入力ファイルの接尾子を .Sq .kgz にしたものです。 .El .Sh 注 以下と等価な大域変数が出力の中で定義されます。 .Bd -literal struct kgz_hdr { char ident[4]; /* 識別子: "KGZ" */ uint32_t dload; /* デコードされたイメージのロードアドレス */ uint32_t dsize; /* デコードされたイメージの大きさ */ uint32_t isize; /* メモリ中のイメージの大きさ */ uint32_t entry; /* エントリポイント */ uint32_t nsize; /* エンコードされたイメージの大きさ */ } kgz; uint8_t kgz_ndata[]; /* エンコードされたデータ */ .Ed .Pp エンコードされたデータは、単に .Xr gzip 1 の出力です。ヘッダ (オプションフィールドは一切持ちません)、圧縮された データ、32 ビットの CRC とサイズの値を持ちます。 .Sh 関連ファイル .Bl -tag -width /usr/lib/kgzldr.o -compact .It Pa /usr/lib/kgzldr.o デフォルトのローダ。 .El .Sh 関連項目 .Xr gzip 1 , .Xr ld 1 , .Xr a.out 5 , .Xr elf 5 , .Xr boot 8 , .Xr loader 8 .Sh 診断 成功すれば終了ステータスは 0 となり、エラーが発生すれば >0 となります。 .Sh 作者 .An Robert Nordier Aq rnordier@FreeBSD.org .Sh バグ シンボル情報は失われていますので、カーネルの圧縮にこのユーティリティを 使う利点は、 .Xr loader 8 が使用できない状況に限られます。それ以外の場合、単に .Xr gzip 1 を使ってカーネルを圧縮する方が望ましいでしょう。