カーネルモジュール 【kernel module】
概要
カーネルモジュール(kernel module)とは、オペレーティングシステム(OS)の中核部分であるカーネルに機能を追加するよう設計されたソフトウェア部品のこと。単にカーネルモジュールといった場合はLinuxカーネルに追加できるプログラムを指すことが多い。カーネルはOSの基盤部分で、コンピュータを構成するCPUなどのハードウェアの制御や実行プログラムの制御などを行っている。通常、カーネルに機能を追加するにはカーネルのソースコードに追加部分のコードを組み込んで全体を再構築する必要があるが、Linuxカーネルには稼働中のカーネルに特定の形式のプログラムを追加して動作させる仕組みが内蔵されている。
この仕組みを利用して外部から追加するバイナリ(実行可能)形式のプログラムがカーネルモジュールで、NIC(ネットワークインターフェースカード)などコンピュータに内蔵あるいは接続された特定の機種のハードウェアを制御するためのデバイスドライバなどがカーネルモジュールとして提供される。
ドライバは機種ごとに固有であるため、すべての機種に対応しようとすると膨大な数のプログラムを標準で組み込まなければならないが、実行時に外部から追加できるようにしておくことで、ハードウェアのメーカーが自社製品向けのドライバを製品と共に提供することができる。削除や入れ替え、更新なども全体の再構築や再起動を行わずにモジュール単位で行うことができる。
(2021.4.23更新)