Linux에서 proc은 일부 파일을 변경하여 커널의 실행 상태를 변경할 수 있는 가상 파일 시스템이자 제어 센터입니다. 또한 커널이 우리에게 제공하는 쿼리 센터이기도 합니다. 시스템 하드웨어 및 현재 운영 프로세스 정보. proc 시스템은 메모리에만 존재하며 시스템 커널 데이터에 접근하기 위한 인터페이스를 파일 시스템 형태로 제공한다. 커널 작동 상태는 일부 파일을 변경함으로써 변경될 수 있다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
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 번호는 디렉토리 이름입니다.
디렉토리는 SELinux 등과 같은 보안 모듈을 지원하기 위해 읽고 쓸 수 있는 보안 관련 속성을 제공합니다. CONFIG_SECURITY를 구성해야 합니다.
파일, 현재 보안 관련 속성.
파일, execve 명령 실행 시 설정되는 보안 관련 속성입니다.
파일, open, mkdir, Symlink, mknod 명령 실행 시 설정되는 보안 관련 속성.
파일, add_key 명령 실행 시 설정되는 보안 관련 속성입니다.
파일, execve 명령이 마지막으로 실행되었을 때의 보안 관련 속성, 즉 이전 "/proc/[pid]/attr/current".
파일, 소켓 생성 시 설정되는 보안 관련 속성입니다.
파일을 사용하여 자동 그룹에 할당된 CPU 대역폭을 수정할 수 있습니다. 이는 자동 그룹화에 대한 좋은 값을 설정하기 위해 "nice" 범위에 숫자를 작성하여 수행됩니다. 값 범위는 +19(낮은 우선순위) ~ -20(높은 우선순위)입니다. (이 범위를 벗어나는 값을 쓰면 EINVAL 오류와 함께 write(2)가 실패하게 됩니다.)
파일, ELF 인터프리터 정보, 형식은 부호 없는 긴 유형 ID와 부호 없는 긴 유형 값, 그리고 마지막으로 두 개의 0(man getauxval)입니다.
파일 형식은 콜론으로 구분된 세 개의 필드, 즉 구조 ID, 하위 시스템 및 제어 그룹을 구성해야 합니다.
파일, 쓰기 전용, 프로세스 소유자만 사용, 메모리 사용량을 추정하는 데 사용되는 PG_Referenced 및 ACCESSED/YOUNG 지우기, 네 가지 전략 1, 2, 3, 4가 있습니다. , 1은 관련된 모든 페이지를 지우는 것을 의미하고, 2는 관련 익명 페이지를 지우는 것을 의미하고, 3은 관련 매핑 파일 페이지를 지우는 것을 의미하며, 4는 관련된 소프트 더티 페이지를 지우는 것을 의미합니다. CONFIG_PROC_PAGE_MONITOR를 구성해야 합니다.
파일은 읽기 전용이며 시작 프로세스의 전체 명령줄 문자열을 저장합니다. 좀비 프로세스인 경우 이 파일은 비어 있습니다.
파일, 프로세스의 명령 이름, 다른 스레드(man clone prctl pthread_setname_np)가 다른 스레드 이름을 가질 수 있으며 위치는 "task/[tid]/comm"이며 이름 길이가 초과됩니다. TASK_COMM_LEN은 잘립니다.
파일, 코어 덤프 필터(예: 00000037(맨 코어)), 서로 다른 바이너리 비트는 서로 다른 정보 필터링을 나타냅니다.
파일, CPU와 메모리를 제어하는 노드(man cpuset).
디렉토리, 현재 작업 디렉토리에 대한 심볼릭 링크.
파일, 환경 변수.
파일, 전체 명령에 심볼릭 링크되어 프로세스를 시작합니다. q
디렉토리. 현재 fd가 포함되어 있으며 실제 열린 파일에 대한 심볼릭 링크입니다.
디렉토리에는 현재 fd의 정보가 포함되어 있으며 fd 정보의 유형이 다릅니다.
파일, 사용자 네임스페이스(man user_namespaces)에서 매핑된 그룹 ID에 대한 정보.
파일, IO 정보.
파일, 리소스 소프트 및 하드 제한(man getrlimit).
파일을 사용하면 감사 데몬은 커널에서 감사 도구를 활성화합니다. 커널에서 감사가 활성화되기 전에 실행 중인 모든 프로세스는 loginuid 4294967295를 갖게 됩니다.
4294967295는 (부호 없는 긴) -1입니다. -1은 loginuid가 설정되지 않았음을 의미합니다. 이는 로그인 프로세스(예: 데몬)에 의해 생성되지 않은 프로세스의 정상적인 동작입니다. loginuid의 기본값은 -1입니다. 로그인할 때마다(tty/DM에서/ssh를 통해) pam_loginuid 모듈은 이를 사용자 ID로 변경하고 해당 값은 하위 프로세스에 의해 유지됩니다.
디렉터리, 일부 메모리 매핑된 파일(man mmap) 포함, 파일 이름 형식은 BeginAddress-EndAddress, 매핑된 파일에 대한 심볼릭 링크, CONFIG_CHECKPOINT_RESTORE를 구성해야 합니다.
파일, 메모리 매핑 정보.
파일, 열기, 읽기, lseek를 통해 프로세스의 메모리 페이지에 액세스하는 데 사용됩니다.
파일, 마운트 정보, 형식은 44 41 253:1 // rw,relatime shared:35 master:1 - ext4 /dev/vda1 rw,data=ordered, 공백을 구분 기호로 사용 , 왼쪽에서 오른쪽으로 각 필드의 의미는 고유 마운트 ID, 상위 마운트 ID, 파일 시스템의 장치 마스터 및 슬레이브 번호, 파일 시스템에 마운트된 루트 노드, 프로세스 루트 노드에 상대적인 마운트 지점입니다. , 마운트 권한, 선택적 구성 및 대시와 같은 마운트 구성은 이전 선택적 구성, 파일 시스템 유형, 파일 시스템별 마운트 소스 또는 없음 또는 추가 구성의 끝을 나타냅니다.
파일, 현재 프로세스에 마운트된 파일 시스템 목록, /dev/vda1 / ext4 rw,relatime,data=ordered 0 0 형식 참조(man fstab).
파일, 마운트 정보, fstype ext4 [통계]를 사용하여 마운트된 장치 /dev/vda1 형식.
디렉토리. 네트워크 관련 파일과 프로세스 디렉토리를 저장합니다.
디렉토리는 각 네임스페이스의 항목을 저장합니다. 자세한 내용은 (man 네임스페이스)를 참조하세요.
파일, numa는 비균일 메모리 액세스입니다. 자세한 내용은 (man numa)를 참조하세요.
파일에서 OOM 점수를 조정합니다. OOM이 발생하면 OOM Killer는 OOM 점수를 기준으로 높은 점수로 프로세스를 종료하고 상위 프로세스의 설정을 상속합니다.
파일, OOM 점수.
파일에서 OOM 점수 범위는 -1000부터 1000까지입니다.
파일은 현재 프로세스의 가상 메모리 페이지 매핑 정보를 CONFIG_PROC_PAGE_MONITOR로 설정해야 합니다.
파일을 사용하여 프로세스 성격 플래그를 /proc에 표시할 수 있습니다. 프로세스의 성격은 민감할 수 있으므로(예: READ_IMPLIES_EXEC) 이 파일은 프로세스 소유자만 읽을 수 있습니다.
파일은 사용자 및 그룹 ID 매핑과 유사하며 사용자 네임스페이스에 대한 프로젝트 ID 매핑을 생성할 수 있습니다. (프로젝트 ID는 디스크 할당량에 사용됩니다. setquota(8) 및 quotactl(2)을 참조하십시오.)
파일, 사용자가 어떤 작업을 결정할 수 있도록 각 작업의 패치 상태 값을 노출합니다. 패치 작업이 완료되지 않도록 합니다.
디렉터리, 현재 프로세스의 루트 디렉터리에 연결됩니다.
파일, 프로세스의 일정 통계 및 상태 정보.
파일, 프로세스의 일정 정보.
파일, 프로세스 세션 ID, 기본값은 4294967295입니다.
파일에서 사용자 네임스페이스에 프로세스 pid가 포함된 프로세스가 setgroups(2) 시스템 호출을 사용하도록 허용된 경우 /proc/[pid]/setgroups 파일은 " 문자열을 표시합니다. 허용"; 사용자의 네임스페이스에서 setgroups(2)가 허용되지 않으면 "거부"가 표시됩니다. /proc/[pid]/setgroups 파일의 값에 관계없이(그리고 프로세스의 기능에 관계없이) /proc/[pid]/gid_map이 설정되지 않은 경우 setgroups(2) 호출이 허용되지 않습니다.
파일, 메모리 매핑 정보, pmap 명령과 유사하게 CONFIG_PROC_PAGE_MONITOR를 구성해야 합니다. 커널 공간의 함수 호출 스택인
파일은 CONFIG_STACKTRACE로 구성해야 합니다.
파일, 프로세스 상태 정보, ps 명령에 사용됩니다.
파일, 프로세스 메모리 사용량 정보, 공백으로 구분된 7개의 숫자, 왼쪽에서 오른쪽으로 각각 전체 프로그램 크기, 상주 메모리 크기, 공유 메모리 페이지 크기, 텍스트 코드, 라이브러리, 데이터를 나타냅니다. + 스택, 더티 페이지.
파일, 읽을 수 있는 프로세스 관련 정보.
파일, 시스템 콜 관련 정보, CONFIG_HAVE_ARCH_TRACEHOOK 설정이 필요합니다.
디렉터리, 각 스레드에는 하위 디렉터리가 있으며 디렉터리 이름은 스레드 ID입니다.
파일, 타이머 ID, 신호 및 기타 정보를 포함한 POSIT 타이머 목록.
파일, 사용자 ID 매핑 정보입니다.
파일은 do_wait와 같이 프로세스가 절전 모드일 때 커널의 해당 위치를 상징적으로 표현합니다.
파일, 장치 깨우기 작업.
메모리 조각화 문제 진단을 위한 파일입니다.
디렉토리, 설치된 버스.
파일을 사용하여 장치 정보를 입력하세요.
파일, 핸들 정보.
파일, pci 소켓 정보.
파일, pci 장치 정보.
cgroups 정보 요약, 필드 subsys_name 계층 num_cgroups가 활성화되었습니다.
파일, lilo, grub 및 기타 부팅 관리 모듈과 같이 시스템이 시작될 때 Linux 커널로 전달되는 매개변수입니다.
파일, 시스템 콘솔 /dev/console에서 현재 사용되는 장치 줄 문자를 보려면 /proc/console 파일을 보면 됩니다.
파일, CPU 및 시스템 아키텍처 정보, lscpu 명령이 이 파일을 사용합니다.
파일, Kernel Crypto API에서 제공하는 암호화 목록.
파일, 장치 관련 정보.
파일, 디스크 상태.
파일, dma는 직접 메모리 액세스입니다.
파일은 PC 및 Ataris의 실시간 시계에서 비휘발성 메모리에 대한 액세스를 제공합니다. PC에서는 이를 CMOS 메모리라고 부르며 BIOS 구성 옵션을 저장합니다.
파일, 시스템 런타임 구성.
파일, 실행 도메인 목록.
파일, 프레임 버퍼 정보, CONFIG_FB 설정이 필요합니다.
파일, 커널에서 지원하는 파일 시스템 유형(man 파일 시스템).
디렉터리, 마운트된 파일 시스템 정보.
파일, 각 CPU의 각 IO에 대한 인터럽트 정보. irq 번호, 각 CPU에서 irq를 처리한 횟수, 인터럽트 컨트롤러 이름, irq 이름, 드라이버가 irq를 등록하는 데 사용하는 이름이 차례로 표시됩니다.
파일, IO 메모리 매핑 정보.
파일, IO 포트 정보.
등록된 각 irq에 대해 아래에 irq 번호로 명명된 하위 디렉터리인 디렉터리가 생성됩니다.
파일. 동적 링크 및 모듈 바인딩 기호 정의에 사용됩니다.
파일, ELF 형식의 시스템 물리적 메모리입니다.
파일은 읽기 스레드가 볼 수 있는 권한이 있는 키 목록을 노출하고 각 키에 대한 다양한 정보를 제공합니다. 스레드는 이 파일에 표시되는 키를 소유할 필요가 없습니다.
파일에는 시스템에 하나 이상의 키가 있는 각 사용자 ID에 대한 다양한 정보가 나열되어 있습니다.
파일, 커널 로그 정보, dmsg 명령이 이 파일을 사용합니다.
파일에서 각 물리적 페이지 프레임이 매핑되는 횟수는 CONFIG_PROC_PAGE_MONITOR로 구성되어야 합니다.
파일(각 물리적 페이지 프레임의 마스크)을 CONFIG_PROC_PAGE_MONITOR로 구성해야 합니다.
파일, 현재 시스템 로드.
파일, 현재 파일 잠금 상태.
파일, 가상기기 정보(소프트레이드 등).
파일, 시스템 메모리 사용량 통계, 이 파일은 free 명령에서 사용됩니다.
파일, 기타 주요 장치에 등록된 드라이버(장치 번호 10).
파일, 시스템에서 로드한 모듈 정보, 관련 명령은 lsmod입니다.
파일, /self/mounts에 연결됩니다.
파일, 메모리 유형 범위 레지스터.
디렉터리, 네트워크 의사 파일 시스템과 관련됩니다.
파일, 기타 페이지 할당자 정보.
파일, 파티션 정보입니다.
파일, 스케줄러 디버그 정보.
파일, 스케줄러 정보.
디렉토리, SCSI 인터페이스 장치.
디렉터리, 현재 프로세스가 있는 디렉터리에 연결됩니다.
파일, 커널 캐시 정보, CONFIG_SLAB 구성이 필요합니다.
파일, 시스템 소프트 인터럽트 정보.
파일, 시스템 및 커널에 대한 통계입니다.
파일, 스왑 파티션 사용량.
디렉토리, 시스템 변수 관련 정보입니다.
파일, 쓰기 가능, 시스템 호출을 트리거합니다.
디렉토리에는 System V IPC 개체인 msg, sem 및 shm의 세 가지 파일이 포함되어 있습니다.
파일, 실행 중인 타이머 목록.
파일, 타이머 상태.
디렉토리, tty 장치 관련.
파일, 시스템 업데이트 시간 및 프로세스 유휴 시간.
파일, 커널 버전 정보입니다.
파일, 가상 메모리 할당 정보입니다.
파일, 메모리 통계, 키-값 쌍 형식으로 표시됩니다.
파일, 메모리 블록 정보, 가상 메모리의 동작을 분석하는 데 사용됩니다.
관련 추천: "Linux 비디오 튜토리얼"
위 내용은 Linux에서 proc은 어떤 파일 시스템입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!