Linux proc virtual file system点滴

Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上。 Proc有多个功能,包括用户可以通过它访问内核信息或用于排错,也可以以文本流的形式来访问进程信息。很多 Linux 命令 ( 比如 ps 、 toPpstree 等 ) 都需要使用这个文件系统的信息。linux提供了一种通过 /proc 文件系统在运行时访问内核内部数据结构、改变内核设置的机制和接口。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间,其为基于随机访问存储器 (RAM) 的文件系统,类似系统还有tmpfs,swapfs等。/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制。

一  系统/内核信息
    proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。/proc下的每个文件都绑到一个内核函数上, 当文件被读的时候即时产生文件内容。下面是一些重要的文件:

名称   说明

apm 高级电源管理信息
cmdline系统启动时输入的内核命令行参数  
cpuinfo CPU 的信息 (型号, 家族, 缓存大小等) 
devices主设备号及设备组的列表,当前加载的各种设备(块设备/字符设备)
dma 使用的DMA通道
filesystems当前内核支持的文件系统,当没有给 mount(1) 指明哪个文件系统的时候, mount(1) 就依靠该文件遍历不同的文件系统
interrupts 中断的使用及触发次数,调试中断时很有用
ioports I/O当前在用的已注册 I/O 端口范围
kcore该伪文件以 core 文件格式给出了系统的物理内存映象,可以用 GDB 查探当前内核的任意数据结构。该文件的总长度是物理内存 (RAM) 的大小再加上 4KB
kmsg可以用该文件取代系统调用 syslog(2) 来记录内核日志信息,对应dmesg命令
ksyms 内核符号表,该文件保存了内核输出的符号定义, modules(X)使用该文件动态地连接和捆绑可装载的模块
loadavg 负载均衡,平均负载数给出了在过去的 1, 5, 15 分钟里在运行队列里的任务数
locks 内核锁
meminfo物理内存、交换空间等的信息,系统内存占用情况,对应df命令
misc 杂项
modules 已经加载的模块列表,对应lsmod命令
mounts已加载的文件系统的列表,对应mount命令,无参数
net/ 该子目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况 tcp udp arp route snmp ...
partitions 系统识别的分区表
slabinfo Slab池信息
stat 全面统计状态表,对应ps命令
swaps 对换空间的利用情况
sys/ 通过它来访问或修改内核的参数 abi  crypto  debug  dev  fs  kernel  net  vm
version指明了当前正在运行的内核版本,对应uname –v,
uptime 系统正常运行时间,对应date命令

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24955.html