このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】カーネル(vmlinuz)

カーネル(vmlinuz)
カーネルはオペレーティングシステムの中核を担うプログラムであり、ハードウェアリソースの管理と、アプリケーションが実行できる環境を提供します。Linuxのカーネルは「vmlinuz」という文字列にバージョンを加えた名前で、/bootディレクトリに配置されています。このファイル名は「Virtual Memory LINUx gZip」の略です。

| 項目 | 説明 |
|---|---|
| カーネル名 | vmlinuz |
| 配置ディレクトリ | /boot |
| 役割 | ハードウェアリソースの管理とアプリケーションの実行環境の提供 |
カーネルファイルの確認
カーネルファイルが/bootディレクトリに存在することを確認するには、「ls /boot/vmlinuz*」コマンドを使用します。
| 項目 | 説明 |
|---|---|
| コマンド | ls /boot/vmlinuz* |
| 役割 | /bootディレクトリ内のカーネルイメージファイル(vmlinuz)をリストします。 |
| 使用方法 | ターミナルでls /boot/vmlinuz*と入力して実行します。 |
ls /boot/vmlinuz*コマンドの例
user01@ubuntu-vm:~$ ls /boot/vmlinuz*
/boot/vmlinuz /boot/vmlinuz-6.5.0-41-generic
/boot/vmlinuz-6.5.0-35-generic /boot/vmlinuz.oldカーネルモジュール
カーネルが起動されると、ハードウェアやメモリの初期化を行い、アプリケーションが実行できる環境を整えます。この際、カーネルモジュールと呼ばれるカーネルの部品がプログラムに組み込まれます。これらのモジュールは動的にロードされ、特定のハードウェアやファイルシステムのサポートを提供します。カーネルモジュールには依存関係があり、モジュール間で互いに依存し合うことがあります。

| 項目 | 説明 |
|---|---|
| カーネルモジュール | カーネルの機能を拡張する部品。動的にロードされる。 |
| 役割 | ハードウェアの初期化や特定の機能提供 |
| 依存関係 | モジュール間で依存関係があり、依存するモジュールが必要 |
lsmodコマンド
lsmodコマンドは、現在カーネルに組み込まれているモジュールを一覧表示します。これにより、どのモジュールがロードされているかを確認できます。
【構文】lsmod
| 項目 | 説明 |
|---|---|
| コマンド | lsmod |
| 役割 | カーネルにロードされているモジュールのリストを表示 |
| 使用方法 | ターミナルでlsmodと入力して実行 |
lsmodコマンドの例
user01@ubuntu-vm:~$ lsmod
Module Size Used by
vboxsf 45056 0
vboxguest 57344 7 vboxsf
vboxvideo 36864 0
drm_vram_helper 24576 1 vboxvideo
binfmt_misc 24576 1
snd_intel8x0 53248 2
snd_ac97_codec 196608 1 snd_intel8x0
ac97_bus 12288 1 snd_ac97_codec
(略)| 出力項目 | 説明 |
|---|---|
| Module | モジュール名 |
| Size | モジュールのサイズ(バイト単位) |
| Used by | モジュールを使用している他のモジュールの数 |
modprobeコマンド

modprobeコマンドは、カーネルモジュールを動的にロードまたはアンロードするために使用されます。依存関係を自動的に解決し、関連するモジュールを一緒にロードまたはアンロードします。管理者権限が必要となります。
【構文】modprobe [オプション] カーネルモジュール名
| 項目 | 説明 |
|---|---|
| コマンド | modprobe |
| 役割 | カーネルモジュールをロードまたはアンロード |
| 使用方法 | modprobe モジュール名でロード、modprobe -r モジュール名でアンロード |
コマンドのオプション(-r)
| オプション | 説明 |
|---|---|
-r | 指定したカーネルモジュールをアンロードします。依存するモジュールも同時にアンロードします。 |
modprobeコマンドの使用例
特定のカーネルモジュールがロードされているかを確認し、必要に応じてモジュールをアンロードまたは再ロードすることができます。
lsmod | grep e1000コマンド
このコマンドは、現在ロードされているカーネルモジュールのリストを表示し、その中からe1000という名前のモジュールを検索します。e1000は、一般的にIntel製のイーサネットアダプタ用のドライバモジュールです。
| コマンド | 説明 |
|---|---|
lsmod | 現在ロードされているカーネルモジュールのリストを表示します。 |
grep e1000 | lsmodコマンドの出力から、e1000という文字列を含む行を検索します。 |
e1000モジュール このコマンドを実行すると、以下のような出力が得られます(e1000モジュールがロードされている場合)。
user01@ubuntu-vm:~$ lsmod | grep e1000
e1000 180224 0| 出力項目 | 説明 |
|---|---|
| e1000 | モジュール名 |
| 180224 | モジュールのサイズ(バイト単位) |
| 0 | このモジュールを使用している他のモジュールの数 |
modprobe -r e1000の出力sudo modprobe -r e1000コマンド
このコマンドは、e1000カーネルモジュールをカーネルからアンロードします。-rオプションは、指定したモジュールと、それに依存するモジュールをアンロードすることを示します。
| コマンド | 説明 |
|---|---|
modprobe -r e1000 | e1000モジュールをカーネルからアンロードします。 |
modprobe -r e1000 このコマンドを実行すると、e1000モジュールがカーネルからアンロードされます。アンロードに成功すると、モジュールはカーネルから削除され、lsmodコマンドで確認しても表示されなくなります。
user01@ubuntu-vm:~$ sudo modprobe -r e1000
[sudo] user01 のパスワード:
user01@ubuntu-vm:~$ lsmod | grep e1000sudo modprobe e1000コマンド
このコマンドは、e1000カーネルモジュールをカーネルにロードします。modprobeコマンドは、モジュールの依存関係も自動的に解決し、関連するすべてのモジュールをロードします。
| コマンド | 説明 |
|---|---|
modprobe e1000 | e1000モジュールをカーネルにロードします。 |
modprobe e1000 このコマンドを実行すると、e1000モジュールがカーネルにロードされます。ロードに成功すると、モジュールはカーネルに追加され、lsmod | grep e1000 コマンドで確認できます。
user01@ubuntu-vm:~$ sudo modprobe e1000
user01@ubuntu-vm:~$ lsmod | grep e1000
e1000 180224 0まとめ
カーネルはLinuxシステムの中核であり、ハードウェアリソースの管理とアプリケーションの実行環境を提供します。カーネルモジュールはカーネルの機能を拡張し、動的にロードおよびアンロードされます。lsmodコマンドを使用して現在ロードされているモジュールを確認し、modprobeコマンドを使用してモジュールを管理することができます。これにより、システムの柔軟な管理が可能となります。
