>  기사  >  운영 및 유지보수  >  Linux에서 proc은 어떤 파일 시스템입니까?

Linux에서 proc은 어떤 파일 시스템입니까?

青灯夜游
青灯夜游원래의
2023-03-15 11:31:061887검색

Linux에서 proc은 일부 파일을 변경하여 커널의 실행 상태를 변경할 수 있는 가상 파일 시스템이자 제어 센터입니다. 또한 커널이 우리에게 제공하는 쿼리 센터이기도 합니다. 시스템 하드웨어 및 현재 운영 프로세스 정보. proc 시스템은 메모리에만 존재하며 시스템 커널 데이터에 접근하기 위한 인터페이스를 파일 시스템 형태로 제공한다. 커널 작동 상태는 일부 파일을 변경함으로써 변경될 수 있다.

Linux에서 proc은 어떤 파일 시스템입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

proc 파일 시스템이란

proc은 가상 파일 시스템이라고 하며 파일의 일부를 변경하여 커널의 실행 상태를 변경할 수 있는 제어 센터이기도 합니다. 커널을 사용하여 시스템 하드웨어와 현재 실행 중인 프로세스 정보를 볼 수 있습니다.

Linux의 많은 도구의 데이터 소스는 proc 디렉터리의 내용입니다. 예를 들어 lsmod 명령은 cat /proc/modules의 별칭입니다.

Linux에는 ptyfs, devfs, sysfs 및 procfs와 같은 파일 인터페이스와 통합된 작업을 사용하여 다양한 기능을 완료하는 데 사용되는 특별한 유형의 의사 파일 시스템이 있습니다. Procfs는 가장 널리 사용되는 의사 파일 시스템 중 하나입니다.

파일 시스템이라는 용어와 관련하여 /proc 디렉터리는 실제 파일 시스템이 아니라 가상 파일 시스템이며 때로는 프로세스 정보 의사 파일 시스템이라고도 합니다.

proc에 의해 배치된 데이터는 시스템 커널, 프로세스, 외부 장치 상태 및 네트워크 상태 등 모두 메모리에 있습니다. 이 디렉터리의 데이터는 메모리에 있으므로 하드 디스크 공간을 차지하지 않습니다.

procfs는 Linux 커널 정보에 대한 추상 파일 인터페이스이며, 수많은 커널 정보와 조정 가능한 매개변수가 일반 파일로 디렉토리 트리에 매핑되어 있어 echo 또는 cat과 같은 파일 작업 명령을 간단하고 직접 사용할 수 있습니다. 정보를 검색하고 조정했습니다. 동시에 procfs는 자체 커널 모듈이나 사용자 모드 프로그램이 procfs를 통해 매개변수를 전송할 수 있도록 인터페이스도 제공합니다. 오늘날의 Linux 시스템에서는 다수의 시스템 도구도 ps, lspci 등과 같은 procfs를 통해 커널 매개변수를 얻습니다. procfs가 없으면 제대로 작동하지 않을 수 있습니다.

proc 파일 시스템은 의사 파일 시스템으로 메모리에만 존재하며 외부 메모리 공간을 차지하지 않습니다. 파일 시스템 형태로 시스템 커널 데이터에 접근하기 위한 인터페이스를 제공합니다. 사용자와 응용 프로그램은 proc을 통해 시스템 정보를 얻고 커널의 특정 매개변수를 변경할 수 있습니다. 프로세스 등 시스템 정보는 동적으로 변경되므로 사용자나 애플리케이션이 proc 파일을 읽으면 proc 파일 시스템은 시스템 커널에서 필요한 정보를 동적으로 읽어 제출합니다.

리눅스 proc 파일 시스템에 대한 자세한 설명

리눅스 시스템의 /proc 디렉토리는 파일 시스템, 즉 proc 파일 시스템입니다. 다른 일반적인 파일 시스템과 달리 /proc은 가상 파일 시스템(즉, 가상 파일 시스템)으로 메모리에만 존재하며 외부 메모리 공간을 차지하지 않고 시스템 커널 데이터에 액세스합니다. 인터페이스)는 현재 커널 실행 상태를 저장하는 일련의 특수 파일을 저장합니다. 사용자는 이러한 파일을 사용하여 시스템 하드웨어 및 현재 실행 중인 프로세스에 대한 정보를 볼 수 있으며 일부를 변경하여 커널의 실행 상태를 변경할 수도 있습니다. 파일.

