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类设备的;

  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值