Warum “lsmod | wc -l "ungleich" ls / sys / module | wc -l ”

10

Warum geben diese beiden Befehle unterschiedliche Ergebnisse zurück?

lsmod | wc -l
100

ls /sys/module | wc -l
138
Andy
quelle

Antworten:

13

lsmodlistet alle geladenen dynamischen Module auf.

Die Einträge in /sys/moduleentsprechen dynamischen Modulen und Modulen, die in den Kernel integriert sind (und Parameter haben, auf die zugegriffen werden muss), anstatt dynamisch geladen zu werden. Beispielsweise:

[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

Sie können hier sehen, dass das iptables-Modul als dynamisches Modul konfiguriert ist. Im Gegensatz zu:

[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

während Apparmor eingebaut ist.

MikeyB
quelle
@MikeB Wenn Sie CONFIG_X_X = yes sehen, bedeutet dies, dass der Code im Kernel nicht als Dinamic-Modul erstellt wird: Beispiel grep EXT4 /boot/config-3.6.11-4.fc16.i686 CONFIG_EXT4_FS = y modinfo ext4 FEHLER: Modul ext4 nicht gefunden ls -l / sys / module / ext4 ls: kann nicht auf / sys / module / ext4 zugreifen: Keine solche Datei oder kein solches Verzeichnis
c4f4t0r
Ja, es sieht so aus, als müssten eingebaute Module Parameter haben, damit sie sichtbar sind.
MikeyB
5
  • /sys/module/MODULENAME

MODULENAMEist der Name des Moduls, das sich im Kernel befindet. Dieser Modulname wird immer angezeigt, wenn das Modul als dynamisches Modul geladen ist. Dies ist genau das, was Sie sehen können, wenn Sie einen lsmodBefehl ausgeben oder wenn Sie die /proc/modulesDatei überprüfen .

Wenn es direkt in den Kernel integriert ist, wird es nur angezeigt, wenn es eine Version oder mindestens einen Parameter hat. Die verfügbaren Parameter sind dann im Verzeichnis verfügbar:

  • /sys/module/MODULENAME/parameters
dsmsk80
quelle