proc文件系统介绍以及常见使用方法

Posted 正在起飞的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了proc文件系统介绍以及常见使用方法相关的知识,希望对你有一定的参考价值。

1、什么是proc文件系统

(1)proc是虚拟文件系统,虚拟的意思就是proc文件系统里的文件不对应硬盘上任何文件,我们用去查看proc目录下的文件大小都是零;
(2)proc文件系统是开放给上层了解内核运行状态的窗口,通过读取proc系统里的文件,可以知道内核中一些重要数据结构的数值,从而知道内核的运行情况,也可以方便调试内核和应用程序;
(3)proc文件系统的思路:在内核中构建一个虚拟文件系统/proc,内核运行时将内核中一些关键的数据结构以文件的方式呈现在/proc目录中的一些特定文件中,这样相当于将不可见的内核中的数据结构以可视化的方式呈现给内核的开发者

2、常见的proc文件介绍

文件名作用
/proc/cmdline查看内核的启动参数
/proc/cpuinfo查看CPU的信息
/proc/devices查看内核中已经注册的设备
/proc/filesystems内核当前支持的文件系统类型
/proc/interrupts中断的使用及触发次数,调试中断时很有用
/proc/misc内核中注册的misc类设备
/proc/modules已经加载的模块列表,对应lsmod命令
/proc/partitions系统的分区表
/proc/version系统的版本
数字数字的文件夹都是相应的进程
/proc/mounts已加载的文件系统的列表,对应mount命令
/proc/meminfo内核的内存信息
/proc/fb内核中注册的显示设备

3、在proc文件系统中查看进程的相关信息

3.1、进程的相关文件

(1)上面显示的是2592号进程在proc文件系统中的相关信息;
(2)想查看2592进程的相关信息,就用cat或者open去读取对应的文件;

3.2、查看进程打开的文件

绿框中就是进程打开的文件描述符,后面是文件描述符指向的文件路径;

3.3、查看进程中加载的动态库的地址范围

(1)第一列:这是库在进程中加载的地址范围,当我们的程序出错时,如果打印出地址,可以根据地址范围来这里对比,确认下是调用哪个库的函数出错了;
(2)最后一列:这是库的名字和路径;

3.4、查看进程的栈信息

stack文件里就是进程当前的栈信息,类似于gdb调试中的bt指令;

4、 和sys文件系统的比较

(1)proc文件系统主要是用来调试内核,在内核运行时可以知道内核中一些重要的数据结构的值,一般都是读很少写;
(2)proc文件系统出现的比sys文件系统早,proc文件系统的目录结构比较乱,在proc文件系统下面有很多文件夹,比如一个进程就有一个文件夹,现在内核越来越复杂,支持的设备类型也越来越多,显得很混乱;于是又开发出了sys系统,sys系统可以说是proc的升级,将来用sys系统会是主流;
(3)proc文件系统和sys文件系统都是虚拟系统,并且有对应关系,比如"/proc/misc"对应于"sys/class/misc"下面的设备,都是描述misc类设备的;

以上是关于proc文件系统介绍以及常见使用方法的主要内容,如果未能解决你的问题,请参考以下文章

[linux] /proc/diskstats各列含义介绍以及磁盘使用率计算方式说明

Linux下proc文件接口详解

linux内核源码分析之proc文件系统

proc – 虚拟文件系统#yyds干货盘点#

linux系统下的/proc目录介绍

linuxlinux系统中常见配置文件说明