【Linux】proc文件系统

这篇具有很好参考价值的文章主要介绍了【Linux】proc文件系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Linux】proc文件系统

前言

 一、proc文件系统简介

1.1 proc文件系统是什么?

1.2 proc文件系统的作用和特点

1.3 proc文件系统提供的信息

二、proc文件系统常用节点详述

2.1 /proc/cpuinfo 

2.2 /proc/meminfo

2.3 /proc/kallsyms

2.4 /proc/interrupts

2.5 /proc/loadavg

三、总结


前言

重要的环节:带着问题不断前进

在Linux系统中,有一些特殊文件系统,用于进行文件接口统一的操作来完成各种功能,proc文件系统就是其中一个。

  1. proc文件系统
  2. proc文件系统的作用和特点
  3. proc文件系统可以提供什么信息
  4. proc文件系统常见的用法

在学习Linux笔记老师的课程中,老师讲的精简深入,但学习入门还需要一些知识背景,这里我进行了拓展和总结。

参考文章和视频:https://xuesong.blog.csdn.net/article/details/109522945

https://live.csdn.net/v/263371?spm=1001.2014.3001.5501

 一、proc文件系统简介

1.1 proc文件系统是什么?

Linux系统上的/proc目录是一种文件系统,即proc文件系统。

/与其它常见的文件系统不同的是,/proc是虚拟文件系统,它不包含任何磁盘上的文件,而是由内核在运行时动态生成的文件和目录。

在Linux中存在着一类特殊的伪文件系统,进行文件接口统一的操作来完成各种功能,例如ptyfs、devfs、sysfs和procfs。而procfs就是其中应用最广泛的一种伪文件系统。

proc 文件系统的挂载点是 /proc,它最早设计用于提供进程运行时的信息,比如进程的运行状态、进程当前打开的文件、创建的套接字、虚拟内存的排布等,这也是它名字的由来 (Process Data Filesystem)。后来,很多系统级的内核信息也被加入进来,如中断信息、设备映射信息、内存状态等等。

总的来说,/proc 文件系统为系统管理员和开发人员提供了一种方便的方式来查询和调试系统的状态和性能。

1.2 proc文件系统的作用和特点

proc 文件系统提供了一些内核中各个子系统的信息,它使得在用户空间简单地使用 cat 和 echo 命令,或者read 和 write 系统调用就可以获得内核各子系统的信息,比如 CPU 型号和参数、内存使用量、可用的定时硬件及详细参数、连接的外部设备及映射地址,等等,还可以在系统运行时动态修改内核参数,而不需要重新编译内核的源代码。

proc文件系统有哪些特点呢?

  • 可读性:proc文件系统的信息是以文本格式呈现的,这使得它易于读取和解析。
  • 系统级别:proc文件系统提供了对内核和系统级别信息的访问,例如系统中正在运行的进程、内存使用情况、CPU信息、硬件配置等等。
  • 可以用于诊断和调试:proc文件系统提供了对系统状态和进程信息的实时访问,这使得它非常有用于诊断和调试系统问题。
  • 稳定性和可维护性:当需要修改系统的各种参数以及配置信息时,我们可以通过proc文件系统来管理就可以实现,而无需编写专门的内核模块
     

1.3 proc文件系统提供的信息

文件 介绍
/proc/cpuinfo 这个文件包含了有关 CPU 的详细信息,包括厂商、型号、频率、缓存等信息
/proc/meminfo 这个文件包含了有关内存的详细信息,包括可用内存、缓存大小、交换分区等信息
/proc/loadavg 这个文件包含了系统的负载平均值,它表示系统正在运行的进程数和等待 CPU 的进程数的平均值。
/proc/kallsyms 该文件是一个符号表,包含了内核的所有全局变量和函数在内存中的地址。
/proc/interrupts 该文件包含了系统记录的在每个 CPU 上处理的各类中断的计数信息。
/proc/version 这个文件包含了系统的版本信息,包括内核版本、GCC 版本等信息。
/proc/net/tcp 这个文件包含了有关 TCP 连接的信息,包括本地地址、远程地址、状态等信息。
/proc/net/udp 这个文件包含了有关 UDP 连接的信息,包括本地地址、远程地址、状态等信息
/proc/sys/kernel/hostname 这个文件包含了系统的主机名
/proc/sys/kernel/pid_max 这个文件包含了系统允许的最大进程 ID
/proc/sys/fs/file-nr 这个文件包含了有关打开文件的统计信息,包括当前打开的文件数、已分配的文件句柄数和最大文件句柄

