在linux中,proc是一个虚拟文件系统,是一个控制中心,可以通过更改一些文件来改变核心的运行状态;它也是我们的查询中心,用户可以查看系统硬件和当前运行过程信息。Proc系统只存在内存,通过文件系统为访问系统内核数据的操作提供接口,可以通过更改一些文件来改变内核的操作状态。
本教程操作环境:linux7.3系统、Dell G3电脑。
什么是文件系统?
Proc被称为虚拟文件系统。它是一个控制中心,可以通过更改一些文件来改变核心的运行状态。它也是一个核心清空到我们的查询中心。用户可以查看系统硬件和当前运行过程信息。
Linux中许多工具的数据源是proc目录中的内容,例如lsmod的命令是catt /proc/modules的别名。
Linux中有一种特殊的伪文件系统,用于使用与文件界面统一的操作来完成各种功能,如ptyfs、devfs、sysfs和procfs。procfs是应用最广泛的伪文件系统之一。
就文件系统术语而言,/ proc目录不是真正的文件系统,它是一个虚拟文件系统,有时也被称为过程信息伪文件系统。
proc 放置的数据都在内存中,如系统核心、过程、外部设备状态和网络状态。因为目录中的数据都在内存中,所以它本身并不占用任何硬盘空间。
procfs是Linux内核信息的抽象文件接口。大量内核中的信息和可调参数作为常规文件映射到目录树中,使我们能够通过echo或cat等文件操作命令简单直接地检索和调整系统信息。与此同时,procfs还提供了一个接口,使我们自己的内核模块或用户态程序能够通过procfs传输参数。在今天的Linux系统中,大量的系统工具也通过procfs获取内核参数,比如ps、lspci等,没有procfs,他们可能无法正常工作。
Proc文件系统是一种伪文件系统,它只存在于内存中,不占用外存空间。它以文件系统的形式为访问系统内核数据的操作提供界面。用户和应用程序可以通过proc获取系统信息,并可以更改内核的某些参数。由于系统信息,如过程,是动态变化的,当用户或应用程序读取proc文件时,proc文件系统会动态地从系统中读取和提交所需的信息。
linux proc文件系统详细说明
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其他常见的文件系统不同,/proc是一种伪文件系统(即虚拟文件系统,只存在内存,不占用外存空间。它以文件系统的形式为访问系统内核数据的操作提供接口),存储一系列当前内核运行状态的特殊文件。用户可以通过这些文件查看当前运行过程中的系统硬件和信息,甚至通过更改其中一些文件来改变内核的运行状态。
PID
目录,系统中当前运行的每个过程都有相应的目录在/proc下,以进程为基础 PID号为目录名.
attr
目录,提供安全相关属性,可读可写,以支持SELinux等安全模块,需要配置CONFIG_SECURITY。
current
文件,当前安全相关属性。
exec
执行命令execve时设置的安全相关属性。
fscreate
执行命令open文件、mkdir、symlink、mknod时设置的安全相关属性。
keycreate
执行命令add_key时设置的安全相关属性。
prev
文件,最后一次执行命令execve时的安全相关属性,即前一个“//proc/[pid]/attr/current”。
sockcreate
文件,创建socket时设置的安全相关属性。
autogroup
该文件可用于修改分配给自动分组的CPU带宽。这是通过“在“”中”。nice在范围内写入一个数字来设置自动分组的nice值。取值范围为 19(低优先级)~ -20(高优先级)。(写入值超过此范围会导致write(2)失败,错误为EINVAL。)
auxv
文件,ELF解释器信息,格式为unsigned long类型的ID加上unsigned long类型的值,最后是两个0(man getauxval)。
cgroup
文件、过程所属的控制组,格式为冒号分隔三个字段,即结构ID、子系统、控制组需要配置CONFIG_CGROUPS。
clear_refs
文件,只写,只用于过程所有者,清除PG_Referenced和用于估算内存使用量的PG_ReferencedACCESSED/YOUNG,有1、2、3、44种策略,1表示清除所有相关页面,2表示清除相关匿名页面,3表示清除相关映射文件页面,4表示清除相关soft-dirty页面,需要配置CONFIG_PROC_PAGE_MONITOR。
cmdline
文件,只读,保存启动过程的完整命令行字符串,如果是僵尸过程,则该文件为空。
comm
文件、过程命令名、不同线程(man clone prctl pthread_setname_np)可能有不同的线程名,位置在“task/[tid]/comm名字长度超过TASK_COMM_LEN会被截断。
coredump_filter
文件、coredump过滤器,如000037(man core),不同的二进制位表示过滤不同的信息。
cpuset
文件、控制CPU和内存的节点(man cpuset)。
cwd -
声明:本文为原创,版权声明:本文采用[BY-NC-SA]协议进行授权,如无特别说明,转载必须注明本文地址!
原文地址:linux下proc是什么文件系统发布于2023-06-09 09:15:02