프로세스 정보는 RAM의 커널에 저장되고 /proc는 보조 저장소에 저장되므로 프로세스 정보는 왜 /proc에 저장됩니까?

프로세스 정보는 RAM의 커널에 저장되고 /proc는 보조 저장소에 저장되므로 프로세스 정보는 왜 /proc에 저장됩니까?

/proc는 Linux 루트 디렉터리에 있는 디렉터리입니다. 프로세스에 대한 정보가 포함되어 있습니다. 그러나 실제로 프로세스 테이블과 그 모든 내용은 RAM의 커널에 저장됩니다. 제 문의에 답변해주세요. 내가 여기에 처음 왔기 때문에 바보처럼 들릴 수도 있습니다.

답변1

~에서매뉴얼 페이지:

proc 파일 시스템은 커널 데이터 구조에 대한 인터페이스를 제공하는 의사 파일 시스템입니다.

/proc는 보조 저장소가 아닙니다. /sys와 마찬가지로 /proc는 커널 창에 대한 액세스를 제공하는 파일 시스템입니다. /proc/1234/cmdline예를 들어 디스크 파일이 아닙니다. 인덱스 노드 외에는 공간을 차지하지 않습니다. 해당 파일을 읽으면 실제로 커널 메모리에 액세스하게 됩니다.

/proc의 일부 파일에 쓰려고 하면 /proc가 일반 파일 시스템이 아니라는 것을 알게 됩니다. 루트로서 시도해 보십시오 echo blabla > /proc/$$/cmdline. 당신은 다음과 같은 인사를 받게 될 것입니다.에코: 쓰기 오류: 잘못된 인수. cmdline루트조차도 읽기만 가능합니다. 마찬가지로 /sys에는 쓰기만 가능한 파일이 포함되어 있습니다. 예를 들어 시도해 보십시오 cat /sys/block/sda/device/delete(하지만 쓰지 마십시오. 논리적으로 시스템에서 sda 장치를 제거하게 됩니다. 실수로 이 작업을 수행한 경우 가장 쉬운 해결 방법은 재부팅하는 것입니다).

비슷한 경우가 있습니다 /dev/kmem. 이는 파일 시스템이 아니라 커널 메모리에 대한 액세스를 제공하는 장치 파일입니다. 저장 장치를 의미하지 않습니다.

경고하다: /proc 및 /sys의 특정 파일을 쓰거나 읽는 것은 위험할 수 있으므로 테스트 시스템에서 수행하는 것이 가장 좋습니다.

관련 정보