linux下proc是什么文件系统

linux中,proc是虚拟文件系统,是一个控制中心,可以通过更改其中某些文件改变内核运行状态;它也是内核提空给我们的查询中心,用户可以通过它查看系统硬件及当前运行的进程信息。proc系统只存在内存当中,以文件系统的方式为访问系统内核数据的操作提供接口,可以通过更改其中的某些文件来改变内核运行状态。

linux下proc是什么文件系统

本教程操作环境:linux7.3系统、Dell G3电脑。

proc是什么文件系统

proc被称为虚拟文件系统,它是一个控制中心,可以通过更改其中某些文件改变内核运行状态,它也是内核提空给我们的查询中心,用户可以通过它查看系统硬件及当前运行的进程信息。

Linux中许多工具的数据来源正是proc目录中的内容,比如lsmod的命令是cat /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和ACCESSED/YOUNG,有1、2、3、4四种策略,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过滤器,如00000037(man core),不同的二进制位表示过滤不同的信息。

cpuset

文件,控制CPU和内存的节点(man cpuset)。

cwd -> /

目录,符号链接到当前工作目录。

environ

文件,环境变量。

exe

文件,符号链接到启动进程的完整命令。q

fd

目录,包含当前的fd,这些fd符号链接到真正打开的文件。

fdinfo

目录,包含当前fd的信息,不同类型的fd信息不同。

gid_map

文件,从用户命名空间映射的组ID的信息(man user_namespaces)。

io

文件,IO信息。

limits

文件,资源软、硬限制(man getrlimit)。

loginuid

文件,审计守护进程在内核中启用审计工具。在内核中打开审计功能之前运行的任何进程都将获得 loginuid 4294967295。
4294967295 只是 (unsigned long) -1。-1 表示未设置 loginuid。对于不是由任何登录进程(例如守护进程)产生的进程,这是正常行为。loginuid 默认为 -1;每当您登录时(在 tty/在 DM/通过 ssh),pam_loginuid 模块都会将其更改为您的用户 ID,并且该值由子进程保留。

map_files

目录,包括一些内存映射文件(man mmap),文件名格式为BeginAddress-EndAddress,符号链接到映射的文件,需要配置CONFIG_CHECKPOINT_RESTORE。

maps

文件,内存映射信息。

mem

文件,用于通过open、read、lseek访问进程的内存页。

mountinfo

文件,挂载信息,格式为44 41 253:1 / / rw,relatime shared:35 master:1 – ext4 /dev/vda1 rw,data=ordered,以空格作为分隔符,从左到右各字段的意思分别是唯一挂载ID、父挂载ID、文件系统的设备主从号码、文件系统中挂载的根节点、相对于进程根节点的挂载点、挂载权限等挂载配置、可选配置、短横线表示前面可选配置的结束、文件系统类型、文件系统特有的挂载源或者为none、额外配置。

mounts

文件,挂载在当前进程的文件系统列表,/dev/vda1 / ext4 rw,relatime,data=ordered 0 0 格式参照(man fstab)。

mountstats

文件,挂载信息,格式形如 device /dev/vda1 mounted on / with fstype ext4 [statistics]。

net

目录,保存进程的网络相关文件和目录。

ns

目录,保存了每个名字空间的入口,详见(man namespaces)。

numa_maps

文件,numa即Non Uniform Memory Access,详见(man numa)。

oom_adj

文件,调整OOM分数,OOM即Out Of Memory,发生OOM时OOM Killer根据OOM分数杀掉分数高的进程,默认值为0,会继承自父进程的设置。

oom_score

文件,OOM分数。

oom_score_adj

文件,OOM分值介于-1000到1000之间。

pagemap

文件,当前进程的虚拟内存页映射信息,需要配置CONFIG_PROC_PAGE_MONITOR。

personality

文件,使进程个性标志在/proc中可见。因为一个进程的个性可能是敏感的(例如READ_IMPLIES_EXEC),所以这个文件只能被进程所有者读。

