搜索
首页运维linux运维linux下proc是什么文件系统

linux下proc是什么文件系统

Mar 15, 2023 am 11:31 AM
linuxproc

在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

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

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是什么文件系统的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Linux:看看其基本结构Linux:看看其基本结构Apr 16, 2025 am 12:01 AM

Linux的基本结构包括内核、文件系统和Shell。1)内核管理硬件资源,使用uname-r查看版本。2)EXT4文件系统支持大文件和日志,使用mkfs.ext4创建。3)Shell如Bash提供命令行交互,使用ls-l列出文件。

Linux操作:系统管理和维护Linux操作:系统管理和维护Apr 15, 2025 am 12:10 AM

Linux系统管理和维护的关键步骤包括:1)掌握基础知识,如文件系统结构和用户管理;2)进行系统监控与资源管理,使用top、htop等工具;3)利用系统日志进行故障排查,借助journalctl等工具;4)编写自动化脚本和任务调度,使用cron工具;5)实施安全管理与防护,通过iptables配置防火墙;6)进行性能优化与最佳实践,调整内核参数和养成良好习惯。

了解Linux的维护模式:必需品了解Linux的维护模式:必需品Apr 14, 2025 am 12:04 AM

Linux维护模式通过在启动时添加init=/bin/bash或single参数进入。1.进入维护模式:编辑GRUB菜单,添加启动参数。2.重新挂载文件系统为读写模式:mount-oremount,rw/。3.修复文件系统:使用fsck命令,如fsck/dev/sda1。4.备份数据并谨慎操作,避免数据丢失。

Debian如何提升Hadoop数据处理速度Debian如何提升Hadoop数据处理速度Apr 13, 2025 am 11:54 AM

本文探讨如何在Debian系统上提升Hadoop数据处理效率。优化策略涵盖硬件升级、操作系统参数调整、Hadoop配置修改以及高效算法和工具的运用。一、硬件资源强化确保所有节点硬件配置一致,尤其关注CPU、内存和网络设备性能。选择高性能硬件组件对于提升整体处理速度至关重要。二、操作系统调优文件描述符和网络连接数:修改/etc/security/limits.conf文件,增加系统允许同时打开的文件描述符和网络连接数上限。JVM参数调整:在hadoop-env.sh文件中调整

Debian syslog如何学习Debian syslog如何学习Apr 13, 2025 am 11:51 AM

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

Debian中Hadoop版本怎么选Debian中Hadoop版本怎么选Apr 13, 2025 am 11:48 AM

选择适合Debian系统的Hadoop版本,需要综合考虑以下几个关键因素:一、稳定性与长期支持:对于追求稳定性和安全性的用户,建议选择Debian稳定版,例如Debian11(Bullseye)。该版本经过充分测试,拥有长达五年的支持周期,能够确保系统稳定运行。二、软件包更新速度:如果您需要使用最新的Hadoop功能和特性,则可以考虑Debian的不稳定版(Sid)。但需注意,不稳定版可能存在兼容性问题和稳定性风险。三、社区支持与资源:Debian拥有庞大的社区支持,可以提供丰富的文档和

Debian上TigerVNC共享文件方法Debian上TigerVNC共享文件方法Apr 13, 2025 am 11:45 AM

本文介绍如何在Debian系统上使用TigerVNC共享文件。你需要先安装TigerVNC服务器,然后进行配置。一、安装TigerVNC服务器打开终端。更新软件包列表:sudoaptupdate安装TigerVNC服务器:sudoaptinstalltigervnc-standalone-servertigervnc-common二、配置TigerVNC服务器设置VNC服务器密码:vncpasswd启动VNC服务器:vncserver:1-localhostno

Debian邮件服务器防火墙配置技巧Debian邮件服务器防火墙配置技巧Apr 13, 2025 am 11:42 AM

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境