현재 저는 커널 모듈 프로그래밍을 배우고 있습니다.https://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf", 그 책에는 "/proc 파일 시스템"이라는 제목의 장이 있습니다. 모듈을 장치 드라이버로 사용하는 방법을 배웠지만 "/proc/file_name" 생성의 중요성을 이해할 수 없습니다. /proc을 알고 있습니다. 커널 디렉토리에 있는 프로세스에 대한 정보를 유지 관리하며 커널 모듈에서 생성된 "/proc/file_name"의 중요성을 이해해야 합니다.
답변1
5.1장의 시작 부분에서는 /proc
파일 시스템에 대해 설명합니다.
원래 프로세스에 대한 정보(따라서 이름)에 쉽게 접근할 수 있도록 설계되었지만 이제는 몇 가지 흥미로운 보고서와 함께 커널의 모든 부분에서 사용됩니다. [...]
당신은하지 않습니다가지다파일 시스템에서 파일을 생성합니다 /proc
. 그러나 모듈 상태에 대한 통계나 기타 정보를 보고하는 쉬운 방법을 원하거나 필요하다면 /proc
파일 시스템을 사용하는 것이 좋습니다. 파일 시스템이 개발된 방식 때문에 /proc
약간 혼란스러울 수 있습니다. 예를 들어 , 기본 커널, 다른 타사 모듈 또는 향후 개발과의 충돌 가능성을 최소화하기 위해 /proc
파일 시스템 루트에 여러 콘텐츠 대신 모듈에 대한 하위 디렉터리를 생성할 수 있습니다 ./proc/driver
이 글을 쓰는 시점에 /sys
파일 시스템은 커널 모듈이 가질 수 있는 모든 조정 가능한 설정을 위해 보다 체계적으로 배열된 장소(따라서 통합 사용자 공간 도구에 보다 친숙한 장소)로 도입되었습니다. 안타깝게도 다루어야 할 6장은 TODO: Write a chapter about sysfs
이 PDF의 자리 표시자일 뿐입니다.
(역사: /sys
파일 시스템이 존재하기 전에 /proc
파일 시스템은 런타임에 설정을 조정하는 장소로 사용되었으며 일반적으로 쓰기 가능한 파일로 식별 가능합니다. 이들 중 일부는 아직 파일 시스템으로 완전히 마이그레이션되지 않았을 수 /sys
있으며 이 모든 위치에 있지 않을 수도 있습니다. 이전 버전과의 호환성을 유지하려면 /sys
대신 조정 가능한 항목을 두는 것이 좋습니다 /proc
.
debugfs
최신 커널에는 에 설치할 수 있는 가 있는데 /sys/kernel/debug
, 이는 커널 모듈이 일부 디버깅 정보를 출력하기 위한 방법이 필요한 경우 좋은 장소일 수 있습니다. debugfs
이는 시스템 관리자 액세스용으로 설계되었으므로 더 자세하고 민감한 디버깅 정보를 출력하기에 좋은 장소일 수 있습니다 . 또한 완전히 선택 사항입니다. 프로덕션 시스템에서는 debugfs
심층적인 문제 해결이 필요하지 않은 한 간단히 제거할 수 있습니다.
간단히 말해서, 모듈이 런타임에 특정 설정을 조정하는 방법을 제공해야 하는 경우 /sys
파일 시스템이 이를 수행하기에 좋은 장소입니다. 최신 커널의 정보를 디버깅하려면 를 사용하세요 debugfs
. 루트가 아닌 사용자가 볼 수 있는 통계 및 유사한 내용을 보려면 /proc
.