![프로세스 정보는 RAM의 커널에 저장되고 /proc는 보조 저장소에 저장되므로 프로세스 정보는 왜 /proc에 저장됩니까?](https://linux55.com/image/190548/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EC%A0%95%EB%B3%B4%EB%8A%94%20RAM%EC%9D%98%20%EC%BB%A4%EB%84%90%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%98%EA%B3%A0%20%2Fproc%EB%8A%94%20%EB%B3%B4%EC%A1%B0%20%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%98%EB%AF%80%EB%A1%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EC%A0%95%EB%B3%B4%EB%8A%94%20%EC%99%9C%20%2Fproc%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%A9%EB%8B%88%EA%B9%8C%3F.png)
/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의 특정 파일을 쓰거나 읽는 것은 위험할 수 있으므로 테스트 시스템에서 수행하는 것이 가장 좋습니다.