PID

디렉토리, 현재 시스템에서 실행 중인 각 프로세스는 /proc 아래에 해당 디렉토리가 있으며, 프로세스의 PID 번호는 디렉토리 이름입니다.

  • attr

    디렉토리는 SELinux 등과 같은 보안 모듈을 지원하기 위해 읽고 쓸 수 있는 보안 관련 속성을 제공합니다. CONFIG_SECURITY를 구성해야 합니다.

  • current

    파일, 현재 보안 관련 속성.

  • exec

    파일, execve 명령 실행 시 설정되는 보안 관련 속성입니다.

  • fscreate

    파일, open, mkdir, Symlink, mknod 명령 실행 시 설정되는 보안 관련 속성.

  • keycreate

    파일, add_key 명령 실행 시 설정되는 보안 관련 속성입니다.

  • prev

    파일, execve 명령이 마지막으로 실행되었을 때의 보안 관련 속성, 즉 이전 "/proc/[pid]/attr/current".

  • sockcreate

    파일, 소켓 생성 시 설정되는 보안 관련 속성입니다.

  • autogroup

    파일을 사용하여 자동 그룹에 할당된 CPU 대역폭을 수정할 수 있습니다. 이는 자동 그룹화에 대한 좋은 값을 설정하기 위해 "nice" 범위에 숫자를 작성하여 수행됩니다. 값 범위는 +19(낮은 우선순위) ~ -20(높은 우선순위)입니다. (이 범위를 벗어나는 값을 쓰면 EINVAL 오류와 함께 write(2)가 실패하게 됩니다.)

  • auxv

    파일, ELF 인터프리터 정보, 형식은 부호 없는 긴 유형 ID와 부호 없는 긴 유형 값, 그리고 마지막으로 두 개의 0(man getauxval)입니다.

  • cgroup

    파일 형식은 콜론으로 구분된 세 개의 필드, 즉 구조 ID, 하위 시스템 및 제어 그룹을 구성해야 합니다.

  • clear_refs

    파일, 쓰기 전용, 프로세스 소유자만 사용, 메모리 사용량을 추정하는 데 사용되는 PG_Referenced 및 ACCESSED/YOUNG 지우기, 네 가지 전략 1, 2, 3, 4가 있습니다. , 1은 관련된 모든 페이지를 지우는 것을 의미하고, 2는 관련 익명 페이지를 지우는 것을 의미하고, 3은 관련 매핑 파일 페이지를 지우는 것을 의미하며, 4는 관련된 소프트 더티 페이지를 지우는 것을 의미합니다. CONFIG_PROC_PAGE_MONITOR를 구성해야 합니다.

  • cmdline

    파일은 읽기 전용이며 시작 프로세스의 전체 명령줄 문자열을 저장합니다. 좀비 프로세스인 경우 이 파일은 비어 있습니다.

  • comm

    파일, 프로세스의 명령 이름, 다른 스레드(man clone prctl pthread_setname_np)가 다른 스레드 이름을 가질 수 있으며 위치는 "task/[tid]/comm"이며 이름 길이가 초과됩니다. TASK_COMM_LEN은 잘립니다.

  • coredump_filter

    파일, 코어 덤프 필터(예: 00000037(맨 코어)), 서로 다른 바이너리 비트는 서로 다른 정보 필터링을 나타냅니다.

  • cpuset

    파일, CPU와 메모리를 제어하는 ​​노드(man cpuset).

  • cwd -> /

    디렉토리, 현재 작업 디렉토리에 대한 심볼릭 링크.

  • environ

    파일, 환경 변수.

  • exe

    파일, 전체 명령에 심볼릭 링크되어 프로세스를 시작합니다. q

  • fd

    디렉토리. 현재 fd가 포함되어 있으며 실제 열린 파일에 대한 심볼릭 링크입니다.

  • fdinfo

    디렉토리에는 현재 fd의 정보가 포함되어 있으며 fd 정보의 유형이 다릅니다.

  • gid_map

    파일, 사용자 네임스페이스(man user_namespaces)에서 매핑된 그룹 ID에 대한 정보.

  • io

    파일, IO 정보.

  • limits

    파일, 리소스 소프트 및 하드 제한(man getrlimit).

  • loginuid

    파일을 사용하면 감사 데몬은 커널에서 감사 도구를 활성화합니다. 커널에서 감사가 활성화되기 전에 실행 중인 모든 프로세스는 loginuid 4294967295를 갖게 됩니다.
    4294967295는 (부호 없는 긴) -1입니다. -1은 loginuid가 설정되지 않았음을 의미합니다. 이는 로그인 프로세스(예: 데몬)에 의해 생성되지 않은 프로세스의 정상적인 동작입니다. loginuid의 기본값은 -1입니다. 로그인할 때마다(tty/DM에서/ssh를 통해) pam_loginuid 모듈은 이를 사용자 ID로 변경하고 해당 값은 하위 프로세스에 의해 유지됩니다.

  • map_files

    디렉터리, 일부 메모리 매핑된 파일(man mmap) 포함, 파일 이름 형식은 BeginAddress-EndAddress, 매핑된 파일에 대한 심볼릭 링크, CONFIG_CHECKPOINT_RESTORE를 구성해야 합니다.

  • maps

    파일, 메모리 매핑 정보.

  • mem

    파일, 열기, 읽기, lseek를 통해 프로세스의 메모리 페이지에 액세스하는 데 사용됩니다.

  • mountinfo

    파일, 마운트 정보, 형식은 44 41 253:1 // rw,relatime shared:35 master:1 - ext4 /dev/vda1 rw,data=ordered, 공백을 구분 기호로 사용 , 왼쪽에서 오른쪽으로 각 필드의 의미는 고유 마운트 ID, 상위 마운트 ID, 파일 시스템의 장치 마스터 및 슬레이브 번호, 파일 시스템에 마운트된 루트 노드, 프로세스 루트 노드에 상대적인 마운트 지점입니다. , 마운트 권한, 선택적 구성 및 대시와 같은 마운트 구성은 이전 선택적 구성, 파일 시스템 유형, 파일 시스템별 마운트 소스 또는 없음 또는 추가 구성의 끝을 나타냅니다.

  • mounts

    파일, 현재 프로세스에 마운트된 파일 시스템 목록, /dev/vda1 / ext4 rw,relatime,data=ordered 0 0 형식 참조(man fstab).

  • mountstats

    파일, 마운트 정보, fstype ext4 [통계]를 사용하여 마운트된 장치 /dev/vda1 형식.

  • net

    디렉토리. 네트워크 관련 파일과 프로세스 디렉토리를 저장합니다.

  • ns

    디렉토리는 각 네임스페이스의 항목을 저장합니다. 자세한 내용은 (man 네임스페이스)를 참조하세요.

  • numa_maps

    파일, numa는 비균일 메모리 액세스입니다. 자세한 내용은 (man numa)를 참조하세요.

  • oom_adj

    파일에서 OOM 점수를 조정합니다. OOM이 발생하면 OOM Killer는 OOM 점수를 기준으로 높은 점수로 프로세스를 종료하고 상위 프로세스의 설정을 상속합니다.

  • oom_score

    파일, OOM 점수.

  • oom_score_adj

    파일에서 OOM 점수 범위는 -1000부터 1000까지입니다.

  • pagemap

    파일은 현재 프로세스의 가상 메모리 페이지 매핑 정보를 CONFIG_PROC_PAGE_MONITOR로 설정해야 합니다.

  • personality

    파일을 사용하여 프로세스 성격 플래그를 /proc에 표시할 수 있습니다. 프로세스의 성격은 민감할 수 있으므로(예: READ_IMPLIES_EXEC) 이 파일은 프로세스 소유자만 읽을 수 있습니다.

  • projid_map

    파일은 사용자 및 그룹 ID 매핑과 유사하며 사용자 네임스페이스에 대한 프로젝트 ID 매핑을 생성할 수 있습니다. (프로젝트 ID는 디스크 할당량에 사용됩니다. setquota(8) 및 quotactl(2)을 참조하십시오.)

  • patch_state

    파일, 사용자가 어떤 작업을 결정할 수 있도록 각 작업의 패치 상태 값을 노출합니다. 패치 작업이 완료되지 않도록 합니다.

  • root -> /

    디렉터리, 현재 프로세스의 루트 디렉터리에 연결됩니다.

  • sched

    파일, 프로세스의 일정 통계 및 상태 정보.

  • schedstat

    파일, 프로세스의 일정 정보.

  • sessionid

    파일, 프로세스 세션 ID, 기본값은 4294967295입니다.

  • setgroups

    파일에서 사용자 네임스페이스에 프로세스 pid가 포함된 프로세스가 setgroups(2) 시스템 호출을 사용하도록 허용된 경우 /proc/[pid]/setgroups 파일은 " 문자열을 표시합니다. 허용"; 사용자의 네임스페이스에서 setgroups(2)가 허용되지 않으면 "거부"가 표시됩니다. /proc/[pid]/setgroups 파일의 값에 관계없이(그리고 프로세스의 기능에 관계없이) /proc/[pid]/gid_map이 설정되지 않은 경우 setgroups(2) 호출이 허용되지 않습니다.

  • smaps

    파일, 메모리 매핑 정보, pmap 명령과 유사하게 CONFIG_PROC_PAGE_MONITOR를 구성해야 합니다. 커널 공간의 함수 호출 스택인

  • stack

    파일은 CONFIG_STACKTRACE로 구성해야 합니다.

  • stat

    파일, 프로세스 상태 정보, ps 명령에 사용됩니다.

  • statm

    파일, 프로세스 메모리 사용량 정보, 공백으로 구분된 7개의 숫자, 왼쪽에서 오른쪽으로 각각 전체 프로그램 크기, 상주 메모리 크기, 공유 메모리 페이지 크기, 텍스트 코드, 라이브러리, 데이터를 나타냅니다. + 스택, 더티 페이지.

  • status

    파일, 읽을 수 있는 프로세스 관련 정보.

  • syscall

    파일, 시스템 콜 관련 정보, CONFIG_HAVE_ARCH_TRACEHOOK 설정이 필요합니다.

  • task

    디렉터리, 각 스레드에는 하위 디렉터리가 있으며 디렉터리 이름은 스레드 ID입니다.

  • timers

    파일, 타이머 ID, 신호 및 기타 정보를 포함한 POSIT 타이머 목록.

  • uid_map

    파일, 사용자 ID 매핑 정보입니다.

  • wchan

    파일은 do_wait와 같이 프로세스가 절전 모드일 때 커널의 해당 위치를 상징적으로 표현합니다.

