질문이 너무 간단했다면 사과드립니다. 그런데 리눅스 시스템 모듈과 리눅스 커널 모듈 사이에 차이점이 있는지 묻고 싶습니다. 차이점이 있는 경우 둘 다 어디에 위치합니까? /lib/module/$(uname -r)은 커널 모듈을 표시하고, /sys/module/은 시스템 모듈을 표시합니까?
답변1
/lib/module/$(uname -r)
디스크의 디렉토리입니다. 여기에는 파일이 포함되어 있으며 그 중 대부분( *.ko
)은 모듈 파일입니다. 즉, 커널 모듈 코드가 포함된 파일입니다. 원칙적으로 이 디렉터리(및 하위 디렉터리)의 파일에는 실행 중인 커널에 로드할 수 있는 모듈이 포함되어 있습니다.
/sys/module
커널의 내부 구조를 노출하는 가상 파일 시스템의 디렉터리입니다. 이 디렉터리의 파일에 액세스하면 디스크 계층으로 더 이상 들어가지 않고 일부 내부 커널 데이터 구조만 보는 커널의 함수가 호출됩니다. 의 각 항목은 /sys/module
실행 중인 커널의 구성 요소에 해당하며 코드는 메모리에 로드되어 활성화됩니다. 여기에는 로드된 모든 모듈뿐만 아니라 모듈로 로드할 수 있지만 커널이 컴파일될 때 커널에 직접 빌드되는 구성 요소도 포함됩니다.
/lib/module/$(uname -r)
항목에 해당하지 않는 파일을 포함하는 것이 /sys/module
일반적입니다 . 이는 컴퓨터에 없는 일부 하드웨어(또는 커널에서 관리하는 다른 항목)에 대한 드라이버입니다. 구성 요소가 커널에 빌드되면 /sys/module
해당 파일 없이 항목이 나타납니다(/lib/module/$(uname -r)
이것은알려주는 방법) 또는 모듈이 다른 곳에 있는 파일에서 수동으로 로드되었는지(또는 현재 삭제되었는지) 여부입니다.
시스템이 루트 파일 시스템을 다른 위치(예: 네트워크 또는 RAM 디스크)에 보관하는 경우 디스크 이외의 다른 위치에는 거의 보관하지 않습니다.
답변2
이 디렉토리는 /sys/module/
시스템에 필요한 다양한 정보가 포함된 폴더로 시스템의 모든 모듈을 이름별로 표시합니다. 이 디렉터리에는 /lib/module/$(uname -r)
기능에 따라 폴더 계층 구조에 저장된 커널 모듈 파일이 포함되어 있습니다.
예를 들어, 소프트웨어 워치독 커널 모듈 파일 은 /lib/module/$(uname -r)/kernel/drivers/watchdog/softdog.ko
. /sys/module/
모듈 자체에 대한 파일입니다.
이름으로 모듈을 조작할 수 있습니다.modprobe [args] <module-name> [module-params]
.ko
파일 경로를 사용하여 모듈을 조작할 수 있습니다 insmod [args] <path> [module-params]
.
커널 모듈을 작동하려면 루트 권한이 필요합니다.