KGZIP(8) FreeBSD システム管理者マニュアル KGZIP(8)
名称
kgzip − カーネルを圧縮する |
書式
kgzip [−cv] [−f format] [−l loader] [−o output] file |
解説 |
kgzip ユーティリティは、カーネルその他のブート可能バイナリを圧縮します。 この動作は次の 2 つのフェーズからなります。 |
1. 実行可能ファイルのロードイメージは、 ‘text’ セグメントと ‘data’ セグメント以外のすべてを省略して作成されます。このイメージを gzip(1) を用いて圧縮し、再配置可能なオブジェクト形式として出力します。
2. 出力されるオブジェクトファイルは、特殊な自立ローダとともにリンクさ れ、第 2 レベルもしくは第 3 レベルのブートストラッププログラムによる ブートに適した実行ファイルが生成されます。 サポートする入力ファイルは 32 ビット ELF と a.out ZMAGIC の形式です。 file オペランドが ‘.o’ 接尾子を持つ場合、入力はリンクフェーズにあると見な され、最初のフェーズは省略されます。 オプションは次のとおりです。 −c −v −f format −l loader −o output 注 |
以下と等価な大域変数が出力の中で定義されます。 struct kgz_hdr { |
ident[4]; |
/* 識別子: "KGZ" */ |
|||||
dload; |
/* デコードされたイメージのロードアドレス */ |
|||||
dsize; |
/* デコードされたイメージの大きさ */ |
|||||
isize; |
/* メモリ中のイメージの大きさ */ |
|||||
entry; |
/* エントリポイント */ |
|||||
nsize; |
/* エンコードされたイメージの大きさ */ |
} kgz; |
uint8_t kgz_ndata[]; |
/* エンコードされたデータ */ |
エンコードされたデータは、単に gzip(1) の出力です。ヘッダ (オプション フィールドは一切持ちません)、圧縮されたデータ、32 ビットの CRC とサイズの 値を持ちます。 |
関連ファイル
/usr/lib/kgzldr.o
デフォルトのローダ。 関連項目 |
診断
ユーティリティ kgzip は、成功すると 0 で、エラーがあった場合は >0 で終了 します。 |
作者
Robert Nordier 〈rnordier@FreeBSD.org〉 |
バグ
シンボル情報は失われていますので、カーネルの圧縮にこのユーティリティを使 う利点は、 loader(8) が使用できない状況に限られます。それ以外の場合、単に gzip(1) を使ってカーネルを圧縮する方が望ましいでしょう。 FreeBSD 10.0 July 19, 1999 FreeBSD 10.0 |