projid_map

文件,与用户和组ID映射类似,可以为用户名称空间创建项目ID映射。(项目id用于磁盘配额;请参见setquota(8)和quotactl(2)。)

patch_state

文件,公开每个任务的补丁状态值,以便用户可以确定哪些任务正在阻止修补操作的完成。

root -> /

目录,链接到了当前进程的根目录。

sched

文件,进程的调度统计、状态信息。

schedstat

文件,进程的调度信息。

sessionid

文件,进程会话ID,默认4294967295。

setgroups

文件,如果用户命名空间中包含进程pid的进程被允许使用setgroups(2)系统调用,则/proc/[pid]/setgroups文件显示字符串”allow”;如果用户名称空间中不允许setgroups(2),则显示“deny”。注意,不管/proc/[pid]/setgroups文件中的值是多少(也不管进程的能力是多少),如果/proc/[pid]/gid_map还没有设置,调用setgroups(2)也是不允许的。

smaps

文件,内存映射信息,类似于pmap命令,需要配置CONFIG_PROC_PAGE_MONITOR。

stack

文件,内核空间的函数调用堆栈,需要配置CONFIG_STACKTRACE。

stat

文件,进程状态信息,用于ps命令。

statm

文件,进程内存使用信息,以空格分隔的7个数字,从左到右分别表示程序总大小、常驻内存大小、共享内存页大小、text code、library、data + stack、dirty pages。

status

文件,可读性好的进程相关信息。

syscall

文件,系统调用相关信息,需要配置CONFIG_HAVE_ARCH_TRACEHOOK。

task

目录,每个线程一个子目录,目录名为线程ID。

timers

文件,POSIT定时器列表,包括定时器ID、信号等信息。

uid_map

文件,用户ID映射信息。

wchan

文件,进程休眠时内核中相应位置的符号表示,如do_wait。

acpi/wakeup

文件,设备唤醒操作。

buddyinfo

巧文书 巧文书

巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

巧文书 61 查看详情 巧文书

文件,用于诊断内存碎片问题。

bus

目录,已安装的总线。

input/devices

文件,输入设备信息。

input/handlers

文件,句柄信息。

pci/00/00.0-08.0

文件,pci插口信息。

pci/devices

文件,pci设备信息。

cgroups

cgroups信息汇总,字段 subsys_name hierarchy num_cgroups enabled。

cmdline

文件,系统启动时传递给Linux内核的参数,如lilo、grub等boot管理模块。

consoles

文件,要查看系统控制台/dev/console中当前使用的设备行字符,你可以简单地查看/proc/console文件.

cpuinfo

文件,CPU和系统架构信息,lscpu命令使用这个文件。

crypto

文件,内核加密API提供的加密列表。

devices

文件,设备相关信息。

diskstats

文件,磁盘状态。

dma

文件,dma即Direct Memory Access。

driver

nvram

文件,提供对 PC 和 Ataris 上实时时钟中的非易失性存储器的访问。在 PC 上,这通常称为 CMOS 内存并存储 BIOS 配置选项。

rtc

文件,系统运行时配置。

execdomains

文件,执行域列表。

fb

文件,Frame Buffer信息,需要配置CONFIG_FB。

filesystems

文件,内核支持的文件系统类型(man filesystems)。

fs

目录,挂载的文件系统信息。

interrupts

文件,每个CPU每个IO的中断信息。依次显示irq编号,每个cpu对该irq的处理次数,中断控制器的名字,irq的名字,以及驱动程序注册该irq时使用的名字。

iomem

文件,IO内存映射信息。

ioports

文件,IO端口信息。

irq

目录,下面会为每个注册的irq创建一个以irq编号为名字的子目录。

kallsyms

文件,用于动态链接和和模块绑定的符号定义。

kcore

文件,系统中ELF格式的物理内存。

keys

