Proc 文件系统总结

原创 2013年12月05日 22:37:35

Proc 文件系统总结

 

1  概述

                Proc文件系统(Process data filesystem, 进程数据文件系统)可以生成操作系统的状态和配置信息,并组织成目录和文件的形式,让用户可以方便查看和修改(通过cat等操作普通文件的方式)。在开发应用程序的过程中也可以随时方便读取。该文件系统是一个虚拟文件系统,也就是它实际不保存在块存储设备上,只有在读取时才动态生成所要的信息。

                Proc文件系统包含的信息主要包含以下几大类:

·         内存管理

·         系统进程的特征数据

·         文件系统

·         设备驱动程序

·         系统总线

·         电源管理

·         终端

·         系统控制参数

子文件夹截图

 

2  详细信息

2.1 特定进程信息

                操作系统创建的每一个进程在/proc文件夹下都有与之对应的一个子文件夹(以进程pid号命名)。

                

                                                Pid为1的进程对应的文件夹下的内容

文件/文件夹名

内容描述

Cmdline

包含起点进程的命令行(程序名和参数)

Environ

为改程序设置的所有环境变量

Maps

进程使用的所有库

Status

包含进程状态信息(例如Name, Pid, Gid, Uid等)

Stat/statm

进程及其内存消耗的详细信息

Cwd

保存进程当前工作目录

Exe

指向包含进程对应应用程序的二进制文件

Root

指向进程根目录

 

2.2 一般性系统信息

                与特定子系统无关的信息,也就是与其他子系统共享的信息

               

文件/文件夹名

内容描述

/proc/iomem

提供用来与设备通信的内存地址有关信息

/proc/ioports

提供用来与设备通信的端口有关信息

/proc/buddyinfo

提供伙伴系统当前使用情况信息

/proc/slabinfo

提供slab分配器当前使用情况信息

/proc/meminfo

提供一般性的内存使用情况

/proc/vmstat

提供内存管理的其它特征信息

/proc/kallsyms

提供全局内核变量和函数在内存中的地址

/proc/kcore

动态内核文件,指向运行中的内核的所有数据,即主内存的全部内容。

/proc/interrupts

保存了当前操作期间引发的终端说明

 

2.3 网络信息

                /proc/net子目录包含了内核网络相关的数据

 

2.4 系统控制参数

                用于动态检查和修改内核行为的系统控制参数。在/proc/sys文件夹下。

                

                                                /proc/sys文件夹内容截图

               

3 proc相关主要内核文件和数据结构

3.1  <proc_fs.h>

                Proc_dir_entry结构: /proc下的每一个文件都是由这个结构构成

 

struct proc_dir_entry {

                unsigned int low_ino; // inode编号

                umode_t mode;// 文件访问权限

                nlink_t nlink; //符号链接数目

                kuid_t uid;

                kgid_t gid;

                loff_t size; // 按字节计算文件大小,由于/proc下的文件时动态生成的,这里是0

                const struct inode_operations *proc_iops;//指向inode_operations类型的指针

                /*

                 * NULL ->proc_fops means "PDE is going away RSN" or

                 * "PDE is just created". In either case, e.g. ->read_proc won't be

                 * called because it's too late or too early, respectively.

                 *

                 * If you're allocating ->proc_fops dynamically, save a pointer

                 * somewhere.

                 */

                const struct file_operations *proc_fops; // 指向file_operations类型的指针

                struct proc_dir_entry *next, *parent, *subdir;// 指向父文件夹和子目录的第一个文件或文件夹得指针

                void *data;

                read_proc_t *read_proc;//指向读/proc下文件的函数

                write_proc_t *write_proc;//指向向/proc下文件写内容的函数

                atomic_t count;                                /* use count */

                int pde_users;   /* number of callers into module in progress */

                struct completion *pde_unload_completion;

                struct list_head pde_openers;   /* who did ->open, but not ->release */

                spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */

                u8 namelen; // 文件名长度

                char name[]; // 文件名

};

 

               

通过/proc文件系统修改系统控制参数实例

 

Example 1

                通过修改/proc/sys/vm/swappiness文件来控制交换算法在换出页时的积极程度。

Step1 查看当前值

                

                                通过cat命令查看swappiness文件内容(当前值为60)

Step2 修改当前值

                

                                通过echo命令将90写入到swappiness文件中(数字越大,换出越积极)

Step3 查看修改结果

                

                                修改后结果为90


有道笔记连接: http://note.youdao.com/share/?id=6649fefbde6072801dd6f57f8214dc3d&type=note


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

proc文件系统读写实验总结

Proc文件系统读写实验 实验如图: 如果之前做过重新编译、安装内核实验,建议新建虚拟机进行该实验。我在实验过程中遇到了几个问题就是因为之前编译安装过内核,而之所以不能继续用该虚拟机归根结底是...

linux Proc文件系统介绍及运用总结

引言 先说一个刚刚发现的问题: 前两天打开测试机发现速度非常慢,top一看,发现java占用CPU 99% 查看对应pid,发现这个是新的话单采集程序gather: ...

内核中针对proc文件系统的编程函数总结

一、头文件:     #include 二、创建与删除proc文件:     创建普通文件:         1.创建不可读写的普通文件       ...

内核中针对proc文件系统的编程函数总结

一、头文件: #include  二、创建与删除proc文件: 创建普通文件: 1.创建不可读写的普通文件 /*此函数只负责在proc中创建一个只读文件,即能在proc中看到这个文件。 ...

proc文件系统简介

  • 2013-09-26 16:42
  • 41KB
  • 下载

使用 /sys 文件系统访问 Linux 内核:比/proc 更为理想的访问内核数据的途径

使用 /sys 文件系统访问 Linux 内核:比/proc 更为理想的访问内核数据的途径 作者: feng 日期: 2010/12/22发表评论 (0)查看评论 程 ...

proc文件系统面面谈

  • 2008-01-19 17:29
  • 44KB
  • 下载

/proc——虚拟文件系统

/proc文件系统是一种内核和内核模块yong
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)