Por que "lsmod | wc -l ”não é igual a“ ls / sys / module | wc -l "

10

Por que esses dois comandos retornam resultados diferentes?

lsmod | wc -l
100

ls /sys/module | wc -l
138
andy
fonte

Respostas:

13

lsmodlista todos os seus módulos dinâmicos que são carregados.

As entradas em /sys/modulecorrespondem a módulos dinâmicos e módulos que são embutidos no kernel (e têm parâmetros que precisam ser acessíveis) em vez de carregados dinamicamente. Por exemplo:

[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

Você pode ver aqui que o módulo iptables está configurado como um módulo dinâmico. Contrasta com:

[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

enquanto o apparmor está embutido.

MikeyB
fonte
@ MikeB quando você vê CONFIG_X_X = sim, eu acho que isso significa que o código está sendo construído no kernel não como módulo dinâmico: Exemplo grep EXT4 /boot/config-3.6.11-4.fc16.i686 CONFIG_EXT4_FS = e modinfo ext4 ERRO: Módulo ext4 não encontrado ls -l / sys / module / ext4 ls: não pode acessar / sys / module / ext4: Nenhum tal lima ou diretório
c4f4t0r
Sim, parece que os módulos internos precisam ter parâmetros para serem visíveis.
MikeyB
5
  • /sys/module/MODULENAME

MODULENAMEé o nome do módulo que está no kernel. Esse nome do módulo sempre será exibido se o módulo for carregado como um módulo dinâmico. É exatamente isso que você pode ver ao emitir um lsmodcomando ou ao verificar o /proc/modulesarquivo.

Se ele estiver embutido diretamente no kernel, ele só aparecerá se tiver uma versão ou pelo menos um parâmetro. Os parâmetros disponíveis estão disponíveis no diretório:

  • /sys/module/MODULENAME/parameters
dsmsk80
fonte