Linux-proc文件系统介绍
1、操作系统级别的调试
(1)、简单程序单步调试
(2)、复杂程序printf打印信息调试
(3)、框架体系日志记录信息调试
(4)、内核调试的困境
2、proc虚拟文件系统的工作原理
(1)、Linux内核是一个非常庞大、复杂的一个单独的程序,对于这样的一个程序来说,调试是非常的复杂的。
(2)、像kernel这样庞大的项目,给里边添加/更改一个功能是非常麻烦的,因为你这个添加的新功能可能会影响其他已经有的功能。
(3)、早期内核版本中尽管调试很麻烦,但是高手们还可以凭借自己超凡脱俗的能力去驾驭。但是到了2.4左右的版本的时候,这个难度就非常大了。
(4)、为了降低内核调试和学习的难度,内核开发者们在内核中添加了一些属性专门用于调试内核,proc文件系统就是一个尝试。
(5)、proc文件系统的思路就是:在内核中构建一个虚拟文件系统/proc,内核运行时将内核中一些关键的数据结构以文件的方式呈现在/proc目录中的一些特定文件中,这样相当于将不可见的内核中的数据结构以可视化的方式呈现给内核的开发者。
(6)、proc文件系统给了开发者一种调试内核的方法:我们通过实时的观察/proc/xxx文件,来观看内核中特定数据结构的值,在我们添加一个新功能的前后来对比,就可以知道这个新功能产生的影响对不对了。
(7)、proc目录下的文件大小都是0,因为这些文件本身并不存在于硬盘中,他也不是一个真实文件,他只是一个接口,当我们去读取这个文件时,其实内核并不是去硬盘上找这个文件,而是映射为内核内部一个数据结构被读取并且格式化为字符串返回给我们。所以尽管我们看到的还是一个文件内容字符串,和普通文件一样的;但是实际上我们知道这个内容是实时的从内核中数据结构来的,而不是从硬盘中来的。
Linux-proc文件系统介绍的更多相关文章
- 10-09 Linux的文件系统介绍以及各种设备的说明
Linux的文件编程 linux文件管理系统分为3部分:与文件管理有关的软件,被管理的文件,实施文件管理需要的数据结构 用C语言建立,打开,关闭文件,向文件写入和读出数据等. Linux文件系统简介 ...
- Linux根文件系统介绍
系统 根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后 ...
- proc文件系统介绍
(1)linux内核是一个非常庞大.非常复杂的一个单独的程序,对于这样的一个程序来说调试是非常复杂的.(2)项kernel这样庞大的项目,给里面添加/更改一个功能是非常麻烦的,因为你这添加的一个功能可 ...
- Linux文件系统介绍(转)
文章转自:http://www.iteye.com/topic/816268 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文 ...
- 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍
目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...
- 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)
<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...
- linux伪文件与proc文件
linux/unix系统的文件类型大致可分为三类:普通文件.目录文件和伪文件.常见的伪文件分别是特殊文件.命名管道及proc文件. 伪文件不是用来存储数据的,因此这些文件不占用磁盘空间,尽管这些文件确 ...
- ubuntu/linux mint 创建proc文件的三种方法(四)
在做内核驱动开发的时候,能够使用/proc下的文件,获取对应的信息,以便调试. 大多数/proc下的文件是仅仅读的,但为了演示样例的完整性,都提供了写方法. 方法一:使用create_proc_ent ...
- ubuntu/linux mint 创建proc文件的三种方法(两)
在这样做的内核驱动程序的开发时间.可以使用/proc下档.获取相应的信息.对于调试. 大多数/proc下的文件是仅仅读的.但为了演示样例的完整性.都提供了写方法. 方法一:使用create_proc_ ...
- Linux 小知识翻译 - 「/proc 文件夹」
这次聊聊 「/proc 文件夹」. /proc 文件夹用来保管系统状态相关的文件的特殊文件夹,这个文件夹中有的文件只是内存上的虚拟文件. /proc 文件夹下有些文件可以反映各个进程的运行状态.所以说 ...
随机推荐
- webpack散记--Typescript
Typescript 1.js的超集 官网:typescriptlang.org/tslang.cn 来自:微软 安装:官方的 npm i typescript ts-loader --save-d ...
- Linux每日练习-crontab
- Hibernate 的SessionFactory
1.当我们调用 Configuration config=new Configuration().configure(); 时候Hibernate会自动在当前的CLASSPATH中搜寻hibernat ...
- java课程之团队开发冲刺阶段2.9
总结昨天进度: 已经完成查询课程信息任务 遇到的困难: 已经全部解决 今天的任务: 修改APP图标 当日总结: manifest中管理着APP的基本信息资料,所以是在manifest文件中修改APP的 ...
- UVALive 4487 Exclusive-OR 加权并查集神题
已知有 x[0-(n-1)],但是不知道具体的值,题目给定的信息 只有 I P V,说明 Xp=V,或者 I P Q V,说明 Xp ^ Xq=v,然后要求回答每个询问,询问的是 某任意的序列值 Xp ...
- gentoo 修改键盘映射
gentoo 上面修改键盘映射分为两种,一种是终端环境,一种是X环境. 终端环境 https://www.emacswiki.org/emacs/MovingTheCtrlKey https://wi ...
- C++程序--helloworld
#include<iostream>using namespace std; int main(){ cout << "hello world!" < ...
- Vue-router的介绍
1.路由基础介绍 (1)什么是前端路由: 路由是根据不同的URL地址展示不同的内容或页面. 前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做.之前是通过服务端根据URL的不同返回不同的页面 ...
- UVA - 1630 Folding(串折叠)(dp---记忆化搜索)
题意:给出一个由大写字母组成的长度为n(1<=n<=100)的串,“折叠”成一个尽量短的串.折叠可以嵌套.多解时可输出任意解. 分析: 1.dp[l][r]为l~r区间可折叠成的最短串的长 ...
- POJ 1160:Post Office 邮局经典DP
Post Office Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17168 Accepted: 9270 Desc ...