- 締切済み
モジュールの仕組について
/etc/modules.conf や modprobe , insmod (rmmod) などの仕組がよくわかりません。 カーネル再構築時に、ロードモジュールを撰択するところがありますよね。 あれは、その機能の実行時に呼び出される、動的なライブラリと考えていいのでしょうか? また、insmod のようにモジュールを追加するコマンドがあるのなら、カーネルを再構築する必要がない気もします。(←もちろん間違った事を僕は言ってるのでしょうけど・・・) これらのことについて、謎だらけです。どうか仕組を教えてください。 どうかよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- xjd
- ベストアンサー率63% (1021/1612)
>僕が現在やりたいことは、iptable を使ってフィルタリングやIPマスカレードをしたいと考えています。 >カーネルの構築時に、モジュールを選択したのですが、 その後、どうすればいいのか、わからないのです。 とりあえずrc.localに記述して、Linux起動時に組み込んでみてはどうでしょう? /etc/rc.d/rc.localファイルの最後にルールを記述しておきます。 modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.100 (こんな感じで) ちなみに以前のiptableモジュールが残っていたら取り除いておいたほうが良いと思います。 rm /lib/modules/カーネルバージョン/kernel/net/ipv4/netfilter/ipchains.o
- xjd
- ベストアンサー率63% (1021/1612)
>その機能の実行時に呼び出される、動的なライブラリと考えていいのでしょうか? そんな感じです。Linuxカーネルはモジュール構造になっていて、デバイスドライバなどはモジュールとして必要に応じて実行中のカーネルに追加されるようになってます。 >insmod のようにモジュールを追加するコマンドがあるのなら、カーネルを再構築する必要がない気もします。 インストール直後のカーネルは必要ない機能やドライバが山ほど、カーネルに静的に組み込まれてるので、当然メモリ等のリソースを消費します。 不必要な機能をモジュールとして、外部に追いやる事でカーネルの肥大化も防げますし、リソースの節約にもなります。 そもそも不必要な機能はモジュールにする必要すらありませんのでカーネル再構築時に削除してしまえばディスク容量の節約にもなります。 あなたのパソコンのCPU、チップやデバイスに合わせてチューニングできるので、カーネルの再構築は意味があります。
補足
返事が遅くなってすいません。 僕が現在やりたいことは、iptable を使ってフィルタリングやIPマスカレードをしたいと考えています。カーネルの構築時に、モジュールを選択したのですが、 その後、どうすればいいのか、わからないのです。 insmod コマンドとmodprobe コマンドの違いがイマイチわかりません。 /etc/modules.confファイルに直接既述されていると、そのモジュールが自動的に呼び出されると考えていいのでしょうか? 例えば、hogehoge.o というモジュールを組み込むときにはどうすればいいのでしょうか・・・ 分からないことばかりです。宜しくお願いします