CIDY
[Linux] proc 파일시스템 본문
리눅스는 모든 것을 파일로 관리한다. proc파일 시스템은 운영체제의 각종 정보를 커널 모드가 아닌 유저 모드에서 쉽게 접근할 수 있도록 해준다. (proc은 process를 의미한다.)
이 파일 시스템은 시스템이 부팅될 때 커널이 메모리상에 만들어 둔 가상 파일시스템으로, 디스크에는 존재하지 않는다. 프로세스에 대한 다양한 정보를 제공해준다. (프로세스 정보뿐만 아니라 다른 시스템 정보들까지 광범위하게 제공해준다.)
다음은 proc디렉토리의 일부 파일에 대한 설명이다.
/proc/1
프로세스 번호 1번에 대한 정보가 있는 디렉토리이다. 각 프로세스는 자신만의 디렉토리를 /proc하위에 갖는다. 자신의 프로세스 식별 번호(process identification number)가 그 디렉토리의 이름이 된다.
/proc/cpuinfo
프로세서의 정보가 들어있다. cpu의 타입, 모델, 제조회사, 성능 등에 관한 정보를 담고 있다.
/proc/devices
현재 커널에 설정되어 있는 장치의 목록을 볼 수 있다.
/proc/dma
현재 어느 DMA 채널이 사용 중인지를 알려준다.
/proc/filesystems
어떤 파일시스템이 커널에 설정되어 있는지를 알 수 있다.
/proc/interrupts
현재 어느 인터럽트가 사용 중인지, 그리고 얼마나 많이 사용되었는지를 알 수 있다.
/proc/ioports
현재 어느 I/O 포트가 사용 중인지를 알려준다.
/proc/kcore
이것은 시스템에 장착된 실제 메모리의 이미지이다(즉, 실제 메모리의 내용을 그대로 본뜬 것이다). 따라서 이 파일의 크기는 실제 메모리의 크기와 정확히 일치하는 것처럼 보인다. 그러나 이 파일은 프로그램이 필요로 하는 부분의 이미지만 그때 그때 만들어 내도록 되어 있어서, 실제로 메모리를 그만큼 차지하고 있는 것은 아니다. (/proc 파일시스템의 내용을 다른 곳에 복사하지만 않는다면, /proc 안의 내용은 아무런 디스크 공간을 차지하지 않는다는 점을 알아두자.)
/proc/kmsg
커널이 출력하는 메시지들이다. 이것은 syslog 파일에도 기록된다.
/proc/ksyms
커널이 사용하는 심볼들의 표를 보여준다.
/proc/loadavg
시스템의 평균부하량(load average)을 보여준다. 지금 시스템이 해야하는 일들이 얼마나 많은지 알려주는 세가지 지표를 볼 수 있을 것이다.
/proc/meminfo
메모리 사용량에 관한 정보를 보여준다. 실제 메모리와 가상 메모리를 모두 다룬다.
/proc/modules
현재 어떤 커널 모듈이 사용되고 있는지를 알려준다.
/proc/net
네트워크 프로토콜들의 상태에 대한 정보가 들어 있다.
/proc/self
이 곳은 이 디렉토리를 들여다보는 프로그램 자신의 프로세스 디렉토리로 링크가 되어 있다. 즉, 서로 다른 두 프로세스가 /proc를 본다면 그들은 서로 다른 링크를 보게 되는 것이다. 이렇게 하면 프로그램들이 자신의 프로세스 디렉토리가 어디인지를 쉽게 알 수가 있게 된다.
/proc/stat
이 곳에는 시스템의 상태에 관한 다양한 정보가 있다. 즉, 부팅된 후 page fault가 몇번 일어났는가 하는 것들을 알아 볼 수가 있다.
/proc/uptime
시스템이 얼마나 오랫동안 살아 있었는지 보여준다.
/proc/version
커널의 버전을 알려준다.
ref.
https://codingcoding.tistory.com/193
http://doc.kldp.org/Translations/html/SysAdminGuide-KLDP/x642.html
'Hack > Linux' 카테고리의 다른 글
[Linux] pwnable을 위한 Ubuntu초기 환경 설정 (0) | 2023.08.02 |
---|