二、proc文件系统常用节点详述

2.1 /proc/cpuinfo 

该文件包含了当前系统 CPU 的参数信息,包括 CPU 的核心数量、每个核心的工作频率、缓存大小、字宽地址线长度等。比如,在我的个人电脑上,cat /proc/cpuinfo 显示的部分信息如下:

【Linux】proc文件系统

2.2 /proc/meminfo

这个文件显示的是系统中当前的内存状态信息,如物理内存总容量、已使用内存、空闲内存、共享内存、交换内存大小,等等。

在日常的开发工作中,开发者通常更偏向于通过 top 命令的输出,查看系统当前的内存使用状况,因为大多数时候,只关心内存的总量和当前的占用量就足够了。

但是在某些特殊情况下,还是需要参考这个文件中提供的更加详细的内存状态信息,如 slab 内存占用量(记录在一个页框中如何划分和分配小存储区用的内存)、可回收内存量 (SReclaimable)、内核栈空间大小(Kernel Stack)、使用 malloc 分配的堆内存总量,以及使用 mmap 映射的内存总量,等等。

【Linux】proc文件系统

2.3 /proc/kallsyms

该文件是一个符号表,包含了内核的所有全局变量和函数在内存中的地址。

这是一个帮助内核开发者调试内核而加入的文件,在 Linux 系统崩渍时产生的 Opps 信息中,函数调用堆栈中显示出来的函数名,就是在这个文件的帮助下生成的。

【Linux】proc文件系统

2.4 /proc/interrupts

该文件包含了系统记录的在每个 CPU 上处理的各类中断的计数信息。

在Linux 中,如果没有特殊的处理,通常所有的中断都会交给 CPU 的第一个核心(CPUO)来处理。有一个叫做 rqbalance 的实用程序可以帮助系统把中断分发给不同的 CPU,实现负载均衡,对多核处理器的性能提升和控制能耗都有明显的作用。

当前的大多数 Linux 发行版都会默认在多核处理器上启动这个服务,但是以防万一,读者可以在自己的系统上确认该服务是否开启,同时通过检查 proc/interrupts 文件来确定中断是不是均衡地分发到了不同的 CPU上。

【Linux】proc文件系统

2.5 /proc/loadavg

这个文件显示系统在过去一段时间的平均负载,一个真实的输出如下所示:

【Linux】proc文件系统

上面的信息,具体含义如下:
1.过去一分钟的系统平均负载
2.过去五分钟的系统平均负载
3.过去十五分钟的系统平均负载
4.采样时刻运行队列的任务数/系统中活跃的总任务数
5.采样时刻占用最大的线程ID

 这个文件的输出中的前三个值,经常被用来观察系统负载的发展趋势。如果前面的值比后面的值小,说明系统的负载在减轻;反之,说明系统负载开始呈现出上升的趋势。

三、总结

特殊文件系统的存在,使得Linux对内核数据的查看和修改具有简单到极致的接口,同时又不失强大灵活的功能。

proc文件系统使得系统易于调试维护,系统的稳定性、可维护性提高,文章来源地址https://www.toymoban.com/news/detail-457415.html

