procfs
在许多类Unix计算机系统中,procfs
是进程文件系统(file system)的缩写,包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。这个文件系统通常被挂载到/proc
目录。
简介
由于/proc
是一个虚拟文件系统,有时称为过程信息伪文件系统(process information pseudo-file system
),不占用存储空间,只是占用有限的内存,包含运行时系统信息(例如,系统内存,已安装的设备,硬件配置等)
因此,它可以被视为内核的控制和信息中心。实际上,很多系统实用程序只是对该目录中文件的调用。例如:
-
lsmod
<=>cat/proc/modules
-
lspci
<=>cat/proc/pci
通过更改位于此目录中的文件,甚至可以在系统运行时读取/更改内核参数(sysctl
命令)
目录说明
关于此目录中文件的最独特之处在于,除了kcore,mtrr和self外,所有文件的大小均为0。目录列表类似于以下内容:
├─1 数字表示进程号
│ ├─cmdline 启动该进程的命令行
│ ├─cwd 当前工作目录的符号链接
│ ├─environ 影响进程的环境变量的名字和值
│ ├─exe 最初的可执行文件的符号链接(还存在)
│ ├─fd 目录,包含每个打开的文件描述符的符号链接
│ ├─fdinfo 目录,包含每个打开的文件描述符的位置和标记
│ ├─maps 一个文本文件包含内存映射文件与块的信息
│ ├─mem 一个二进制图像(image)表示进程的虚拟内存, 只能通过ptrace化进程访问
│ ├─root 该进程所能看到的根路径的符号链接
│ ├─status 包含了进程的基本信息,包括运行状态、内存使用
│ ├─task 一个目录包含了硬链接到该进程启动的任何任务
├─10
├─108
├─2232
└─ ... 更多进程目录
│
├─acpi或apm 电源管理系统
├─buddyinfo 处理内存碎片的伙伴算法的信息
├─bus 计算机上各种总线的目录
├─fb 可用帧缓冲区的列表
├─cmdline 传递给内核的启动选项
├─cpuinfo CPU信息
├─crypto 可利用的加密模块列表
├─devices 字符设备与块设备列表,按照设备ID排序
├─diskstats 每一块逻辑磁盘设备信息
├─filesystems 当前时刻内核支持的文件系统的列表
│
├─interrupts 以下四个提供有关使用各种系统资源的设备(物理或逻辑)的一些详细信息如中断内存访问等
├─iomem
├─ioports
├─irq
│
├─kmsg 保存内核输出的消息
├─meminfo 内核管理内存的一些汇总信息
├─modules 当前加载的内核模块列表(重要)
├─mounts 当前安装设备及安装点的符号链接
├─net 当前网络栈的信息
├─partitions 设备号列表
├─scsi 通过SCSI或RAID控制器挂接的设备的信息
├─self 当前进程的符号链接
├─slabinfo 内核频繁使用的对象的统计信息
├─swaps 活动交换分区的信息(尺寸,优先级等)
├─sys 动态可配置的内核选项
├─sysvipc 共享内存与进程间通信 (IPC)信息
├─tty 当前终端信息
├─uptime 内核启动后经过的秒数与idle模式的秒数
├─version 相关版本号
└─ ...
网友评论