伝統的に、FreeBSD のカーネルは “モノリシック” (monolithic) カーネルと呼ばれるものでした。 これは、カーネルが単一の巨大なプログラムで、 扱えるデバイスは固定されていて、 カーネルの振る舞いを変えたければ新しいカーネルを構築して、 コンピュータを再起動して新しいカーネルを動かさなれければならなかった ということです。
今日では FreeBSD は、カーネルの機能のかなりが必要に応じて動 的にカーネルに組み込んだり外したりできるモジュールにおかれている モデルへと、急速に移行しています。こうしてカーネルは (ノート PC の PCMCIA カードのように) 突如使えるようになったハードウェアに対 応したり、カーネルが作成された時点では必要なかった新たな機能を取 り入れられるようになります。くだけた表現では、これは KLD と呼ば れます。
しかしながら、いまだにいくらかは静的にカーネルを構成する必要 があります。ある場合においては、機能がカーネルとあまりに密接に結 びついているため、動的に組み込むことができません。ほかには、単に まだ誰もその機能に対する組み込み可能なカーネルモジュールを書く時 間をとっていないだけということもあります。
システムに合わせたカーネルの構築はほとんどすべての Unix ユーザが 避けて通ることのできない最も重要な通過儀礼の1つです。 この作業は、多くの時間を必要としますが、あなたの FreeBSD システムに多くの利益をもたらします。 広範囲のハードウェアをサポートしなければならない GENERICカーネルとは異なり、 システムに合わせたカーネルは あなたの PC のハードウェアのみをサポートします。これは、 次にあげるような利益をもたらします。
素早く起動します。 カーネルはあなたのシステム上にあるハードウェアしか 検出を行わないので、 あなたのシステムの起動にかかる時間は劇的に短くなります。
メモリの消費量が減少します。 システムに合わせたカーネルは、大抵 GENERIC カーネルより少ないメモリしか消費しません。 カーネルは常に実メモリ上に存在しなければならないので、 これは重要なことです。 したがって、RAM が少ないシステムでは、 カーネルの再構築は大変重要です。
追加のハードウェアをサポートします。 システムに合わせたカーネルは、サウンドカードなど GENERIC カーネルに存在しないデバイスのサポートを追加することができます。