文件,公开了读取线程具有查看权限的键列表,并提供了有关每个键的各种信息。线程不需要拥有密钥,该密钥在此文件中可见。

key-users

文件,列出了在系统上至少具有一个密钥的每个用户ID的各种信息。

kmsg

文件,内核日志信息,dmsg命令使用这个文件。

kpagecount

文件,每个物理页帧映射的次数,需要配置CONFIG_PROC_PAGE_MONITOR。

kpageflags

文件,每个物理页帧的掩码,需要配置CONFIG_PROC_PAGE_MONITOR。

loadavg

文件,当前系统负载。

locks

文件,当前文件锁的状态。

mdstat

文件,虚拟设备信息(软raid等)。

meminfo

文件,系统内存使用统计,free命令使用了这个文件。

misc

文件,其他的主要设备(设备号为10)上注册的驱动。

modules

文件,系统加载的模块信息,相关命令为lsmod。

mounts -> self/mounts

文件,链接到了/self/mounts。

mtrr

文件,Memory Type Range Registers。

net -> self/net

目录,网络伪文件系统相关。

pagetypeinfo

文件,其他页面分配器信息。

partitions

文件,分区信息。

sched_debug

文件,调度器debug信息。

schedstat

文件,调度器信息。

scsi

目录,SCSI接口设备。

self -> 22699

目录,链接到了当前进程所在的目录。

slabinfo

文件,内核缓存信息,需要配置CONFIG_SLAB。

softirqs

文件,系统软中断信息。

stat

文件,系统和内核的统计信息。

swaps

文件,swap分区使用情况。

sys

目录,系统变量相关信息。

sysrq-trigger

文件,可写,触发系统调用。

sysvipc

目录,包括msg、sem、shm三个文件,为System V IPC对象。

timer_list

文件,还在运行着的定时器列表。

timer_stats

文件,定时器状态。

tty

目录,tty设备相关。

uptime

文件,系统更新时间和进程空闲时间。

version

文件,内核版本信息。

vmallocinfo

文件,虚拟内存分配信息。

vmstat

文件,内存统计信息,以键值对形式显示。

zoneinfo

文件,内存区块信息,用于分析虚拟内存的行为。

相关推荐:《Linux视频教程》

以上就是linux下proc是什么文件系统的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/538086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
华为手机蓝屏刷机准备_华为手机蓝屏刷机准备步骤
上一篇 2025年11月9日 13:41:12
谷歌将利用生成式人工智能提升搜索广告的相关性
下一篇 2025年11月9日 13:41:18

