proc(5) - Linux man page(中文翻译)
名字
proc - process information pseudo-filesystem,进程信息伪文件系统
描述
proc是个作为内核数据结构接口的伪文件系统,他被挂载在/proc目录下。该目录下大多数文件是只读的,但某些文件也允许内核变量被修改。
/proc/[number]
/proc目录下用数字表示的子目录对应着系统中正在运行的一些进程,子目录名即为进程的PID。每个进程子目录都包含下面这些孙子目录及文件。
/proc/[number]/comline
该文件包含对应进程的完整命令行指令。在进程被转移出或成为僵尸进程的情况下,该文件内没有内容。
/proc/[number]/cwd
该文件包含对应进程的当前工作目录完整路径。在多线程且主线程已经结束的情况下,该文件成为不可用的。
/proc/[number]/environ
该文件包含对应进程的环境。
/proc/[number]/exe
在Linux 2.2及其后的版本中,该文件是个指向对应进程所执行命令的真正路径的符号指针。执行该文件就相当于再执行次该进程。
在Linux 2.0及其前的版本中,该文件是个指向对应进程所执行的二进制代码的指针。
/proc/[number]/fd
这个是子目录,其中为对应进程所打开的所有文件都留有进入点。该进入点是根据所打开文件的文件描述符命名的。而该文件描述符又是指向真实文件的符号链接。0代表标准输入,1代表标准输出,2代表标准错误,等等。
/proc/[number]/maps
该文件包含对应进程的当前被映射的内存区域及其进入权限。
其格式如下:
address perms offset dev inode pathname
08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm
08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm
08058000-0805b000 rwxp 00000000 00:00 0
40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so
40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so
4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so
40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so
4013e000-40142000 rw-p 00000000 00:00 0
bffff000-c0000000 rwxp 00000000 00:00 0
address代表进程中占用的地址空间,perms是权限的集合:
r = read w = write x = execute
s = shared p = private (copy on write)
offset是文件偏移,dev是设备(主设备号:次设备号),inode是设备上的inode。0表示无inode与该内存空间相关联。
/proc/[number]/mem
该文件用以访问进程内存的页面,利用这三个函数open(),read(),fseek()。
/proc/[number]/root
该文件是指向进程根目录的符号链接。
/proc/[number]/smaps(Linux 2.6.14)
该文件包含对应进程映射的内存消耗信息。该文件只有在CONFIG_MMU内核选项可用的情况下才会出现。
/proc/[number]/stat
该文件包含对应进程的状态信息。主要被ps命令所利用。(略)
/proc/[number]/statm
该文件包含对应进程的页面内存状态信息。
/proc/[number]/status
该文件是/proc/[number]/stat和/proc/[number]statm两文件的集合,更易阅读。
/proc/[number]/task
该目录下为对应进程的每个线程都生成了相应的子目录。子目录名为对应线程的线程ID。(略)
/proc/apm
该文件包含系统(Adcanced power management)高级电源管理版本信息及电源信息。只有当CONFIG_APM在内核编译时期被定义才会出现。
/proc/bus
该目录包含所有系统中被安装的总线。
/proc/bus/pccard
该子目录为pcmcia设备目录,当CONFIG_PCMCIA在内核编译时期被定义才会出现。
/proc/bus/pccard/drivers
/proc/bus/pci
该子目录为pci总线子目录,该目录下包含许多与pci总线,装载的设备及设备驱动相关的总线子目录及伪文件。
/proc/bus/pci/devices
该文件包含有关pci设备的信息。
/proc/cmdline
该文件包含在引导期传递给Linux内核的参数。
/proc/cpuinfo
该文件包含CPU相关信息及系统体系相关项目。
/proc/devices
该文件包含系统设备分类下的各自主设备号列表。
/proc/diskstats(Linux 2.5.69)
该文件包含每块磁盘设备的磁盘IO统计数据。
/proc/dma
该文件包含在使用的已注册的DMA通道列表。
/proc/driver
空子目录。
/proc/execdomains
该文件包含内核执行域列表。
/proc/fb
该文件包含帧缓冲区信息。只有当CONFIG_FB在内核编译时期被定义才会出现。
/proc/filesystems
该文件包含内核支持的文件系统列表。
/proc/fs
空子目录。
/proc/ide
该目录只有当系统拥有ide总线时才会存在。目录下为每个ide通道及插入的设备设有子目录。
/proc/interrupts
该文件用于记录i386构架上的每个IRQ的中断数。
/proc/iomem
Linux 2.4中的IO内存映射。
/proc/ioports
该文件包含当前已注册并在使用的输入输出端口区域。
/proc/kallsyms(Linux 2.5.71)
这是内核输出的符号定义,被模块用于动态链接和绑定可装载模块。在先前的版本中,名为ksyms。
/proc/kcore
该文件包含系统物理内存的信息。
/proc/kmsg
该文件包含内核信息,可以用syslog系统调用来更清晰地读取。
/proc/loadavg
该文件较重要,请自行参看原文档。(略)
/proc/locks
该文件包含当前文件锁的信息。
/proc/malloc
该文件只在CONFIGDEBUGMALLOC在编译器被定义时才出现。
/proc/meminfo
该文件的内容与free命令显示的内容基本吻合,就是包含存储器的基本信息。
/proc/mounts
该文件包含挂载在系统内的所有文件系统列表。
/proc/modules
该文件包含已被系统装载的模块列表。
/proc/mtrr
Memory Type Range Registers。
/proc/net
该目录下包含许多网络相关的伪文件,每个文件都包含网络层的相关状态或信息。该目录下的信息可以使用netstat命令更清晰地获得。(略)
/proc/partitions
该文件包含每个分区的主次设备号,同时也包含分区块数及分区名。
/proc/pci
该文件包含内核初始化时找到的PCI设备列表。
/proc/scsi
该目录下包含scsi中级伪文件及scsi低级驱动目录。(略)
/proc/self
该目录与进入/proc文件系统的进程相关。
/proc/slabinfo
该文件包含内核缓存信息。
/proc/stat
该文件包含内核系统统计数据。(略)
/proc/swaps
使用中的交换区。
/proc/sys
该目录下包含一些列与内核变量一致的文件及子目录。(略)
/proc/sysvipc
该目录下包含三个伪文件:msg,sem,shm。
/proc/tty
该目录下包含tty驱动的伪文件及子目录。
/proc/uptime
该文件包含计算机正常运行时间数据及计算机用于理想进程的时间。
/proc/version
该文件包含内核版本信息。
/proc/vmstat
该文件包含虚拟内存统计数据。
/proc/zoneinfo
该文件包含内存区域的相关信息。
参见
cat(1), find(1), free(1), mount(1), ps(1),