LinuCレベル2 システムの起動とLinuxカーネル 問23
システムの起動とLinuxカーネル/LinuxカーネルのコンパイルDKMS(Dynamic Kernel Module Support)の説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)
- A起動時に必要なカーネルモジュールを選んでinitramfsを生成し、/bootへ配置する仕組みである
- B実行中のカーネルへモジュールを読み込み、依存する他のモジュールも自動で解決する仕組みである
- Cカーネルのソースツリーから、インストール用のRPMやDEBのパッケージを作成する仕組みである
- D本体と別に配布されるモジュールのソースを管理し、カーネル更新時に自動で再ビルドする仕組みである
正解:D
解説
DKMSは、カーネル本体には含まれない外部のカーネルモジュール(一部のデバイスドライバや仮想化ソフトウェアのモジュールなど)をソースの形で登録しておき、新しいカーネルがインストールされたときに、そのカーネル向けに自動で再ビルド・インストールする仕組みです。dkms status で登録状況を確認でき、dkms add・build・install で手動の操作も行えます。カーネルモジュールは特定のカーネルバージョン向けにビルドされるため、この仕組みがないとカーネル更新のたびに手作業での再ビルドが必要になります。
選択肢ごとの解説
- A誤り。これはdracut(Debian系ではmkinitramfs)の説明です。
- B誤り。これはmodprobeの説明です。DKMSはモジュールのロードではなく、ビルドとインストールを自動化します。
- C誤り。これはカーネルのMakefileのrpm-pkgやdeb-pkgなどのターゲットの説明です。
- D正しい。DKMSは外部モジュールをソースで管理し、カーネル更新時に自動で再ビルドします。