什么是Linux系统中的proc目录
哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《什么是Linux系统中的proc目录》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
在linux中,proc是虚拟文件系统,是一个控制中心,可以通过更改其中某些文件改变内核运行状态;它也是内核提空给我们的查询中心,用户可以通过它查看系统硬件及当前运行的进程信息。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
文件,用于诊断内存碎片问题。
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系统中的proc目录》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

- 上一篇
- 使用Vue文档中的异步请求函数

- 下一篇
- 分享Python在云安全领域的应用实践
-
- 文章 · linux | 3小时前 |
- Linux版Postman错误追踪与解决方案
- 436浏览 收藏
-
- 文章 · linux | 3小时前 |
- Ubuntu查看hostname的终极命令
- 483浏览 收藏
-
- 文章 · linux | 3小时前 |
- CPUInfo中modelname详解:CPU型号及详细信息
- 124浏览 收藏
-
- 文章 · linux | 3小时前 |
- Linuxcmatrix性能优化技巧详解
- 254浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linux下Kafka消息顺序处理的实现技巧
- 268浏览 收藏
-
- 文章 · linux | 4小时前 |
- DebianSyslog防护攻略:抵御攻击指南
- 192浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux虚拟机性能优化技巧全攻略
- 486浏览 收藏
-
- 文章 · linux | 6小时前 |
- GIMP插件Linux安装教程及使用指南
- 480浏览 收藏
-
- 文章 · linux | 6小时前 |
- Linuxmount命令错误代码解析攻略
- 124浏览 收藏
-
- 文章 · linux | 6小时前 |
- Linux虚拟机资源优化技巧及分配方法
- 492浏览 收藏
-
- 文章 · linux | 6小时前 |
- LinuxAliases命令使用技巧
- 325浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- AI Make Song
- AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
- 16次使用
-
- SongGenerator
- 探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
- 12次使用
-
- BeArt AI换脸
- 探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
- 12次使用
-
- 协启动
- SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
- 16次使用
-
- Brev AI
- 探索Brev AI,一个无需注册即可免费使用的AI音乐创作平台,提供多功能工具如音乐生成、去人声、歌词创作等,适用于内容创作、商业配乐和个人创作,满足您的音乐需求。
- 17次使用
-
- 命令行工具:应对Linux服务器安全挑战的利器
- 2023-10-04 501浏览
-
- 如何使用Docker进行容器的水平伸缩和负载均衡
- 2023-11-07 501浏览
-
- linux .profile的作用是什么
- 2024-04-07 501浏览
-
- 如何解决s权限位引发postfix及crontab异常
- 2024-11-21 501浏览
-
- 如何通过脚本自动化Linux上的K8S安装
- 2025-02-17 501浏览