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文件系统介绍以及常见使用方法相关推荐
- 获取系统信息3——proc文件系统介绍和使用
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.proc文件系统介绍 1.操作系统级别的调试 简单程序,可以单步调试:(多线程不行,linux内核不行) 复杂 ...
- proc文件系统介绍
目录(?)[-] 目录 收集系统信息 1 进程子目录 2 内核数据 14 网络信息 2 每个进程信息 1 procpidoom_adj procpidoom_score_adj 2 procpidoo ...
- c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法
asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46 作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...
- lnmp一键安装包不能允许php文件,lnmp一键安装包常见问题解决方法
lnmp一键安装包常见问题解决方法 对于大部分新手来说,都是使用centOS+Licess的lnmp一键安装包 的吧(其实lnmp意思就是Linux+nginx+mysql+php).本文中的方法也是 ...
- EMX,PROC文件与电感的简单仿真
How To Write EMX PROC File 编写EMX工艺文件需要2方面的信息: GDSII layer number and type 映射到 layer name. 这个信息可以从lay ...
- git原理及常见使用方法
Git 原理入门-来自阮一峰 Git 是最流行的版本管理工具,也是程序员的必备技能之一. 即使天天使用它,很多人也未必了解它的原理.Git 为什么可以管理版本?git add.git commit这些 ...
- ueditor上传图片回调_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...
(常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客blog.csdn.net 报错信息 详见此文的"排错过 ...
- proc文件的简单读写
在开发模块功能时,需要用到一些调试或者传值给模块的方法,最简单的就是构造一个proc文件,然后配置传值或查看 . 如下提供了一个简单模板,需要时可以直接复制过去使用. /* Init a test p ...
- PHP几种常见魔术方法与魔术变量解析
PHP几种常见魔术方法与魔术变量解析 先不多说,直接上代码,如下: 1 class Demo 2 { 3 private $str = 'str'; 4 5 //实例化时自动加载function 6 ...
最新文章
- PHP新手上路(十二)
- Monkey Server自动化脚本
- java中volatile的含义_java中volatile关键字的含义
- MATLAB 批量改文件名称
- OpenSSL编写SSL,TLS程序
- 阿里二面:怎么解决MySQL死锁问题的?
- linux调整大页内存,Linux 系统如何进行大页面配置
- NOIP2012pj文化之旅[floyd]
- Mysql远程授权报语法错误
- Spring源码编译及阅读源码入门
- IDEA .java with UTF-8: MALFORMED[1] [error] Please try specifying another one usi
- 【javaWeb学习笔记】HTML,CSS,JS
- 10个免费图片站点(2020年最新)
- 为什么RISC-V在中国岌岌可危?
- ***测试技巧总结更新篇2
- java dojo,针对 Java 开发人员的 Dojo 概念
- SELECT TOP 1 * FROM是什么意思
- 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
- 第1天——R语言介绍
- VsCode经典实用常用插件分享