在许多类 Unix
计算机系统中,procfs(processes file system)
是一种基于内存的 虚拟文件系统
,系统启动时挂载在 /proc
目录下。用于通过内核访问进程信息。
介绍
- proc 文件系统主要是用来调试内核
- proc 文件系统是一种内核和内核模块用来向
进程(process)
发送信息的机制,因此被称为proc
- proc 是一种伪文件系统(也称虚拟文件系统),只存在于内存中
相关文件
/proc/PID/cmdline
启动该进程的命令行
/proc/PID/cwd
当前工作目录的符号链接
/proc/PID/environ
影响进程的环境变量的名字和值
/proc/PID/exe
最初的可执行文件的符号链接,如果它还存在的话
/proc/PID/fd
一个目录,包含每个打开的文件描述符的符号链接
/proc/PID/fdinfo
一个目录,包含每个打开的文件描述符的位置和标记
/proc/PID/maps
一个文本文件包含内存映射文件与块的信息
/proc/PID/mem
一个二进制图像(image)表示进程的虚拟内存,只能通过 ptrace
化进程访问
/proc/PID/root
该进程所能看到的根路径的符号链接。如果没有chroot监狱,那么进程的根路径是/
/proc/PID/status
包含了进程的基本信息,包括运行状态、内存使用。
/proc/PID/task
一个目录包含了硬链接到该进程启动的任何任务
/proc/acpi
或 /proc/apm
电源管理系统(如果有的话)对应的目录
/proc/buddyinfo
信息关于伙伴内存分配器用于处理内存碎片
/proc/bus
包含对应于计算机上各种总线的目录,如input/PCI/USB. 在/sys/bus下包含更丰富的信息。
/proc/fb
可利用的帧缓冲的列表
/proc/cmdline
传递给内核的启动选项。
/proc/cpuinfo
包含CPU信息,诸如厂商(vendor),型号 (family,model,model names),速度,缓存大小,逻辑核数 ,物理核数,CPU flags,以及BogoMips.对于多核CPU,/proc/cpuinfo的逻辑核数"siblings"与物理核数"cpu cores"分别表示
/proc/crypto
可利用的加密模块列表
/proc/devices
字符设备与块设备列表,按照设备ID排序,但给出了/dev名字的主要部分
/proc/diskstats
给出了每一块逻辑磁盘设备的一些信息
/proc/filesystems
当前时刻内核支持的文件系统的列表
/proc/interrupts
,/proc/iomem
,/proc/ioports
,/proc/irq
,设备的一些与中断、内存访问有关的信息
/proc/kmsg
用于跟踪读取内核消息
/proc/meminfo
包含内核管理内存的一些汇总信息
/proc/modules
是/proc最重要的文件之一,包含了当前加载的内核模块列表
/proc/mounts
包含了当前安装设备及安装点的符号链接
/proc/net/
一个目录包含了当前网络栈的信息,特别是/proc/net/nf_conntrack
列出了存在的网络连接(对跟踪路由特别有用,因为iptables转发被用于重定向网络连接)
/proc/partitions
一个设备号、尺寸与/dev名的列表,内核用于辨别已存在的硬盘分区
/proc/scsi
给出任何通过SCSI或RAID控制器挂接的设备的信息
/proc/self
(即/proc/PID/其中进程ID是当前进程的) 为当前进程的符号链接
/proc/slabinfo
Linux内核频繁使用的对象的统计信息
/proc/swaps
活动交换分区的信息,如尺寸、优先级等。
/proc/sys
,动态可配置的内核选项. 其下的目录对应与内核区域,包含了可读与可写的虚拟文件(virtual file)
/proc/sysvipc
包括共享内存与进程间通信 (IPC)信息
/proc/tty
包含当前终端信息; /proc/tty/driver是可利用的tty类型列表,其中的每一个是该类型的可用设备列表。
/proc/uptime
内核启动后经过的秒数与idle模式的秒数
/proc/version
包含Linux内核版本,发布号(distribution number),编译内核的gcc版本,其他相关的版本
/proc/dma
显示当前使用的dma通道
/proc/kcore
系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建
/proc/loadavg
系统“平均负载”; 3个没有意义的指示器指出系统当前的工作量。
/proc/self
存放到查看/proc的程序的进程目录的符号连接。当2个进程查看/proc时,这将会是不同的连接。这主要便于程序得到它自己的进程目录。
/proc/stat
系统的不同状态,例如,系统启动后页面发生错误的次数。