acpi/wakeup

파일, 장치 깨우기 작업.

buddyinfo

메모리 조각화 문제 진단을 위한 파일입니다.

bus

디렉토리, 설치된 버스.

  • input/devices

    파일을 사용하여 장치 정보를 입력하세요.

  • input/handlers

    파일, 핸들 정보.

  • pci/00/00.0-08.0

    파일, pci 소켓 정보.

  • pci/devices

    파일, pci 장치 정보.

cgroups

cgroups 정보 요약, 필드 subsys_name 계층 num_cgroups가 활성화되었습니다.

cmdline

파일, lilo, grub 및 기타 부팅 관리 모듈과 같이 시스템이 시작될 때 Linux 커널로 전달되는 매개변수입니다.

consoles

파일, 시스템 콘솔 /dev/console에서 현재 사용되는 장치 줄 문자를 보려면 /proc/console 파일을 보면 됩니다.

cpuinfo

파일, CPU 및 시스템 아키텍처 정보, lscpu 명령이 이 파일을 사용합니다.

crypto

파일, Kernel Crypto API에서 제공하는 암호화 목록.

devices

파일, 장치 관련 정보.

diskstats

파일, 디스크 상태.

dma

파일, dma는 직접 메모리 액세스입니다.

driver

  • nvram

    파일은 PC 및 Ataris의 실시간 시계에서 비휘발성 메모리에 대한 액세스를 제공합니다. PC에서는 이를 CMOS 메모리라고 부르며 BIOS 구성 옵션을 저장합니다.

  • rtc

    파일, 시스템 런타임 구성.

