kgzip(8) FreeBSD 一般コマンドマニュアル

kgzip

前のページ 上に戻る 次のページ

kgzip



解説

     kgzip ユーティリテイは、カーネルその他のブート可能バイナリを圧縮します。
     この動作は次の 2 つのフェーズからなります。

     1.   実行可能ファイルのロードイメージは、 `text' セグメントと `data' セグ
          メント以外のすべてを省略して作成されます。このイメージを gzip(1) を
          用いて圧縮し、再配置可能なオブジェクト形式として出力します。

     2.   出力されるオブジェクトファイルは、特殊な自立ローダとともにリンクさ
          れ、第 2 レベルもしくは第 3 レベルのブートストラッププログラムによる
          ブートに適した実行ファイルが生成されます。

     サポートする入力ファイルは 32 ビット ELF と a.out ZMAGIC の形式です。

     file オペランドが `.o' 接尾子を持つ場合、入力はリンクフェーズにあると見な
     され、最初のフェーズは省略されます。

     オプションは次のとおりです。

     -c          リンクフェーズを省略します。

     -v          オブジェクトファイル情報を表示します。

     -f format   出力形式に format を使用します。 format は `aout' または
                 `elf' です。デフォルトの形式は ELF です。

     -l loader   loader をローダとしてリンクします。

     -o output   出力ファイルの名前を output とします。デフォルトの名前は、(再
                 配置可能形式については) 入力ファイル名の接尾子を `.o' にした
                 ものです。または、(実行可能形式については) 入力ファイルの接尾
                 子を `.kgz' にしたものです。


     以下と等価な大域変数が出力の中で定義されます。

     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[];            /* エンコードされたデータ */

     エンコードされたデータは、単に gzip(1) の出力です。ヘッダ (オプションフィ
     ールドは一切持ちません)、圧縮されたデータ、32 ビットの CRC とサイズの値を
     持ちます。


関連ファイル

     う利点は、 loader(8) が使用できない状況に限られます。それ以外の場合、単に
     gzip(1) を使ってカーネルを圧縮する方が望ましいでしょう。



















































ABELNET VPSサービス