ランレベル/ブートターゲット変更、システムの再起動とシャットダウン~ カーネルモジュールの管理 ~
今回の内容
今回はに、カーネルモジュールについて解説します。
覚えておきたいキーワード
・カーネルモジュール
・lsmod
・modprobe
カーネルモジュール
カーネルモジュールとは、「小さなパーツのプログラムをカーネルに組み込んで(取り付けて)使用するもの」です。
カーネルはOSの中核をなすプログラムで、ハードウェアの監視やアプリケーションの実施を行っています。
そのカーネルでハードウェアの監視を行うためにはデバイスドライバが必要となります。
デバイスドライバは、以下の場合があります。
・「カーネルモジュールとして利用する場合」
・「カーネルに組み込んで利用する場合」
新しいデバイスや新たな機能を追加する際に、
カーネルモジュールを利用すればシステムに新しく接続されたハードウェアにアクセスすることが可能になります。
そもそもモジュールとは、何でしょうか。
モジュールとは、「部品」という意味があり、他のものと組み合わせて使用します。
モジュールは、ハードウェアやプログラミングといった幅広い分野で使用されますが、
Linuxにおいては、カーネルモジュールとして使用されます。
もし、カーネルモジュールがなかった場合は、カーネル本体に組み込むことになりますが、
その場合、事前にたくさんのプログラムを付け加えることになり、カーネルのサイズが大きくなります。
カーネルモジュールを利用することで、カーネルのサイズを小さくすることができます。
また、通常、カーネルを形成しているプログラムに機能を追加しようとする場合には、カーネルを再構築する必要があります。
その点、カーネルモジュールを用いると、必要に応じて動的に機能を追加することができるようになります。
たとえば、デバイスドライバの機能を持つカーネルモジュールを組み込めば、システムに新しく接続されたハードウェアにアクセスすることが可能になるわけです。
それに対して、ハードディスクなどシステムで頻繁に利用するハードウェアは、カーネルに組み込んで利用します。
サポートの方法 | 説明 | 適したハードウェア |
---|---|---|
カーネルに組み込み | システム起動時、 カーネルをメモリにロードした時点でデバイスをサポートすることができる |
ハードディスクなどシステムで頻繁に利用するハードウェア |
カーネルモジュール として利用 |
ハードウェアを利用するたびに、 必要なカーネルモジュールをメモリにロードする |
システムで利用する頻度が低いハードウェア |
lsmod
システム稼動中にロードされているカーネルモジュールを一覧表示するためには、
lsmod コマンドを利用します。
[root@localhost ~]# lsmod Module Size Used by fuse 79892 0 rfcomm 71047 4 sco 17493 2 bridge 85706 0 bnep 16370 2 l2cap 54210 16 rfcomm,bnep 8021q 20475 0 garp 7152 1 8021q stp 2218 2 bridge,garp llc 5418 3 bridge,garp,stp ipt_REJECT 2383 2 nf_conntrack_ipv4 9186 2 nf_defrag_ipv4 1483 1 nf_conntrack_ipv4 iptable_filter 2793 1 ip_tables 17895 1 iptable_filter [root@localhost ~]#
modprobe
モジュールを管理するコマンドとして、modprobeコマンドがあります。
modprobeコマンドは設定ファイルやコマンドラインで指示することにより、
モジュールの ロード(取り込み)、アンロード(取り外し)を行うコマンドです。
例えば、1つまたは複数のモジュールを、それが必要とするモジュールとあわせてロードすることが可能となります。
//ロードできる全てのモジュールのファイル名を表示
[root@localhost ~]# modprobe -l kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko kernel/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.ko kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko kernel/arch/x86/kernel/cpu/cpufreq/intel_pstate.ko [root@localhost ~]#
まとめ
カーネルモジュールの知識やlsmod、modproveのコマンドは、しっかりと覚えておきましょう!
それでは今回はこのあたりで。