Pourquoi «lsmod | wc -l ”différent de“ ls / sys / module | wc -l "

10

Pourquoi ces deux commandes renvoient-elles des résultats différents?

lsmod | wc -l
100

ls /sys/module | wc -l
138
Andy
la source

Réponses:

13

lsmodrépertorie tous vos modules dynamiques chargés.

Les entrées dans /sys/modulecorrespondent à des modules dynamiques et des modules qui sont intégrés dans le noyau (et ont des paramètres qui doivent être accessibles) plutôt que chargés dynamiquement. Par exemple:

[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

Vous pouvez voir ici que le module iptables est configuré comme un module dynamique. Contrairement à:

[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

tandis que l'apparmeur est intégré.

MikeyB
la source
@MikeB quand vous voyez CONFIG_X_X = oui je pense que cela signifie que le code est construit dans le noyau et non en tant que module dinamic: Exemple grep EXT4 /boot/config-3.6.11-4.fc16.i686 CONFIG_EXT4_FS = y modinfo ext4 ERREUR: Module ext4 introuvable ls -l / sys / module / ext4 ls: impossible d'accéder à / sys / module / ext4: aucun fichier ou répertoire de ce type
c4f4t0r
Oui, il semble que les modules intégrés doivent avoir des paramètres pour être visibles.
MikeyB
5
  • /sys/module/MODULENAME

MODULENAMEest le nom du module qui se trouve dans le noyau. Ce nom de module s'affichera toujours si le module est chargé en tant que module dynamique. C'est exactement ce que vous pouvez voir lorsque vous exécutez une lsmodcommande ou lorsque vous vérifiez un /proc/modulesfichier.

S'il est intégré directement dans le noyau, il n'apparaîtra que s'il a une version ou au moins un paramètre. Les paramètres disponibles sont alors disponibles dans le répertoire:

  • /sys/module/MODULENAME/parameters
dsmsk80
la source