勉強前のイメージ
カーネルのデフォルトだけでは動かんから、
モジュールを読み込んで改造していくイメージ。
調査
カーネルモジュールとは
カーネルの機能を拡張するためのバイナリファイルです。
例としては、ディスク・ネットワークカード等をLinuxカーネルで使用可能にするためのデバイスドライバなどがあります。
デバイスドライバは各ハードウェアベンダーから提供されることが多いです。
初期のUNIX系OSでは新しいハードウェアを使うにはカーネルの再構築が必要でしたが、
現在のLinuxカーネルは、必要ありません。
起動時に常駐カーネルがメモリにロードされ、必要に応じてロード・アンロードが出来るようになっています。
サーバ内のモジュールを確認
lsmod
コマンドを使用します
# lsmod
Module Size Used by
vboxsf 81052 1
vboxvideo 35867 0
ip6t_rpfilter 12595 1
ip6t_REJECT 12625 2
nf_reject_ipv6 13717 1 ip6t_REJECT
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
xt_conntrack 12760 11
ebtable_nat 12807 1
- Module : ロードされているカーネルモジュール
- Size : カーネルモジュールのサイズ
- Used by : 使用カウント数・参照しているモジュールの一覧
モジュールのロード
- 依存関係を考慮する場合
-
modprobe
コマンド
-
- 依存関係は考慮しない場合
-
insmod
コマンド
-
上記コマンドの違いは、
modprobe
コマンドでは、依存関係があるモジュールがあれば事前にロードを行います。
insmod
コマンドでは、指定されたモジュールのみをロードします。
モジュールのアンロード
rmmod
コマンドを使用
-r
オプションを付けることによって、依存するモジュールも削除します。
削除する際にモジュールが使用されている場合はエラーになります。
モジュールの依存関係リストを更新
基本的には実行しないのですが、モジュールファイルの追加や削除入れ替えなどで依存関係がおかしくなっている可能性がある場合に使用されることが多いです。
depmod
コマンドでモジュールの依存関係リストを更新することが出来ます。
勉強後のイメージ
カーネル(心臓部のイメージ)の増築みたいな感じだから、再起動したりせんとあかんのかなって思ってたけど、コマンドでいけるのね。
昔はプログラムをコンパイルとか必要だったみたい。
なんか簡単そうな感じ。