왜“lsmod | wc -l”이“ls / sys / module | 화장실 -l”


10

이 두 명령이 다른 결과를 반환하는 이유는 무엇입니까?

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

반면에 복장은 내장되어 있습니다.


@MikeB CONFIG_X_X = yes가 표시되면 코드가 동적 모듈이 아닌 커널에 빌드되어 있음을 의미한다고 생각합니다. 예 grep EXT4 /boot/config-3.6.11-4.fc16.i686 CONFIG_EXT4_FS = y modinfo ext4 오류 : 모듈 ext4 발견되지 LS -l / SYS / 모듈 / ext4에 LS : 액세스 할 수없는 / SYS / 모듈 / ext4가 : 그런 파일이 없습니다 또는 디렉토리
c4f4t0r

그렇습니다. 내장 모듈에 표시 할 매개 변수가 필요한 것처럼 보입니다.
MikeyB

5
  • /sys/module/MODULENAME

MODULENAME커널에있는 모듈의 이름입니다. 모듈이 동적 모듈로로드 된 경우이 모듈 이름이 항상 표시됩니다. 이것은 lsmod명령 을 실행할 때 또는 /proc/modules파일 을 확인할 때 정확히 볼 수있는 것 입니다.

커널에 직접 빌드 된 경우 버전 또는 하나 이상의 매개 변수가있는 경우에만 표시됩니다. 그런 다음 디렉토리에서 사용 가능한 매개 변수를 사용할 수 있습니다.

  • /sys/module/MODULENAME/parameters
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.