LinuCレベル2 システムの起動とLinuxカーネル 問22
システムの起動とLinuxカーネル/Linuxカーネルの構成要素x86系のLinuxで使われるカーネルイメージの形式である、bzImageの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)
- Abzip2でのみ圧縮されたカーネルで、名前のbzはbzip2形式であることを表している
- B圧縮されていないカーネル本体で、デバッグ用のシンボル情報をすべて含んだイメージである
- C圧縮したカーネルに自己展開用のコードを付けた形式で、bzは「big zImage」の略である
- Dカーネルモジュールを一つにまとめたアーカイブで、initramfsの中に格納して使う形式である
正解:C
解説
bzImageは、圧縮したカーネル本体に展開用のコードを付けた、x86向けの起動可能なカーネルイメージです。名前のbzは「big zImage」の意味で、サイズ制限の厳しかった旧来のzImage形式より大きなカーネルを扱えるようにしたものです。圧縮方式はbzip2に限らず、gzip・xz・zstdなどをカーネルの設定で選べます。カーネルのビルドではmake bzImage(x86ではmake allにも含まれる)で生成され、/bootにはvmlinuz-バージョンという名前で置かれるのが一般的です。
選択肢ごとの解説
- A誤り。bzはbzip2ではなく「big zImage」の略です。圧縮方式もgzipやxz、zstdなどから選べます。
- B誤り。これはビルド時にソースツリー直下に生成されるvmlinux(非圧縮のELF形式のカーネル)の説明です。
- C正しい。bzImageは自己展開コード付きの圧縮カーネルで、bzは「big zImage」を意味します。
- D誤り。モジュールは/lib/modules/カーネルバージョン/以下に個別のファイルとして置かれます。bzImageはカーネル本体のイメージです。