Linuxカーネルはモジュール形式で設計されています。ブート時には、最小限必要な部分からなる常駐カーネルだけがメモリ内にロードされ、その後、常駐カーネルに含まれていない機能が要求されると、カーネルモジュールが動的にメモリ内にロードされます。一定時間使用されない場合、モジュールはメモリから取り除かれることがあります。
モジュールの動的なロードをサポートするメカニズムは、kmodと呼ばれるカーネルスレッドです。モジュールは、必要になったときに初めてロードされます。カーネルがモジュールを要求すると、それと依存関係にあるすべてのモジュールがロードされます。
インストールプログラムは、Red Hat Linuxをインストールする際、システムにあるハードウェアを調べます。一方、ユーザーは、システムの通常の使用形態と必ずロードすべきプログラムに関する情報を入力します。ハードウェアの調査結果とユーザーが入力した情報に基づき、インストールプログラムは常駐カーネルに組み込む機能とロード可能モジュールにすべき機能を決めます。そして、ユーザーには見えない形で動的ロードメカニズムが機能するようにセットアップします。カスタムカーネルを構築する場合は、それらのすべてを自分自身で決定することができます。
インストール後に、カーネルモジュールによるサポートを必要とするようなハードウェアを新規に追加する場合は、動的ロードメカニズムをセットアップする必要があります。通常、新しいハードウェアは、Kudzuが検出します。また、新しいドライバはモジュール設定ファイル/etc/modules.confを編集して組み込むこともできます。
たとえば、インストール時に、SMC EtherPower 10 PCIネットワークアダプタを組み込んだ場合には、モジュール設定ファイルには次の行があるはずです。
alias eth0 tulip |
インストール後に、同じネットワークアダプタをもう一枚インストールする場合は、/etc/modules.confファイルに次の行を追加します。
alias eth1 tulip |
カーネルモジュールとモジュール化可能なハードウェアの一覧(アルファベット順)は、オフィシャル Red Hat Linux リファレンスガイドにあります。