嵌入式linux入门3-7proc文件系统

概述

proc - process information pseudo-filesystem(进程信息虚拟文件系统)

proc文件系统是一个用于提供内核数据结构接口的虚拟文件系统。通常其挂载于/proc目录下。一般系统会自动挂载此文件系统,当然也可以使用如下命令进行手动挂载:

mount -t proc proc /proc # 可以看到proc文件系统的类型也为proc

大部分此文件系统中的文件是只读的,不过也有一些可写文件,修改这些文件可以修改一些内核运行时变量。

从名字上看,这个文件系统一开始只是用于提供进程相关信息的,后面随着发展,也就开始用于存放其他系统相关的信息。

文件与子目录

/proc目录下的文件与子目录大致分为以下几类:

  1. /proc/[pid] 子目录
    这类子目录以对应进程的pid命名,其下的文件与子目录包含了对应进程的运行信息。对于使用了多线程的进程,其下一般会有一个task子目录,task子目录中以tid命名的子目录中的文件包含了各个线程的相关信息。这些子目录在使用getdents()函数遍历/proc目录时可见,同时也可以使用ls指令查看。

  2. /proc/[tid] 子目录
    同/proc/[pid]/task/下的各个tid命名的子目录,不过对于getdents()函数和ls指令,这些目录是不可见的。

  3. /proc/self 软链接
    一个神奇的链接,当进程访问此目录,则相当于访问自己pid对应的/proc/[pid]目录

  4. /proc/thread-self 软链接
    也是一个神奇的链接,当线程访问此目录,则相当于访问自己tid对应的/proc/self/task/[tid]目录

  5. /proc/[a-z]* 其他文件与子目录
    常用的文件如下:

    文件名用途
    cmdline记录内核启动参数
    cmdline记录内核启动参数
    cpuinfoCPU相关信息
    iomemIO设备的内存使用情况
    interrupts显示被占用的中断和占用者信息
    ioportsIO端口使用情况
    kcore系统物理内存映像,不可读
    loadavg系统平均负载
    meminfo物理内存和swap分区使用情况
    modules加载的模块列表
    mounts已挂载文件系统的信息
    partitions系统识别的分区表
    swaps交换分区利用情况
    version内核版本信息
    uptime系统运行时间

使用方法

程序直接使用标准IO或者C库的文件读写函数访问即可获取其中信息,shell中使用cat直接打印文件内容。

一张图搞定/proc

一张图说清楚/proc目录的来龙去脉:

原始网址:SecurityZines : Understand log4j in and out in flyer

mmexport1651761193108

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值