Infra Engineer

ランレベル/ブートターゲット変更、システムの再起動とシャットダウン~ カーネルモジュールの管理 ~
2020.11.30
Lv1

ランレベル/ブートターゲット変更、システムの再起動とシャットダウン~ カーネルモジュールの管理 ~

今回の内容

今回はに、カーネルモジュールについて解説します。

覚えておきたいキーワード

・カーネルモジュール
・lsmod
・modprobe

カーネルモジュール

カーネルモジュールとは、「小さなパーツのプログラムをカーネルに組み込んで(取り付けて)使用するもの」です。
カーネルはOSの中核をなすプログラムで、ハードウェアの監視やアプリケーションの実施を行っています。
そのカーネルでハードウェアの監視を行うためにはデバイスドライバが必要となります。
デバイスドライバは、以下の場合があります。
・「カーネルモジュールとして利用する場合」
・「カーネルに組み込んで利用する場合」

新しいデバイスや新たな機能を追加する際に、
カーネルモジュールを利用すればシステムに新しく接続されたハードウェアにアクセスすることが可能になります。

そもそもモジュールとは、何でしょうか。
モジュールとは、「部品」という意味があり、他のものと組み合わせて使用します。
モジュールは、ハードウェアやプログラミングといった幅広い分野で使用されますが、
Linuxにおいては、カーネルモジュールとして使用されます。

もし、カーネルモジュールがなかった場合は、カーネル本体に組み込むことになりますが、
その場合、事前にたくさんのプログラムを付け加えることになり、カーネルのサイズが大きくなります。
カーネルモジュールを利用することで、カーネルのサイズを小さくすることができます。
また、通常、カーネルを形成しているプログラムに機能を追加しようとする場合には、カーネルを再構築する必要があります。
その点、カーネルモジュールを用いると、必要に応じて動的に機能を追加することができるようになります。
たとえば、デバイスドライバの機能を持つカーネルモジュールを組み込めば、システムに新しく接続されたハードウェアにアクセスすることが可能になるわけです。

それに対して、ハードディスクなどシステムで頻繁に利用するハードウェアは、カーネルに組み込んで利用します。

サポートの方法 説明 適したハードウェア
カーネルに組み込み システム起動時、
カーネルをメモリにロードした時点でデバイスをサポートすることができる
ハードディスクなどシステムで頻繁に利用するハードウェア
カーネルモジュール
として利用
ハードウェアを利用するたびに、
必要なカーネルモジュールをメモリにロードする
システムで利用する頻度が低いハードウェア

lsmod

システム稼動中にロードされているカーネルモジュールを一覧表示するためには、
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つまたは複数のモジュールを、それが必要とするモジュールとあわせてロードすることが可能となります。

書式:modprobe [オプション] [モジュール名]
オプション:-l
//ロードできる全てのモジュールのファイル名を表示
例)ロードできる全てのモジュールのファイル名を表示。(一部抜粋)

[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のコマンドは、しっかりと覚えておきましょう!
それでは今回はこのあたりで。

Linux資格 「LPIC Lv1」徹底解説 連載目次リンク

Linux資格 「LPIC Lv1」徹底解説 連載目次

連載執筆講師が講座開講中!ITスクール SAK

ITスクールSAK | LPIC Lv1合格保証コース 講座紹介ページ