相关推荐

  • 如何解决Linux软件包冲突 yum和apt依赖问题处理方案

    如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案

    处理linux软件包冲突的核心方法是利用包管理器自带修复机制并手动干预。1. 清理缓存与元数据,重新更新以解决临时错误;2. 使用跳过损坏包、强制重装等方式尝试自动修复;3. 禁用或调整第三方仓库优先级以避免冲突源;4. 手动安装特定版本依赖或卸载冲突包;5. 对于apt系统,使用–fi…

    2026年9月23日 用户投稿
    500
  • 关于java打包成jar在linux上运行的一些问题「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 关于将Java项目导出为可运行的jar文件,请参考下图: 如果在Linux上运行时,前两个选项导出的jar包报错,提示找不到依赖包,那么建议使用第三个选项。这个选项会生成一个jar包和一个文件夹,文件夹内包含jar包的所有依赖。将这两个文件一起上传到Linu…

    2026年9月23日
    000
  • VSCode如何配置生物信息开发环境 VSCode基因组数据分析工作流

    vscode在生物信息学中的核心配置是通过安装python、r、remote-ssh/containers/wsl等扩展,结合conda管理环境,实现多语言支持与远程开发;2. 处理大规模基因组数据时应避免直接打开大文件,而是通过集成终端调用命令行工具(如samtools、bcftools)在远程服…

    2026年9月23日
    000
  • go 语言版本控制器

    管理不同版本的go语言环境是一项繁琐的任务,尤其是当需要为每个go特性单独安装go环境时。为了简化这一过程,我们需要一个版本管理工具来统一管理go环境。以下是关于go版本控制器g的详细介绍。 一、Go版本控制器g简介 g是一个适用于Linux、macOS和Windows的命令行工具,旨在提供一个方便…

    2026年9月23日
    000
  • Windows 下安装和配置 WSL(Windows 10 子系统)

    前言与介绍 作为开发者,经常需要使用 Linux 环境,甚至信息学奥林匹克竞赛(NOI)也采用 Linux 作为编译环境。然而,Linux 系统上缺乏一些必备工具,如 Photoshop 和 Internet Download Manager。因此,Windows 系统同样不可或缺,频繁在两个系统间…

    2026年9月23日
    200
  • CentOS服务器安装宝塔(图文详解)

    CentOS服务器安装宝塔(图文详解)CentOS服务器安装宝塔(图文详解)CentOS服务器安装宝塔(图文详解)CentOS服务器安装宝塔(图文详解)

    一、概述 宝塔是一款安全且高效的服务器管理面板。 快速创建和管理web项目 提供方便的网站管理功能,例如域名绑定,一键部署SSL证书,调整网站配置等。 >>查看 快速查看服务器资源使用情况 监测CPU、内存、磁盘IO、网络IO数据,并可设置记录保存天数,随时查看特定日期的数据。 >…

    2026年9月23日 用户投稿
    100
  • VSCode配置Java编程环境(手把手教学,环境搭建不求人)

    安装jdk并配置环境变量,推荐使用java 11或java 17等lts版本,通过命令行执行java -version和javac -version验证安装成功;2. 下载并安装vscode本体,按照默认安装流程完成;3. 在vscode中安装“extension pack for java”扩展包…

    2026年9月23日
    100
  • mysql安装完成如何事件 mysql定时任务设置教程

    mysql安装完成如何事件 mysql定时任务设置教程mysql安装完成如何事件 mysql定时任务设置教程mysql安装完成如何事件 mysql定时任务设置教程mysql安装完成如何事件 mysql定时任务设置教程

    要使用mysql的事件调度器设置定时任务,首先需开启事件调度器,其次创建定时事件,再查看管理事件,最后注意权限与时间格式等问题。具体步骤如下:1. 开启事件调度器:通过命令或配置文件启用;2. 创建事件:使用create event定义执行频率与sql操作;3. 管理事件:可查看、修改或删除已有事件…

    2026年9月23日 用户投稿
    100
  • Java Web项目在无Maven/Eclipse环境下生成WAR包的实践指南

    本文详细介绍了如何在没有Maven或Eclipse等集成开发环境或构建工具的情况下,为Java Web项目手动或通过Apache Ant工具生成WAR文件。教程涵盖了WAR文件的基本结构、使用Ant进行编译和打包的具体步骤,并提供了Ant构建脚本示例,旨在帮助开发者理解并实践WAR包的独立构建过程。…

    2026年9月23日
    100
  • 优麒麟 25.10 版本正式发布

    优麒麟 25.10 正式版现已上线,此版本将提供长达9个月的支持周期,基于最新的 linux 6.17 内核打造,在基础库、子系统及核心组件等方面实现了全面升级,显著提升了系统的稳定性与兼容性,同时推出了焕然一新的软件商店。 新增特性 1. 搭载 Linux 6.17 内核 优麒麟 25.10 集成…

    2026年9月23日
    100
  • linux如何优雅的关机

    优雅关机的三大法宝:拔电源、shutdown、poweroff 及其对硬件和数据的影响 在讨论关机方法之前,先了解一下机械硬盘的内部结构。 那固态硬盘SSD呢? FTL工作示意图。FTL表对SSD至关重要,如果在FTL写回Flash之前突然断电,内存数据丢失,FTL表也将丢失。因此,高端SSD和服务…

    2026年9月23日
    100
  • 四种获取fasta序列长度的方法

    在处理fasta序列时,我们常常需要知道每条序列的长度。今天小编将与大家分享四种获取fasta序列长度的方法。 一、使用awk 以下是使用awk获取fasta序列长度的代码: awk ‘/^>/{if (l!=””) print l; print; l=0; next}{l+=length($…

    2026年9月23日
    200
  • VSCode如何实现代码版本对比 VSCode Git差异对比的高效使用方法

    vscode通过scm视图直接对比工作区与head的差异;2. 点击已暂存文件可查看暂存区与head的差异;3. 通过命令面板、scm历史记录或右键菜单可对比任意版本或文件;4. 差异视图支持并排和内联模式,并提供跳转导航;5. 时间线视图可追溯文件级提交历史并对比各版本;6. gitlens扩展增…

    2026年9月23日
    600
  • Flink项目实践 | Flink 单机安装部署

    Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署

    apache flink 是一个用于对无界和有界数据流进行状态计算的框架和分布式处理引擎。flink 设计旨在所有常见集群环境中运行,并以内存速度和任意规模进行计算。 为了深入了解 Flink,首先需要搭建其运行环境。 Flink 可以在所有类似 UNIX 的环境中运行,包括 Linux,Mac O…

    2026年9月23日 用户投稿
    200
  • VSCode配置MacOS C环境 详细图解VSCode搭建C++开发

    在mac++os上用vscode配置c/c++环境的关键是安装xcode command line tools以获取clang编译器和lldb调试器,然后安装vscode的c/c++扩展,接着创建项目文件夹和源文件,通过配置tasks.json定义编译任务,确保使用clang编译当前文件并生成可执行…

    2026年9月23日
    100
  • Java javac 命令与当前工作目录解析

    在Java编译环境中,javac命令的“当前目录”指的是命令被执行的物理位置,而非源文件所在的目录。理解这一概念对于正确配置和管理Java项目的编译路径至关重要,特别是当默认的classpath设置为.时,它决定了编译器查找类文件的起点。 1. javac 命令与当前工作目录的定义 在操作系统中,当…

    2026年9月23日
    200
  • Bash Shell 中单引号和双引号的区别

    Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别

    在 linux 命令行中,引号是处理文件名中的空格和特殊字符的常用工具。引号在 shell 脚本中具有“特殊功能”,可能让初学者感到困惑。让我们详细探讨不同类型的引号字符及其在 shell 脚本中的用法。 有四种不同类型的引号字符: 单引号 ‘双引号 “反斜杠 反引号 ` 除…

    2026年9月23日 用户投稿
    600
  • Linux中如何查看服务日志?journalctl与syslog使用指南

    Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南

    排查linux服务问题时,首选journalctl或syslog类系统查看日志。journalctl适用于systemd系统,可查看内核消息、服务启动输出等,支持按时间、单元、优先级过滤;syslog适用于传统系统,需服务主动发送日志,支持集中管理。掌握两者使用能有效定位问题。 在Linux系统中排…

    2026年9月23日 用户投稿
    200
  • Reflection AI 完成 20 亿美元融资,打造“开放智能”

    美国人工智能初创企业 reflection ai 宣布成功募集 20 亿美元资金,其中英伟达领衔投资 8 亿美元,推动公司估值跃升至 80 亿美元。这家成立仅一年的科技新星,致力于打造“人人可及的前沿开放智能(open intelligence)”。 Reflection AI 表示,已集结一支由顶…

    2026年9月23日
    500
  • [272]如何把Python脚本导出为exe程序

    [272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序

    文章目录:一. PyInstaller简介二. PyInstaller在Windows下的安装三. 打包四. 小实例(Windows下) 附加:pyinstaller简介 PyInstaller能够将Python脚本打包成可执行程序,使得在没有Python环境的机器上也可以运行这些程序。 PyIns…

    2026年9月23日 用户投稿
    200

发表回复

登录后才能评论
关注微信