execdomains

파일, 실행 도메인 목록.

fb

파일, 프레임 버퍼 정보, CONFIG_FB 설정이 필요합니다.

filesystems

파일, 커널에서 지원하는 파일 시스템 유형(man 파일 시스템).

fs

디렉터리, 마운트된 파일 시스템 정보.

interrupts

파일, 각 CPU의 각 IO에 대한 인터럽트 정보. irq 번호, 각 CPU에서 irq를 처리한 횟수, 인터럽트 컨트롤러 이름, irq 이름, 드라이버가 irq를 등록하는 데 사용하는 이름이 차례로 표시됩니다.

iomem

파일, IO 메모리 매핑 정보.

ioports

파일, IO 포트 정보.

irq

등록된 각 irq에 대해 아래에 irq 번호로 명명된 하위 디렉터리인 디렉터리가 생성됩니다.

kallsyms

파일. 동적 링크 및 모듈 바인딩 기호 정의에 사용됩니다.

kcore

파일, ELF 형식의 시스템 물리적 메모리입니다.

keys

파일은 읽기 스레드가 볼 수 있는 권한이 있는 키 목록을 노출하고 각 키에 대한 다양한 정보를 제공합니다. 스레드는 이 파일에 표시되는 키를 소유할 필요가 없습니다.

