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文件系统介绍以及常见使用方法相关推荐

  1. 获取系统信息3——proc文件系统介绍和使用

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.proc文件系统介绍 1.操作系统级别的调试 简单程序,可以单步调试:(多线程不行,linux内核不行) 复杂 ...

  2. proc文件系统介绍

    目录(?)[-] 目录 收集系统信息 1 进程子目录 2 内核数据 14 网络信息 2 每个进程信息 1 procpidoom_adj procpidoom_score_adj 2 procpidoo ...

  3. c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法

    asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46   作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...

  4. lnmp一键安装包不能允许php文件,lnmp一键安装包常见问题解决方法

    lnmp一键安装包常见问题解决方法 对于大部分新手来说,都是使用centOS+Licess的lnmp一键安装包 的吧(其实lnmp意思就是Linux+nginx+mysql+php).本文中的方法也是 ...

  5. EMX,PROC文件与电感的简单仿真

    How To Write EMX PROC File 编写EMX工艺文件需要2方面的信息: GDSII layer number and type 映射到 layer name. 这个信息可以从lay ...

  6. git原理及常见使用方法

    Git 原理入门-来自阮一峰 Git 是最流行的版本管理工具,也是程序员的必备技能之一. 即使天天使用它,很多人也未必了解它的原理.Git 为什么可以管理版本?git add.git commit这些 ...

  7. ueditor上传图片回调_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...

    (常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客​blog.csdn.net 报错信息 详见此文的"排错过 ...

  8. proc文件的简单读写

    在开发模块功能时,需要用到一些调试或者传值给模块的方法,最简单的就是构造一个proc文件,然后配置传值或查看 . 如下提供了一个简单模板,需要时可以直接复制过去使用. /* Init a test p ...

  9. PHP几种常见魔术方法与魔术变量解析

    PHP几种常见魔术方法与魔术变量解析 先不多说,直接上代码,如下: 1 class Demo 2 { 3 private $str = 'str'; 4 5 //实例化时自动加载function 6 ...

最新文章

  1. PHP新手上路(十二)
  2. Monkey Server自动化脚本
  3. java中volatile的含义_java中volatile关键字的含义
  4. MATLAB 批量改文件名称
  5. OpenSSL编写SSL,TLS程序
  6. 阿里二面:怎么解决MySQL死锁问题的?
  7. linux调整大页内存,Linux 系统如何进行大页面配置
  8. NOIP2012pj文化之旅[floyd]
  9. Mysql远程授权报语法错误
  10. Spring源码编译及阅读源码入门
  11. IDEA .java with UTF-8: MALFORMED[1] [error] Please try specifying another one usi
  12. 【javaWeb学习笔记】HTML,CSS,JS
  13. 10个免费图片站点(2020年最新)
  14. 为什么RISC-V在中国岌岌可危?
  15. ***测试技巧总结更新篇2
  16. java dojo,针对 Java 开发人员的 Dojo 概念
  17. SELECT TOP 1 * FROM是什么意思
  18. 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
  19. 第1天——R语言介绍
  20. VsCode经典实用常用插件分享

热门文章

  1. ResultSet参数类型说明
  2. 深度图结合RGB实现行为识别
  3. 三菱 FX5U PLC 4轴程序 控制松下伺服3个, 步进电机一个
  4. element-ui实现图片上传功能(前台部分)
  5. Servlet之间跳转
  6. “绿色”酿酒 | 致力于有机农业和葡萄园可持续发展的百年酒庄
  7. Android串口Serial服务解析
  8. 看似动态规划,实则不需要——等差数列划分
  9. 彩蛋篇 之 瞧瞧各大公司官网彩蛋 ~
  10. Golang匿名结构体结构体嵌套(实战使用)