PROC 파일시스템 개관

번역 : 고현아 / hanbi@linuxlab.co.kr

 

 

    UN*X 부류의 시스템에서 흥미있는 부분은  /proc 파일시스템이다. 이 가상 파일시스템은 흥미있고 유용한 몇가지 특징을 갖고 있다. 이는 또한 위험하고 재앙을 줄 수도 있다. 여기서는 /proc 파일시스템을 세 분야에서 다룬다.

    ·개략적인 설명
    ·/proc가 어떻게 사용될 수 있는가.(또는 사용되서는 안되는가)
    ·i686 시스템에서 커널 2.2의  /proc 구조

     

1. /proc란?

    /proc 파일시스템은 메모리에 있는 시스템의 직접적인 반영이며 계층 형태로 표현된다.  /proc 파일시스템은 커널과 현재 수행되는 프로세스에 대한 정보를 쉽게 얻는 것이 목적이다.

    결과로 몇몇 명령은 (예를 들어 ps) 시스템 상태에 관한 정보를 얻기 위해 직접  /proc를 읽는다. /proc 의 배경은 그러한 정보를 이해하기 어려운 시스템 콜을 부르는 것 대신에 읽기 쉬운 형태로 제공하는 것이다.

 

 2. /proc가 관리자에게 할수 있는 일은 ?

    /proc 파일시스템은 아래와 같은 시스템 관련 일을 할 수 있다.

    통계적 정보를 보는 것
    하드웨어 정보 알아내기
    런타임 파라메터 수정하기
    네트워크와 호스트 파라메터 보기 및 수정
    메모리와 수행능력에 관한 정보

    주의할 점이 있다. 이러한 임무는  /proc를 참조해서 또는 커널을 직접 추적해 이루어 질 수 있다.

    다른 커널 = 다른 능력
    (Different Kernels = Different Capabilities)

    다른 커널은  /proc에서 다른 정보를 낸다. 일부 또는 전부 또는 완전히 다른 배열이 당신의 커널 구현에 따라 나올 수 있다.

     

    ▶ 필수 경고

    /proc 로서 무었을 할 수 있고 없고가 나타난 문서가 없으므로 가장 좋은 방법은 핵커의 방법이다. 즉 커널을 백업하고 /proc 파일시스템을 변경할 때는 상식에 입각해 실행하라. /proc를 통해 어플리케이션을 튜닝하는 주요한 예는 Kegel’s Web Hostel에 C10k 문제 문서에 있다.

 

3. /proc 구조

    아래는  i686 시스템의 리눅스  2.2 커널에서 /proc에서의 파일과 디렉토리를 설명하는 간단한 표이다.

     

    loadavg
                   지난 1,5,15 분간의 평균 시스템 부하
    uptime
                   부트 이래로  총 가동 시간(초) 과 프로세스에
                   의해 사용된 총 시간
    meminfo
                   메모리와 스왑의 사용 및 프리 바이트
    kmsg
                   커널에 의해 읽혀질 커널 메시지
    version
                   커널 또는/그리고 배포본의 버전
    cpuinfo
                   프로세서(CPU) 파라메터
    pci
                   현재의 PCI 슬롯 사용 정보
    self/
                   현재 /proc를 억세스하고 있는  프로세스 정보
    net/
                   네트워크 계층 설명
    scsi/
                   개개의 scsi 장치에 관한 정보를 갖는 파일들이
                   위치함.
    malloc
                   kmalloc 과  kfree 운영 정보 모니터링
    kcore
                   커널 코어 덤프
    modules
                   단일 적재 모듈에 관한 정보
    stat
                   일반 리눅스 통계
    devices
                   커널에 등록된 시스템 장치에 관한 정보
    interrupts
                   인터럽트 할당 정보
    filesystems
                   현재의 파일시스템 구현
    ksyms
                   커널에의해 익스포트된 심볼
    dma
                   사용중인 DMA 채널
    ioports
                   현재 사용중인 입출력 포트
    smp
                   SMP가 활성화 돼 있을 경우 각 CPU 정보
    cmdline
                   부트시에 커널에 넘겨진 파라메터
    sys/
                   중요한 커널과 네트워크 정보
    mtab
                   현재 마운트된 파일 시스템
    md
                   다중 디바이스 드라이버 정보
                   (활성화 되었을 경우)
    rc
                   확장 리얼타임 클럭
    locks
                   현재 락(locked)된 파일
    Numbered Directories
                   숫자로 된 디렉터리는 그 PID의 실행 프로세서 정보이다.

     

    다시 한번  /proc의 기능 및 그 내용들은 버전마다 다르다는 것을 명심하라.

    역자 주]
    /proc의 내용을 보려면  cat 명령을 사용한다. 예를 들어 현재 사용중인 인터럽트를 보면 아래와 같다.

            [root]/proc$ cat interrupts

                            CPU0
            0:      36935631        XT-PIC  timer
            1:      2                    XT-PIC  keyboard
            2:      0                    XT-PIC  cascade
            3:      1                    XT-PIC  serial
            10:     56316            XT-PIC  eth0
            11:     10                 XT-PIC  aha1542
            13:     0                   XT-PIC  fpu
            14:     382232          XT-PIC  ide0
            NMI:    0

 

4. 추가 정보

    아래는 보다 상세한 정보를 갖고 있는 리스트이다.

         The /proc File System
         The C10k problem

      Copyright (c) 1999, Jay Fink
      Published in Issue 46 of Linux Gazette, October 1999




▲ top

home으로...