なぜ「lsmod | wc -l」が「ls / sys / module | wc -l」


10

これらの2つのコマンドが異なる結果を返すのはなぜですか?

lsmod | wc -l
100

ls /sys/module | wc -l
138

回答:


13

lsmodロードされているすべての動的モジュールをリストします。

のエントリは/sys/module、動的にロードされるのではなく、動的モジュールおよびカーネルに組み込まれている(およびアクセス可能である必要があるパラメーターがある)モジュールに対応しています。例えば:

[michael@brazzers:~]$ ls -d /sys/module/ip_tables/
/sys/module/ip_tables/
[michael@brazzers:~]$ lsmod |grep ^ip_tables
ip_tables              26995  3 iptable_filter,iptable_mangle,iptable_nat
[michael@brazzers:~]$ grep CONFIG_NF_NAT_IPV4 /boot/config-3.8.0-30-generic
CONFIG_NF_NAT_IPV4=m

iptablesモジュールが動的モジュールとして構成されていることがわかります。対比して:

[michael@brazzers:~]$ ls -d /sys/module/apparmor/
/sys/module/apparmor/
[michael@brazzers:~]$ lsmod |grep ^apparmor
[michael@brazzers:~]$ grep APPARMOR /boot/config-3.8.0-30-generic 
CONFIG_SECURITY_APPARMOR=y

apparmorは組み込みです。


@MikeB CONFIG_X_X = yesが表示された場合、それは、コードが動的モジュールとしてではなくカーネルに組み込まれていることを意味します:例grep EXT4 /boot/config-3.6.11-4.fc16.i686 CONFIG_EXT4_FS = y modinfo ext4 ERROR:Module ext4見つかりませんls -l / sys / module / ext4 ls:アクセスできません/ sys / module / ext4:そのようなファイルまたはディレクトリはありません
c4f4t0r

はい、ビルトインモジュールを表示するには、パラメータが必要であるように見えます。
MikeyB 2013

5
  • /sys/module/MODULENAME

MODULENAMEカーネルにあるモジュールの名前です。モジュールが動的モジュールとしてロードされている場合、このモジュール名は常に表示されます。これは、lsmodコマンドを発行したとき、または/proc/modulesファイルをチェックしたときに正確にわかるものです。

カーネルに直接組み込まれている場合、バージョンまたは少なくとも1つのパラメーターがある場合にのみ表示されます。使用可能なパラメーターは、次のディレクトリで使用できます。

  • /sys/module/MODULENAME/parameters
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.