iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux下proc是什么
  • 429
分享到

linux下proc是什么

2023-07-05 12:07:19 429人浏览 独家记忆
摘要

今天小编给大家分享一下linux下proc是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,proc是虚拟

今天小编给大家分享一下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是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网操作系统频道。

--结束END--

本文标题: linux下proc是什么

本文链接: https://www.lsjlt.com/news/351703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux下proc是什么
    今天小编给大家分享一下linux下proc是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,proc是虚拟...
    99+
    2023-07-05
  • linux中proc的概念是什么
    今天小编给大家分享一下linux中proc的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,proc...
    99+
    2023-06-29
  • Linux中/proc/meminfo是什么意思
    这篇文章主要为大家展示了“Linux中/proc/meminfo是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中/proc/meminfo是什么意思”这篇文章吧。Linux ...
    99+
    2023-06-25
  • Linux 下的 /proc 目录介绍
    Linux 下的 /proc 目录介绍 目录 Linux 下的 /proc 目录介绍1、/proc 目录包含的文件及其作用2、/proc 目录包含的子目录及其内容(1)/proc/bus(2)...
    99+
    2023-09-06
    linux 运维 服务器
  • Linux proc目录下子文件或子文件夹有什么作用
    这篇文章主要介绍“Linux proc目录下子文件或子文件夹有什么作用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux proc目录下子文件或子文件夹有什么作用”文章能帮助大家解决问题。一....
    99+
    2023-07-05
  • Linux的proc怎么使用
    本篇内容介绍了“Linux的proc怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、简介在内核中使用printk可以讲调试信息保存...
    99+
    2023-06-16
  • Linux系统下的proc目录有哪些文件
    本篇内容介绍了“Linux系统下的proc目录有哪些文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!/proc/devices文件 这个文...
    99+
    2023-06-12
  • c语言中proc指的是什么意思
    在C语言中,“proc"通常是指"procedure”,即过程或函数的意思。Procedure是C语言中的一个关...
    99+
    2024-02-29
    c语言
  • Linux下的ldd是什么
    本篇内容主要讲解“Linux下的ldd是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下的ldd是什么”吧!首先ldd不是一个可执行程序,而只是一个shell脚本ldd能够显示可执...
    99+
    2023-06-17
  • linux下ice指的是什么
    这篇文章主要为大家展示了“linux下ice指的是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux下ice指的是什么”这篇文章吧。linux下的ice是“The Internet C...
    99+
    2023-06-29
  • Linux下etc目录是什么
    小编给大家分享一下Linux下etc目录是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ETC简介  在“etc/bin”中的“etc”真正代表的是“etce...
    99+
    2023-06-28
  • linux下core文件是什么
    这篇文章将为大家详细讲解有关linux下core文件是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。core文件简介:Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进...
    99+
    2023-06-28
  • linux下gui指的是什么
    这篇文章主要为大家展示了“linux下gui指的是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux下gui指的是什么”这篇文章吧。在linux中,gui是“Graphical Use...
    99+
    2023-06-29
  • linux上下文指的是什么
    本文小编为大家详细介绍“linux上下文指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux上下文指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在linux中,上下文又叫CPU上下文,是...
    99+
    2023-07-04
  • Linux下的链接文件是什么
    这篇文章主要介绍“Linux下的链接文件是什么”,在日常操作中,相信很多人在Linux下的链接文件是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下的链接文件是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-12
  • Linux下的查找命令是什么
    Linux下的查找命令是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。查找是我们每天都在做的事情,早上醒来找下手机,出门之前查下公交,坐下之后查下资料,分析数据查下模式。查...
    99+
    2023-06-28
  • Linux下php7安装命令是什么
    这篇“Linux下php7安装命令是什么”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“Linux下php7安装命令是什么”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获...
    99+
    2023-06-06
  • Linux shell下常用命令是什么
    小编给大家分享一下Linux shell下常用命令是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!这些是我收集了多年的Linux shell的30个有趣的命令和提示。 监控命令(每2秒运行一次)watch "...
    99+
    2023-06-09
  • Linux下很好的Python IDE是什么
    这篇文章给大家分享的是有关Linux下很好的Python IDE是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。介绍我将向你介绍一个集成开发环境 - PyCharm, 你可以在它上面使用 Python 编程语...
    99+
    2023-06-16
  • Linux下DHCP工作原理是什么
    这篇文章主要介绍了Linux下DHCP工作原理是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下DHCP工作原理是什么文章都会有所收获,下面我们一起来看看吧。DHCP原理DHCP租约四部曲A:客户...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作