key-users

파일에는 시스템에 하나 이상의 키가 있는 각 사용자 ID에 대한 다양한 정보가 나열되어 있습니다.

kmsg

파일, 커널 로그 정보, dmsg 명령이 이 파일을 사용합니다.

kpagecount

파일에서 각 물리적 페이지 프레임이 매핑되는 횟수는 CONFIG_PROC_PAGE_MONITOR로 구성되어야 합니다.

kpageflags

파일(각 물리적 페이지 프레임의 마스크)을 CONFIG_PROC_PAGE_MONITOR로 구성해야 합니다.

loadavg

파일, 현재 시스템 로드.

locks

파일, 현재 파일 잠금 상태.

mdstat

파일, 가상기기 정보(소프트레이드 등).

meminfo

파일, 시스템 메모리 사용량 통계, 이 파일은 free 명령에서 사용됩니다.

misc

파일, 기타 주요 장치에 등록된 드라이버(장치 번호 10).

modules

파일, 시스템에서 로드한 모듈 정보, 관련 명령은 lsmod입니다.

mounts -> self/mounts

파일, /self/mounts에 연결됩니다.

mtrr

파일, 메모리 유형 범위 레지스터.

net -> self/net

디렉터리, 네트워크 의사 파일 시스템과 관련됩니다.

pagetypeinfo

파일, 기타 페이지 할당자 정보.

partitions

파일, 파티션 정보입니다.

sched_debug

파일, 스케줄러 디버그 정보.

schedstat

파일, 스케줄러 정보.

scsi

디렉토리, SCSI 인터페이스 장치.

self -> 22699

디렉터리, 현재 프로세스가 있는 디렉터리에 연결됩니다.

slabinfo

파일, 커널 캐시 정보, CONFIG_SLAB 구성이 필요합니다.

softirqs

파일, 시스템 소프트 인터럽트 정보.

stat

파일, 시스템 및 커널에 대한 통계입니다.

swaps

파일, 스왑 파티션 사용량.

sys

디렉토리, 시스템 변수 관련 정보입니다.

sysrq-trigger

파일, 쓰기 가능, 시스템 호출을 트리거합니다.

sysvipc

디렉토리에는 System V IPC 개체인 msg, sem 및 shm의 세 가지 파일이 포함되어 있습니다.

timer_list

파일, 실행 중인 타이머 목록.

timer_stats

파일, 타이머 상태.

tty

디렉토리, tty 장치 관련.

uptime

파일, 시스템 업데이트 시간 및 프로세스 유휴 시간.

version

파일, 커널 버전 정보입니다.

vmallocinfo

파일, 가상 메모리 할당 정보입니다.

vmstat

파일, 메모리 통계, 키-값 쌍 형식으로 표시됩니다.

zoneinfo

파일, 메모리 블록 정보, 가상 메모리의 동작을 분석하는 데 사용됩니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 Linux에서 proc은 어떤 파일 시스템입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.