본문 바로가기
CS

리눅스 proc

by 몰라몰라개복치 2021. 7. 28.

/proc 

 

리눅스 시스템에 부팅될 때 커널에 의해서 생성되는 가상 파일시스템. 각종 시스템과 네트워크에 관련된 정보를 포함하고 있다.(정보확인은 vi 나 cat 명령어로 가능)

 /proc은 시스템의 갖가지 정보를 제공해 주는데, 원래는 주로 프로세스에 대한 정보를 제공했기 때문에 proc(process)이란 이름을 갖게 되었다.

 

 

 

 

커널 설명

더보기

 

커널:  컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제

 

커널 기능

  1. 메모리 관리: 메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지를 추적합니다.
  2. 프로세스 관리: 어느 프로세스가 중앙 처리 장치(CPU)를 언제 얼마나 오랫동안 사용할지를 결정합니다.
  3. 장치 드라이버: 하드웨어와 프로세스 사이에서 중재자/인터프리터의 역할을 수행합니다.
  4. 시스템 호출 및 보안: 프로세스의 서비스 요청을 수신합니다.

 

 

 

 

 

 

/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

커널의 버전을 알려준다.

 

 

 

 

참고: https://www.redhat.com/ko/topics/linux/what-is-the-linux-kernel

 

Linux 커널이란 무엇일까요?

Linux 커널은 Linux 운영 체제(OS)의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스입니다.

www.redhat.com

 

'CS' 카테고리의 다른 글

MIME 개념 정리  (0) 2021.07.28
패킷, 프레임, 세그먼트의 차이점은?  (0) 2021.07.28
NESTAT 명령어 설명(리눅스 기준)  (0) 2021.07.28
ARP 스푸핑, 공격 기법, 과정  (0) 2021.07.27
NAT 개념 공부  (0) 2021.07.27