到了这里,关于【Linux】proc文件系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】linux5.6引入struct proc_ops,用以替代struct file_operations在/proc下进行文件操作

    linux5.10生成在/proc目录下的文件时,利用cat读取文件,提示: 该报错是错误码:EPERM,不允许操作 发现是在移植内核代码时,未对proc接口进行适配。 linux-5.6引入结构体struct proc_ops,用以替代struct file_operations在/proc下进行文件操作。 proc_create中的proc_ops结构体类型定义改变,导

    2024年02月08日
    浏览(24)
  • Linux 系统查看当前正在运行的某个进程的详细执行脚本和目录ls -l /proc/PID/cwd和 ls -l /proc/PID/exe

    首先使用 ps 命令查看当前正在运行的某个进程的 PID,例如: 这个命令会列出所有包含 your_process_name 信息的进程ID(也就是PID)和进程名称。你需要根据进程的名称来找到你想要查看的进程对应的PID。 然后进入 /proc 目录,你可以使用以下命令查看该 PID 对应的执行脚本: 其

    2024年02月11日
    浏览(38)
  • 《Docker极简教程》--前言--Docker的简介

    Docker 是一种用于构建、部署和运行应用程序的开源平台,它使用容器技术来实现轻量级、可移植和自包含的应用程序环境。Docker 的核心思想是将应用程序及其依赖项打包到一个称为容器的封闭单元中,从而消除了在不同环境中运行应用程序时可能出现的许多兼容性和依赖性

    2024年02月21日
    浏览(37)
  • 【免费】【前言】Stable Diffusion WebUI 课程简介

    欢迎来到  聚梦小课堂  的 Stable Diffusion系统图文课堂。 在这里,会详细介绍 免费的本地版AI绘画软件 —— Stable Diffusion(WebUI+Fooocus) 的方方面面,包括但不限于:如何安装,如何使用,参数含义,常见问题,使用技巧、综合商业案例... 使用中若发现有错误或者任何建议,

    2024年02月02日
    浏览(34)
  • /proc/meminfo 是什么文件

    /proc/meminfo 是一个虚拟文件系统,它提供了有关系统内存使用情况的实时信息。这个文件包含了关于系统内存使用情况的详细信息,如已用内存、空闲内存、共享内存、缓存等。 这个文件的内容可以通过以下命令查看: 其中,每一行都代表一个内存项,包含以下字段: MemT

    2024年02月12日
    浏览(25)
  • Linux /proc和/sys

    在 Linux 系统中,/proc和/sys都是特殊的文件系统,数据内容是存放在内存中,这两个目录文件中的内容由内核动态生成,查看这个文件中的内容,实际上就是查询内核的某些状态或信息。 可以将这两个目录文件理解为虚拟的目录,即在硬盘上不存在。 proc 是process(进程)的缩

    2024年02月08日
    浏览(32)
  • linux下sys目录与proc目录的作用

    在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目录的一些主要作用: 设备和驱动程序信息:/sys目录提供了与设

    2024年02月04日
    浏览(49)
  • Linux查看进程运行输出(/proc/<pid>/fd)

    输入ps或ps -ef root@TinaLinux:/proc/631/fd# ps PID   USER     TIME   COMMAND     1 root       0:03 /sbin/procd ...........   631 root       0:06 ./rt_agent   694 root       0:00 [kworker/2:2]   771 root       0:23 /home/upg/fupg 要查看的进程id为631。 切换到/proc/pid/fd下,如 root@TinaLinux:~# cd /proc/631/fd root@TinaLin

    2024年02月11日
    浏览(42)
  • linux 之.service文件简介

    什么是.service文件? Linux中.service文件是某项服务对应的配置文件,可用于systemd管理和控制的服务的设置。 .service 文件通常包含3个模块,即[Unit]控制单元,表示启动顺序和依赖关系;[Service]服务,表示服务的定义;[Install]安装,表示如何安装配置文件。 文件存放位置 .servi

    2024年02月05日
    浏览(21)
  • 从零开始理解Linux中断架构(1)-前言

    前言         前段时间在转行手撸WIFI路由器,搞wifi路由器需要理解网络驱动程序,以太网卡驱动程序,无线WIFI驱动程序,而网卡驱动的关键路径就在中断程序中,需要了解NIC设备驱动程序如何收发数据,为了彻底的知道数据包是如何二层传递上来的,又需要了解一点Lin

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包