web-dev-qa-db-ja.com

コンパイル中にどのカーネルモジュールがカーネルに静的に組み込まれるかを決定するのは何ですか?

新しいカーネルをコンパイルし、自分自身に尋ねました。コンパイルプロセス中に、カーネルに静的に組み込まれているカーネルモジュールは何によって決まりますか

次に、/lib/modulesを削除して再起動すると、システムが正常に動作していることがわかりました。そのため、すべての重要なモジュールがカーネルに静的に構築されているようです。

/lib/modulesがない場合、カーネルは22をロードします。ディレクトリが存在する場合、カーネルは67のモジュールをロードします。

7
JohnnyFromBF

これは、通常make configmake menuconfigなどを実行するときに、構成プロセスの一部として行います。モジュールは、組み込み(*とマーク)またはモジュール化(Mとマーク)として設定できます。

この例は、make menuconfigのスクリーンショットで here から確認できます。

menuconfig screenshot

15
Chris Down

/kernelに加えてタグ/linux-kernelを追加したことを考えると、一般的なケースにも関心があると思います。

Solarisでは、1991年以降、基本的なカーネルグルーコード、デフォルトのスケジューラ、およびポケットベル/スワップを除いて、すべてが動的にロードされます。

ルートファイルシステムコードとモジュールローダーでさえ動的にロードされます。

これにより、カーネルを手動で構成する必要がなくなります。 Solarisがサイズに依存する機能も構成する必要がない場合(十分なメモリがある限り、新しいカーネルオブジェクトは実行時に自動的に作成されます)、Solarisで手動で構成する必要はありません。

Linuxがいつこの自動化状態に達するのか疑問に思っています...しかし、理論的に不要なカーネル構成(Solarisを参照)がユーザーにhey, you are able to control the linux kernelを伝える面白い方法として使用されているため、これは決して起こらないと思います。

4
schily