Security/Forensics

[Linux] Linux/proc

bonggang 2019. 9. 17. 04:15

/proc 디렉토리는 가상 파일 시스템으로 /dev와 마찬가지로 하드 디스크 상에서 물리적인 용량을 갖지 않는다. 이 디렉토리에는 현재 시스템의 하드웨어 정보와 현재 실행되고 있는 프로세스의 정보가 디렉토리 혹은 파일 형태로 저장된다.

 

1) 숫자 폴더

숫자로 생서되는 폴더들은 현재 실행되고 있는 프로세스 ID(PID)를 의미하며 각 디렉토리에는 프로세스에서 사용하는 정보들이 파일 및 디렉토리 형태로 저장된다.

 

2) proc/buddyinfo

리눅스 Buddy System의 버디 할당자에 관한 정보를 저장한다.

Buddy System이란 외부 단편화를 최대한 줄이고 연속된 공간을 만들기 위해 인접된 Page를 묶어서 큰 공간을 만들거나 분할해서 공간을 생성하여 물리 메모리를 효율적으로 할당하는 시스템이다.

 

3) proc/cmdline

부트로더에서 커널에 전달된 이자 값을 저장한다.

 

4) proc/cpuinfo

이름그대로 CPU 정보를 저장한다. 이 때 저장되는 정보로는 프로세서 정보, CPU 타입, 모델, 제조사 등이 있다.

 

5) proc/crypto

사용 가능한 암호화 모듈들에 관한 목록을 저장한다.

 

6) proc/devices

장치 ID에 의해 정렬된 캐릭터와 블록 장치들 뿐만 아니라 /dev 이름에 대한 목록을 저장한다. 즉, 현재 시스템에서 할당한 디바이스들의 목록이라고 볼 수 있다.

 

7) proc/diskstats

논리 디스크 장치들의 상태와 파티션 정보 등을 저장한다.

 

8) proc/driver

현재 시스템의 드라이버 관련 정보를 저장한다.

 

9) proc/filesystem

현재 시스템이 지원하는 파일 시스템에 관한 정보를 저장한다.

 

10) proc/interrupts

인터럽트 정보를 저장한다.

 

11) proc/iomem

I/O 장치들이 사용하고 있는 메모리 번지를 저장한다.

 

12) proc/ioports

사용하고 있는 입출력 포트에 대한 정보를 저장한다.

 

13) proc/loadavg

시스템의 평균 부하량(Load Average)에 대한 정보를 저장한다.

 

14) proc/meminfo

시스템 메모리 정보를 저장한다. 이 때, 저장되는 정보에는 메모리 크기, 사용량, 가상 메모리, 동적으로 할당된 메모리의 크기 등이 있다.

 

15) proc/modules

현재 로딩 된 모듈 정보를 저장한다. lsmod 명령어를 사용했을 때 나오는 내용과 일치한다.

 

16) proc/mounts

마운트 된 파일시스템의 목록을 저장한다.

 

17) proc/mtrr

MTRR(Memory Type Range Register, 프로세서 소프트웨어 보조 기능 제어 레지스터, CPU에 의해 메모리 범위에 대한 엑세스가 캐시되는 방식을 시스템 소프트웨어에 제공)의 정보를 저장한다.

 

18) proc/net

네트워크 프로토콜에 대한 정보를 저장한다.

- arp: arp 테이블

- dev: 네트워크 디바이스 상태

- netstat: 네트워크 통계

- raw: raw 디바이스 통계

- route: 라우팅 테이블 정보

- rt_cache: 라우팅 캐시

- socket: 소켓 통계

- tcp: tcp 소켓

- udp: udp 소켓

등 다양한 정보를 이곳에서 확인 가능하다.

 

19) proc/partitions

현재 시스템의 파티션 정보를 저장한다.

 

20) proc/self

현재 프로세스에 대한 심볼릭 링크를 저장한다.

 

21) proc/stat

CPU, 인터럽트, 컨텍스트 스위치 등 일반적인 시스템 통계 정보를 저장한다.

 

22) proc/swaps

swap 파일시스템 사용 정보를 저장한다.

 

23) proc/tty

현재 터미널들에 대한 정보를 저장한다.

 

24) proc/uptime

부팅 된 이후 시스템이 운영된 시간을 초단위로 저장한다.

 

25) proc/version

현재 사용 중인 커널의 버전 및 커널 컴파일에 사용된 컴파일러 정보 등을 저장한다.

 

 

이 외에도 다양한 파일 및 폴더가 존재하니 공부하고 싶은 사람들은 스스로 더 찾아보며 확인해 보는 것을 추천한다.