/proc 目录
- /proc 文件目录是一个伪文件,它只存在于系统内存中,而不占用外存空间。它以文件系统的方式为用户提供访问内核数据的操作接口。目录下主要包含进程和状态的信息。
/proc 下文件含义
文件 | 内容 |
---|---|
/proc/cmdline | 载入 kernel 时所下达的相关指令与参数 |
/proc/cpuinfo | 本机的 CPU 的相关信息,包含频率、类型与运算功能等 |
/proc/devices | 这个文件记录了系统各个主要设备的主要设备代号,与 mknod 有关 |
/proc/filesystems | 目前系统已经载入的文件系统 |
/proc/interrupts | 目前系统上面的 IRQ 分配状态 |
/proc/ioports | 目前系统上面各个设备所配置的 I/O 位址 |
/proc/kcore | 这个就是内存的大小,建议不要进行读取,很大 |
/proc/loadavg | 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关 |
/proc/meminfo | 使用 free 列出的内存信息,在这里也能够查阅到 |
/proc/modules | Linux 已经载入的模块列表,也就是驱动程序的载入情况,lsmod的输出结果 |
/proc/mounts | 系统已经挂载的数据 |
/proc/swaps | 显示交换分区的使用情况 |
/proc/partitions | 使用 fdisk -l 会列出的目前所有 partition |
/proc/version | 核心的版本,用 uname -a 会显示的内容 |
/proc/buddyinfo | 每个内存区中的每个order有多少块可用,和内存碎片问题有关 |
/proc/crypto | 内核使用的所有已安装的加密密码及细节 |
/proc/dma | 已注册使用的ISA DMA频道列表 |
/proc/execdomains | linux内核当前支持的execution domains[1] |
/proc/fb | 帧缓冲设备列表,包括数量和控制它的驱动 |
/proc/filesystems | 内核当前支持的文件系统类型 |
/proc/interrupts | x86架构中的每个IRQ中断数 |
/proc/iomem | 每个物理设备当前在系统内存中的映射 |
/proc/ioports | 一个设备的输入输出所使用的注册端口范围 |
/proc/kmsg | 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理 |
/proc/locks | 内核锁住的文件列表 |
/proc/mdstat | 多硬盘,RAID配置信息(md=multiple disks) |
/proc/meminfo | RAM使用的相关信息 |
/proc/misc | 其他的主要设备(设备号为10)上注册的驱动 |
/proc/pci | 系统中的PCI设备列表,系统的pci总线信息 |
/proc/slabinfo | 系统中所有活动的 slab 缓存信息 |
/proc/stat | 系统的一些状态信息,cpu、中断等 |
/proc/bus/(目录) | 一些总线的设备,USB 的设备也记录在此 |
/proc 下的数字目录
Linux系统中当前运行的每一个进程都有对应的一个目录在 /proc 下,以进程的PID号为目录名。其中,/proc/self/ 为当前进程的信息目录。
文件[2] | 内容 |
---|---|
/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更具可读性 |
参考
我理解这里的domain为linux中每个进程都只能看到的自己私有的内存空间,personality (2) - Linux Man Pages 里有相关说明。 ↩︎
这里用 N 代表进程PID号。 ↩︎