Linux カーネル モジュールを使用することの欠点を理解しようとしています。それを使用する利点を理解しています。つまり、ベース システムを再コンパイルして再起動することなく、実行中のシステムにコードを動的に挿入できることです。この強力な利点を考えると、カーネル コードのほとんどは、ベース カーネルの一部としてではなく、カーネル モジュールとして使用する必要があると推測していましたが、そうではないようです。かなりの量のコア サス システム (メモリ管理やルート ドライブで使用されるファイル システムなど) は、依然としてベース カーネルとして使用されます。
考えられる理由の 1 つは、カーネル モジュールがブート プロセスの非常に遅い段階で読み込まれるため、コア機能をベース カーネルに配置する必要があることです。私が読んだもう1つの理由は、断片化についてでした。
カーネルモジュールがメモリの断片化を引き起こす理由がよくわかりませんでした。誰か説明してもらえますか? カーネルモジュールを使用することの他の欠点はありますか?