Linux中PROC文件系统的功能

Linux内核具有两个主要功能:控制对计算机上物理设备的访问,并计划进程与这些设备进行交互的时间和方式。 / proc /目录(也称为proc文件系统 )包含特殊文件的层次结构,这些文件代表内核的当前状态-允许应用程序和用户查看内核在系统中的视图。

/ proc /目录中,您可以找到大量信息,详细说明系统硬件和当前正在运行的任何进程。 另外,用户和应用程序可以操纵/ proc /目录树中的某些文件,以将配置更改传达给内核。

在Linux下,所有数据都存储为文件。 大多数用户都熟悉两种主要文件类型:文本文件和二进制文件。 但是/ proc /目录包含另一种类型的文件,称为虚拟文件 。 因此, / proc /通常被称为虚拟文件系统 。 这些虚拟文件具有独特的品质。 它们中的大多数被列为零字节,但是当查看一个字节时,它可能包含大量信息。 此外,虚拟文件​​上的大多数时间和日期设置都会反映当前时间和日期,表明它们会不断更新。

我列举了其中一些例子:

1.

此文件用于显示计算机具有的CPU类型以及其他与处理器相关的参数:

中央情报局

  • 处理器 —为每个处理器提供一个标识号。 在具有一个处理器的系统上,仅存在0。
  • cpu系列 —权威地标识系统中处理器的类型。 对于基于Intel的系统,将数字放在“ 86”前面以确定该值。 这对于尝试识别较旧的系统(例如586、486或386)的体系结构特别有用。由于为这些特定体系结构中的每种体系结构编译了一些RPM软件包,因此该值还可以帮助用户确定要安装的软件包。
  • 型号名称 -显示处理器的通用名称,包括其项目名称。
  • cpu MHz —以兆赫为单位显示处理器的精确速度,精确到小数点后千位。
  • 缓存大小 -显示处理器可用的2级内存缓存量。
  • 兄弟姐妹 —显示使用超线程的体系结构在同一物理CPU上的兄弟姐妹CPU的数量。
  • 标志 -定义有关处理器的许多不同质量,例如浮点单元(FPU)的存在以及处理MMX指令的能力。

2.

  该文件主要用于诊断内存碎片问题。 使用伙伴算法,每一列表示在任何给定时间可用的特定顺序(特定大小)的页面数。 例如,对于区域DMA(直接内存访问),在2 ^(0 * PAGE_SIZE)个内存块中有90个。 类似地,有2个(1 * PAGE_SIZE)块中的6个和2 ^(2 * PAGE_SIZE)个内存块中的2个可用。

好友信息

DMA行引用系统上的前16 MB,HighMem行引用系统上大于4 GB的所有内存,而Normal行引用之间的所有内存。

3.

  该文件列出了Linux内核使用的所有已安装的加密密码,包括每个密码的其他详细信息。 一个示例/ proc / crypto文件如下所示:

加密货币

4.

该文件显示当前配置的各种字符和块设备(不包括未加载模块的设备)。 以下是此文件的示例输出:

设备

/ proc / devices的输出包括设备的主要编号和名称,并分为两个主要部分:字符设备和块设备。

5.

该文件显示内核当前支持的文件系统类型的列表。 通用/ proc / filesystems文件的示例输出看起来类似于以下内容:

fs

第一列表示文件系统是否已安装在块设备上。 那些以nodev开头的文件未安装在设备上。 第二列列出了支持的文件系统的名称。

如果未将其中一个指定为参数,那么mount命令会在此处列出的文件系统中循环。

6.

该文件提供了有关一段时间内CPU和IO的平均负载以及正常运行时间和其他命令使用的其他数据的信息。 一个示例/ proc / loadavg文件看起来类似于以下内容:

加载

前三列衡量最后一分钟,五分钟和十分钟的CPU和IO利用率。 第四列显示当前正在运行的进程数和进程总数。 最后一列显示最后使用的进程ID。

7.

该文件显示了装入内核的所有模块的列表。 它的内容根据您系统的配置和使用而有所不同,但应以与以下示例/ proc / modules文件输出类似的方式进行组织:

模组

  • 第一列包含模块的名称。
  • 第二列是指模块的内存大小(以字节为单位)。
  • 第三列列出了当前加载了多少个模块实例。 零值表示已卸载的模块。
  • 第四列指出该模块是否要依赖另一个模块才能运行,并列出这些其他模块。
  • 第五列列出了模块所处的负载状态:“活动”,“正在加载”或“正在卸载”是唯一可能的值。
  • 第六列列出了已加载模块的当前内核内存偏移量。 该信息可用于调试目的或用于分析工具(例如oprofile)。

8.

该文件提供了系统正在使用的所有安装的列表:

坐骑

在此找到的输出与/ etc / mtab的内容类似,不同的是/ proc / mounts是最新的。

第一列指定要挂载的设备,第二列显示挂载点,第三列指示文件系统类型,第四列指示以只读(ro)或读写(rw)挂载该设备)。 第五和第六列是伪值,旨在匹配/ etc / mtab中使用的格式。

9.

该文件包含分区块分配信息。 从基本系统中对该文件的采样类似于以下内容:

隔断

除以下各列外,此处的大多数信息对用户而言意义不大:

  • major —带有该分区的设备的主号码。 / proc / partitions(3)中的主要数字对应于/ proc / devices中的块设备ide0。
  • minor-带有该分区的设备的次编号。 这用于将分区分为不同的物理设备,并与分区名称末尾的数字相关。
  • #blocks —列出特定分区中包含的物理磁盘块数。
  • name —分区的名称。

/ proc /文件系统中查看不同的虚拟文件时,某些信息很容易理解,而有些则难以理解。 这就是为什么存在lspci,apm,free,top等实用程序从虚拟文件中提取数据并以有用的方式显示它们的原因。


翻译自: https://www.javacodegeeks.com/2014/02/the-power-of-proc-file-system-in-linux.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值