1.linux /proc 디렉토리 소개
Linux 커널은 /proc 파일 시스템을 통해 런타임에 커널의 내부 데이터 구조에 액세스하고 커널 설정을 변경하는 메커니즘을 제공합니다. proc 파일 시스템은 메모리에만 존재하고 외부 메모리 공간을 차지하지 않는 의사 파일 시스템입니다. 파일 시스템 형태로 시스템 커널 데이터에 접근하기 위한 인터페이스를 제공합니다.
사용자와 애플리케이션은 proc을 통해 시스템 정보를 얻고 커널의 특정 매개변수를 변경할 수 있습니다. 프로세스 등 시스템 정보는 동적으로 변경되므로 사용자나 애플리케이션이 proc 파일을 읽으면 proc 파일 시스템은 시스템 커널에서 필요한 정보를 동적으로 읽어 제출합니다. 커널 구성 및 로드된 모듈에 따라 아래 나열된 파일 또는 하위 폴더 중 일부가 시스템에 존재하지 않을 수도 있습니다. 또한 /proc 아래에는 net, scsi 및 sys라는 매우 중요한 세 개의 디렉터리가 있습니다. sys 디렉토리는 쓰기 가능하며 커널 매개변수에 액세스하거나 수정하는 데 사용할 수 있는 반면, net 및 scsi는 커널 구성에 따라 다릅니다. 예를 들어, 시스템이 scsi를 지원하지 않으면 scsi 디렉토리가 존재하지 않습니다.
위에 소개한 디렉토리 외에도 숫자로 명명된 디렉토리도 있는데, 이는 프로세스 디렉토리입니다. 현재 시스템에서 실행 중인 각 프로세스에는 /proc 아래에 해당 디렉터리가 있으며, 해당 디렉터리 이름은 프로세스의 pid 번호입니다. 이는 프로세스 정보를 읽기 위한 인터페이스입니다. self 디렉터리는 링크인 프로세스 자체를 읽기 위한 정보 인터페이스입니다.
2. /proc 디렉토리의 하위 파일 또는 하위 폴더의 역할
/proc/buddyinfo 메모리 조각화 문제와 관련하여 각 메모리 영역의 각 주문에 사용할 수 있는 블록 수
/proc/cmdline이 전달됩니다. 커널 매개변수 정보
/proc/cpuinfo CPU 정보
/proc/crypto 설치된 모든 암호화 비밀번호 및 커널에서 사용하는 세부정보
/proc/devices 로드된 장치 및 분류
/proc/dma 등록된 isa dma 채널 목록
/proc/execdomains 현재 Linux 커널에서 지원되는 실행 도메인
/proc/fb 이를 제어하는 번호 및 드라이버를 포함한 프레임 버퍼 장치 목록
/proc/filesystems 현재 커널에서 지원되는 파일 시스템 유형
/proc/interrupts x86 아키텍처
/proc/iomem의 각 irq에 대한 인터럽트 시스템 메모리에 있는 각 물리적 장치의 현재 매핑
/proc/ioports 장치의 입력 및 출력에 사용되는 등록된 포트 범위
/proc/kcore는 시스템의 물리적 메모리를 나타냅니다. , 코어 파일 형식으로 저장되며 내부에 표시되는 바이트 수는 RAM 크기에 4kb
/proc/kmsg를 더한 것과 같습니다. 커널에서 생성된 정보는 /sbin/klogd 또는 /bin/dmesg
/를 통해 처리될 수 있습니다. proc/loadavg 지난 기간의 CPU 및 IO 상태에서 파생된 로드 상태는 uptime 명령과 관련이 있습니다
/proc/locks 커널에 의해 잠긴 파일 목록
/proc/mdstat 다중 하드 디스크, raid 구성 정보 (md=다중 디스크)
/proc /meminfo 램 사용 관련 정보
/proc/misc 기타 주요 장치에 등록된 드라이버(장치 번호 10)
/proc/modules 커널에 로드된 모든 모듈 목록
/proc/mounts 모두 시스템에서 사용되는 마운트
/proc/mtrr 시스템에서 사용되는 메모리 유형 범위 레지스터(mtrrs)
/proc/partitions 파티션의 블록 할당 정보
/proc/pci 시스템의 PCI 장치 목록
/proc/slabinfo 모두 활성 시스템의 slab 캐시 정보
/proc/stat 모든 CPU 활동 정보
/proc/sysrq-trigger echo 명령을 사용하여 이 파일을 작성하면 원격 루트 사용자는 대부분의 시스템 요청 키 명령을 로컬 터미널에서 실행하는 것처럼 실행할 수 있습니다. . 이 파일에 쓰려면 /proc/sys/kernel/sysrq가 0으로 설정되어서는 안 됩니다. 이 파일은 루트에서도 읽을 수 없습니다
/proc/uptime 시스템이 실행된 시간
/proc/swap 스왑 공간 사용량
/proc/version Linux 커널 버전 및 gcc 버전
/proc/bus 시스템 버스(버스) 정보 , pci/usb 등
/proc/driver 드라이버 정보
/proc/fs 파일 시스템 정보
/proc/ide IDE 장치 정보
/proc/irq 인터럽트 요청 장치 정보
/proc/net 네트워크 카드 장치 정보
/proc/ scsi scsi 장치 정보
/proc/tty tty 장치 정보
/proc/net/dev 네트워크 어댑터 및 통계 정보 표시
/proc/vmstat 가상 메모리 통계
/proc/vmcore 커널 패닉 시 메모리 이미지
/proc/ diskstats 디스크 정보 얻기
/proc/schedstat 커널 스케줄러의 통계 정보
/proc/zoneinfo 가상 메모리 동작을 분석하는 데 유용한 메모리 공간의 통계 정보를 표시합니다.
다음은 /proc 디렉토리에 있는 프로세스 n의 정보입니다
/proc/n pid n
/proc/n/cmdline 프로세스 시작 명령에 대한 프로세스 정보
/proc/n/cwd 프로세스의 현재 작업 디렉터리에 대한 링크
/proc/n/environ 프로세스 환경 변수 목록
/proc/ n/exe 프로세스 실행 명령 파일에 대한 링크
/proc/n/fd는 프로세스와 관련된 모든 파일 설명자를 포함합니다.
/proc/n/maps 프로세스와 관련된 메모리 매핑 정보
/proc/n/mem은 메모리를 나타냅니다. 프로세스에 의해 보유되며 읽을 수 없습니다.
/proc/n/root는 프로세스의 루트 디렉터리에 연결되어 있습니다.
/proc/n/stat는 프로세스의 상태입니다.
/proc/n/statm은 메모리의 상태입니다. 프로세스에서 사용되는
/proc/n/status는 stat/statm보다 읽기 쉬운 프로세스 상태 정보입니다.
/proc/self는 현재 실행 중인 프로세스에 연결됩니다
3. 아래의 모든 파일을 나열하세요. /proc/
yafang@qa:~$ ls /proc/ 1 16819 21242 2180 2494 8768 interrupts partitions 116 16820 21244 2181 2524 885 iomem sched_debug 11740 17901 21245 21810 2525 acpi ioports scsi 11742 17903 21247 21812 3 asound irq self 11743 17904 2131 21813 39 buddyinfo kallsyms slabinfo 13452 18362 21319 21923 4 bus kcore stat 13454 18364 2132 2193 41 cgroups key-users swaps 13455 18365 2139 21933 42 cmdline kmsg sys 149 19451 2142 2209 5 cpuinfo kpagecount sysrq-trigger 150 19453 21572 2212 5330 crypto kpageflags sysvipc 151 19454 21574 2219 596 devices loadavg timer_list 152 2 21575 2243 597 diskstats locks timer_stats 15771 2083 2158 2260 6 dma meminfo tty 15773 2092 21625 2261 617 driver misc uptime 15774 2101 21627 2262 619 execdomains modules version 16232 21112 21628 2263 7 fb mounts vmallocinfo 16234 21115 2165 2264 804 filesystems mtrr vmstat 16235 21116 2167 2265 8765 fs net zoneinfo 16811 2112 2177 2338 8767 ide pagetypeinfo
yafang@qa:~$ ls /proc/sys debug dev fs kernel net vm[code]
3. 查看网卡设备信息
[code]yafang@qa:~$ ls /proc/net anycast6 ip6_flowlabel netfilter raw6 sockstat6 udplite arp ip6_mr_cache netlink route softnet_stat udplite6 dev ip6_mr_vif netstat rt6_stats stat unix dev_mcast ip_mr_cache packet rt_acct tcp vlan dev_snmp6 ip_mr_vif protocols rt_cache tcp6 wireless if_inet6 ipv6_route psched snmp tr_rif igmp mcfilter ptype snmp6 udp igmp6 mcfilter6 raw sockstat udp6
4. 查看scsi设备信息
yafang@qa:~$ ls /proc/scsi device_info scsi
5. 查看所有加载到内核的模块列表
root@bdsp-a-2-1-2:~# cat /proc/modules bdspboard 8486 2 dspcontrol, live 0xe134c000 dspcontrol 9575 1 clkmon, live 0xe135b000 clkmon 6765 1 - live 0xe136c000 diagint 6635 1 - live 0xe1379000 bdsprio 10775 2 srioif,tsi577, live 0xe9389000 tsi577 17998 1 srioif, live 0xe939e000 srioif 7329 0 - live 0xe93b2000 linux_kernel_bde 54666 1 linux_user_bde, live 0xf1417000 (p) linux_user_bde 17849 0 - live 0xf1427000 (p) root@bdsp-a-2-1-2:~#
6. 查看已经加载的设备并分类
root@bcnmb-a:~# cat /proc/devicescharacter devices: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttys 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 89 i2c 90 mtd116 linux-user-bde2117 linux-kernel-bde2126 linux-user-bde127 linux-kernel-bde128 ptm136 pts180 usb189 usb_device245 ext_alarm251 ipmidev252 usb_endpoint253 usbmon254 rtcblock devices: 1 ramdisk 8 sd 31 mtdblock 65 sd 66 sd 67 sd 68 sd 69 sd 70 sd 71 sd128 sd129 sd130 sd131 sd132 sd133 sd134 sd135 sd root@bcnmb-a:~#
7. 查看分区中的块分配信息
root@bdsp-a-2-1-2:~# cat /proc/partitions major minor #blocks name 31 0 512 mtdblock0 31 1 512 mtdblock1 31 2 123904 mtdblock2 31 3 4096 mtdblock3 31 4 1024 mtdblock4 31 5 1024 mtdblock5 31 6 512 mtdblock6 31 7 512 mtdblock7 31 8 123904 mtdblock8 31 9 4096 mtdblock9 31 10 1024 mtdblock10 31 11 1024 mtdblock11 31 12 1048576 mtdblock12 root@bdsp-a-2-1-2:~#
8. 查看linux内核版本和gcc版本
root@bdsp-a-2-1-2:~# cat /proc/version linux version 2.6.34.6-wr4.0.0.0_standard (satomi@charliebrown) (gcc version 4.4.1 (wind river linux sourcery g++ 4.4-291) ) #1 smp preempt fri nov 26 16:07:47 cst 2010 root@bdsp-a-2-1-2:~#
9. /proc/sys/fs/file-max
该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。可将这个值设置成有任意多个文件,并且能通过将一个新数字值写入该文件来更改该值。默认设置时4096。
改变内核的参数,用vi编辑或echo参数重定向到文件中。
# cat /proc/sys/fs/file-max 4096 # echo 8192 > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 8192
如果优化了参数,则可以把它们写成添加到文件rc.local中,使它在系统启动时自动完成修改。
其它例子:
1:[root@gechong proc]# more /proc/cmdline
显示了内核启动的命令行
2:[root@gechong proc]# cat /proc/cpuinfo
显示了cpu信息
3:[root@gechong proc]# cat /proc/devices
显示了字符和块设备的主设备号以及分配到这些设备号的设备名称
4:[root@gechong proc]# cat /proc/dma
显示了驱动程序保留的dma通道和保留它们的驱动程序名称
5:[root@gechong proc]# more /proc/filesystems
显示了可供使用的文件系统类型,一种类型一行
6:[root@gechong proc]# more /proc/interrupts
每一行都有一个保留的中断,内容是:中断号 中断次数 登记中断的驱动程序名称
7:[root@gechong proc]# more /proc/ioports
显示了i/o相关的设备驱动器例如磁盘驱动器、以太网卡、声卡设备等
위 내용은 Linux proc 디렉토리에 있는 하위 파일 또는 하위 폴더의 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!