ローダブル・カーネル・モジュール
LinuxがLKMに提供しているAPIやABIは安定したものではない。すなわち、カーネルのバージョンが異なれば内部のデータ構造や機能に差異があり、非互換問題を発生する可能性がある。これに対処するため、ローダブルなELFモジュールに.modinfoというセクションを置き、そこにバージョンデータを置くようにした。このバージョン情報はモジュールをロードする際に動作中のカーネルのバージョンと比較される。バージョンに非互換があれば、そのモジュールはロードされない。
FreeBSDでは、モジュールそれぞれにバージョン情報を置き、他のモジュールに依存するモジュールは依存するモジュールとそのバージョン番号を指定する。シンボルはモジュール名とバージョン番号で独立した名前空間を持っており、依存モジュールが指定されないとそのシンボルを使うことは出来ない。現在、カーネル自身もリリースやパッチバージョン毎にバージョン番号を持っており、依存関係は暗黙のうちに指定されるため、モジュールのコンパイル環境のカーネルソースと実カーネルが違うとシンボル解決に失敗してロードされない。
Solaris、WindowsといったOSでは、カーネルのAPIとABIは比較的安定に保たれており、このような問題を回避している。