linux /proc文件系统(1)

proc文件系统是Linux中获取内核信息的关键途径,它包含进程信息、内存使用、硬件配置等。通过/proc目录,用户可以读取到如进程PID、内存映射、网络状态等数据,甚至可以修改某些内核配置。proc目录下有如/modules、/net、/sys等子目录,分别对应模块信息、网络统计和内核变量。此外,/proc目录下的文件大多数为伪文件,其内容动态从内核中获取,而非存储在磁盘上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Proc文件系统

proc文件系统是linux 中比较重要的的一个文件系统,在sysfs文件系统没有出现之前,它可以说是用户层获取内核层信息的唯一方式,它是一个一种特殊的、由软件创建的文件系统,proc内的文件并不是真正‘real' 文件,而是一种描述进程信息的伪 文件系统(process information pesudo-file sysrem), 被用来描述系统运行信息(比如系统内存,设备挂载,或者是硬件配置等).常常用来控制或者描述内核信息。在系统初始化阶段proc文件系统会被挂载到/proc目录,也可以使用手动命令行进行挂载"mount -t proc proc /proc”

/proc is very special in that it is also a virtual filesystem. It's sometimes referred to as a process information pseudo-file system. It doesn't contain 'real' files but runtime system information (e.g. system memory, devices mounted, hardware configuration, etc). For this reason it can be regarded as a control and information centre for the kernel. In fact, quite a lot of system utilities are simply calls to files in this directory. For example, 'lsmod' is the same as 'cat /proc/modules' while 'lspci' is a synonym for 'cat /proc/pci'. By altering files located in this directory you can even read/change kernel parameters (sysctl) while the system is running.

在linux用户空间的很多命令获取到的内核信息其实都是从/proc文件系统中读取的,比如lsmod命令 其实就是从/proc/module中读取的。一般在系统运行过程中,通过proc文件系统可以读取或者修改系统内核配置 ,而不用重启。

hzk@hzk-X570-AORUS-PRO-WIFI:/proc$ ls -l
total 0
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 1
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 10
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 100
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 101
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 102
dr-xr-xr-x   9 root             root                           0 2月  19 16:14 10270
dr-xr-xr-x   9 root             root                           0 2月  19 16:14 10273
dr-xr-xr-x   9 root             root                           0 2月  19 16:14 10274
dr-xr-xr-x   9 root             root                           0 2月  19 15:15 104
dr-xr-xr-x   9 root             root                           0 2月  19 15:19 1044
... ...
... ..
dr-xr-xr-x 104 root             root                           0 2月  19 15:15 irq
-r--r--r--   1 root             root                           0 2月  19 15:15 kallsyms
-r--------   1 root             root             140737477885952 2月  19 15:15 kcore
-r--r--r--   1 root             root                           0 2月  19 15:19 keys
-r--r--r--   1 root             root                           0 2月  19 15:19 key-users
-r--------   1 root             root                           0 2月  19 15:15 kmsg
-r--------   1 root             root                           0 2月  19 15:19 kpagecgroup
-r--------   1 root             root                           0 2月  19 15:19 kpagecount
-r--------   1 root             root                           0 2月  19 15:19 kpageflags
-r--r--r--   1 root             root                           0 2月  19 15:19 loadavg
-r--r--r--   1 root             root                           0 2月  19 15:19 locks

... ...

  • 通过ls -l命令可以看到 /proc目录下由很多以数组命名的这些数字主要是当前系统中的进程pid和线程tid,在这些目录里面都是各自的进程或者线程的信息,可以通过查看/proc/[pid]和/proc/[tid]目录内获取到。
  • 除了上述一个特点之外,还由另外一个特点:基本上很多目录文件大小为0,这是因为proc目录信息读取的是内核的运行状态,每次都是从内核中动态的获取到“内容”,而不是真正的从文件中读取,所以称/proc内的文件为伪文件pesudo-file。
  • 在/proc文件系统中只有kcore很少的几个文件大小才不为0.
  • 除了上述几个特点之外,/proc内的大部分文件只有读权限,只有很少不部分为有写权限,写权限意味着可以修改内核配置

/proc一级目录

/proc目录下的文件以及文件夹大概如下:

files or subdirectoriestypedescription
/proc/[pid]subdirectories以进程pid为名称的子目录,/proc文件系统中为每个pid建立了相应的以pid为名称的子目录,该子目录内包含进程运行的信息
/proc/[tid]subdirectories以线程tid为名称的子目录,每个线程都会有相应的以tid为名称的子目录,该子目录内包含所有的线程信息,其目录里面的内容和/proc/[pid]/task/[tid]中的内容完全一样
/proc/selfsubdirectories该文件为一个软链接,相当于/proc/[pid],由于不同的线程有不同的pid,有些场景经常会遇到需要在本进程的程序冲获取到本进程的信息,而要获取进程信息需要知道pid进程号,为了节省获取进程号,可以直接在本进程中通过/proc/self中获取,在不同的进程/proc/self指向的软链接不同,该/proc/self永远是指向的本进程的链接
/proc/thread-selfsubdirectories和self一样都是一个软链接,不过软链接到的是/proc/[tid],其功能和/proc/self,获取到的是当前线程信息
/proc/apmfilesAdvanced power management version电源管理模块版本,编译内核时需要配置CONFIG_APM或者CONFIG_APM_MODULE
/proc/buddyinfofiles内核物理内存buddy算法使用情况,分别为DMA32,DMA,Normal Zone区域分配情况,buddy算法将内存安装(2^order)*PAGE_SIZE进行内存切片管理,其中order为0~10,/proc/buddyinfo依次按照order为0~10共11列,显示各个ZONE内存使用情况
/proc/zoneinfofileszone各个区域详细内存分配使用情况
/proc/bussubdirectories子目录内包含所有已经安装的总线bus
/proc/fssubdirectories当前系统的文件系统
/proc/cgroupsfileslinux control group,可以用来限制,控制与分离一个进程组的资源(cpu、内存等),可以查阅该文件显示内核cgroup信息。
/proc/cmdlinefiles在启动kernel时 传递给kernel参数 命令
/proc/config.gzfiles当前运行kernel的配置选项,和cat /lib/module/${uname -r}/build/.config目录相同,该文件是一个压缩文件可以使用zcat和zgrep进行解压
/proc/cryptofiles内核支持的加密,由crypto API提供
/proc/cpuinfofiles当前系统内cpu信息,如果是多核cpu则列出每个cpu核信息,lscpu命令信息就来源这里
/proc/devicesfiles可以使用该文件查看当前系统字符设备和块设备各自主设备号使用情况,以及对应的主设备名称
/proc/diskstatsfiles当前系统内每块硬盘信息统计,可以在Documentation\admin-guide\iostats.rst查看详细信息
/proc/dmafiles显示当前正在使用的DMA频道,这些DMA只能是ISA DMA(Industry Standard Architecture Direct Memory Access),PCI总线上的DMA不在次显示
/proc/driversubdirectories主要是显示在内核正在使用的特殊驱动,经常见到的该目录下的驱动为rtc( Real Time Clock),rtc文件显示的是 系统rtc详细信息
/proc/execdomainsfiles当前kernel 支持的execution domains.
/proc/fbfiles当前系统frame buffer 帧缓冲设备列表,包括buffer device number和 控制该buffer 设备驱动
/proc/filesystemsfiles当前运行kernel所支持的文件系统
/proc/idesubdirectories该目录是一个文件夹,文件夹内列出所有的IDE 设备,其中每个子目录代表一个IDE controller
/proc/interruptsfiles记录所有的中断,第一列为中断号,后面每一列为一个cpu,如果是多核系统 则由多列 每一列代表一个cpu
/proc/iomemfiles显示当前系统每个物理设备IO映射情况,第一列为映射的寄存器地址,第二列为设备内存类型
/proc/ioportsfiles显示当前系统用户IO通信的registered port regions
/proc/kallsymsfileskernel导出的symbol,可以在编写一个内核module模块所使用
/proc/kcorefiles该文件可以认为是物理内存的一个别名,代表的是实际的物理内存,ls -l查看该文件大小和实际物理内存一直,注意慎重cat /proc/kcore,因为这样会将所有的物理内存中的内容打印出来,很容易崩溃
/proc/keysfiles列出当前可以读取的key,包括key 类型,描述,权限等文件
/proc/key-usersfiles用于跟踪列出每个用户key
/proc/kmsgfiles可以用来替换syslog 系统调用,用来读取kernel message,必须使用超级权限读取该文件,切只能由一个进程读取该文件,如果正在使用syslog系统调用则不允许读取该文件。该文件信息被保存在dmesg程序中
/proc/kpagecgroupfiles内核配置需要开启CONFIG_MEMCG,该文件包含一个 64位的 PFN(page frame number),每个页面所属的cgroup
/proc/kpagecountfiles内核配置需要开启CONFIG_MEMCG,该文件包含一个 64位的 PFN(page frame number), 每个页面被映射的次数
/proc/kpageflagsfiles

内核配置需要开启CONFIG_MEMCG,该文件包含一个 64位的 PFN(page frame number), 每个页面的flags

                   0 - KPF_LOCKED
                   1 - KPF_ERROR
                   2 - KPF_REFERENCED
                   3 - KPF_UPTODATE
                   4 - KPF_DIRTY
                   5 - KPF_LRU
                   6 - KPF_ACTIVE
                   7 - KPF_SLAB
                   8 - KPF_WRITEBACK
                   9 - KPF_RECLAIM
                  10 - KPF_BUDDY
                  11 - KPF_MMAP           (since Linux 2.6.31)
                  12 - KPF_ANON           (since Linux 2.6.31)
                  13 - KPF_SWAPCACHE      (since Linux 2.6.31)
                  14 - KPF_SWAPBACKED     (since Linux 2.6.31)
                  15 - KPF_COMPOUND_HEAD  (since Linux 2.6.31)
                  16 - KPF_COMPOUND_TAIL  (since Linux 2.6.31)
                  17 - KPF_HUGE           (since Linux 2.6.31)
                  18 - KPF_UNEVICTABLE    (since Linux 2.6.31)
                  19 - KPF_HWPOISON       (since Linux 2.6.31)
                  20 - KPF_NOPAGE         (since Linux 2.6.31)
                  21 - KPF_KSM            (since Linux 2.6.32)
                  22 - KPF_THP            (since Linux 3.4)
                  23 - KPF_BALLOON        (since Linux 3.18)
                  24 - KPF_ZERO_PAGE      (since Linux 4.0)
                  25 - KPF_IDLE           (since Linux 4.3)

/proc/ksymsfiles和/proc/kallsyms 一样
/proc/loadavgfiles系统平均负载load average,前三个是1、5、15分钟内的平均进程数。第四个的分子是正在运行的进程数,分母是进程总数;最后一个最近被创建的进程ID号
/proc/lockafiles显示当前正在被锁住lock的文件
/proc/meminfofiles当前系统内存使用情况
/proc/modulesfiles显示档期系统所有已经加载的modue, lsmod命令信息来源于此文件cat 
/proc/mountsfiles当前系统所有mount 挂载的文件系统
/proc/mtrrfilesmemory type range registers,可以在Documentation\x86\mtrr.rst
/proc/netsubdirectoriesnetworing layer网络层相关信息
/proc/partitionsfiles系统分区状况,其中第一列每个分区partitions的主major,第二列位次minor number,第三列位block数目,每个block大小为1024 byte,最后一列为分区情况
/proc/profilefiles只有在系统kernel启动时传递参数为profile=1 命令选项才会有此文件,可以使用readprofile来获取kernel profile信息
/proc/scsisubdirectories当前系统上所有SCSI设备的相关信息,每个SCSI host一个子目录
/proc/slabinfofileskernel cache信息,和slabinfo一样
/proc/statfileskernel/system 统计信息
/proc/swapsfilesswap 区域使用情况,和swapon一样
/proc/syssubdirectories该目录的 子目录内 主要是与kernel相关的一些变量,这些变量可读,有些可修改
/proc/sysrq-triggerfiles可写,通过向该文件写入可以触发SysRq function
/proc/sysvipcsubdirectories该目录包含msg,sem和shm 三个伪文件pseudo file,分别为IPC中的message queue、semaphores、shared memory信息,和ipcs相同
/proc/timer_listfiles只读,显示当前系统所有的pending timer、所有 clock event 源 时钟实际源,以及一些可读参数
/proc/ttysubdirectories包含一些pseudo file文件,以及tty driver和line disciplines子目录
/proc/uptimefiles此文件包含两个数字L一个是 system uptime和 idle process空闲线程的占用的总时间
/proc/versionfileskernel 版本号
/proc/vmstatfilesvirtual memory虚拟内存统计信息

/proc/[pid]

每个proc目录内存在大量的以数字命名的directory,该文件夹为以进程pid为命名的,该进程pid的所有信息,用户空间可以从中读取进程所属信息:

files or directorytypedescription
/proc/[pid]/attrsubdirectories该文件夹内的所有文件可读写,只要是为security 安全模块提供相关API,内核在编译时需要打开CONFIG_SECURITY
/proc/[pid]/autogroupfile

内核调度autogroup特性,从2.6.38中开发而来,需要内核配置CONFIG_SCHED_AUTOGROUP,可以通过proc/sys/kernel/sched_autogroup_enabled开启或者管理,0关闭,1开启,当开启之后,当使用setsid创建一个新的session时 内核会自动创建一个autogroup,比如打开一个终端,会使用fork创建一个新的进程,并且会继承该父进程的autogroup 关系,所有在同一个session的进程会在同一个autogroup中,当该session的最后一个进程退出时,autogroup会自动销毁。

当autogrop使能后,在autogroup内的所有进程都会被加到到同一个内核调度器taskgroup,内核通过使用CFS调度算法 将taskgoup内所有进程在CPU时钟周期内平均调度,在桌面系统中通过autogroup特性可以明显提高性能。

/proc/[pid]/auxvfile包含传递给进程的ELF解释器信息,格式是每一项都是一个unsigned long长度的ID加上一个unsigned long长度的值。最后一项以连续的两个0x00开头
/proc/[pid]/cgroupfile改进程所属的cgroup
/proc/[pid]/clear_refsfile

只写文件,可以通过该文件设置内核中的PG_Referenced and ACCESSED/YOUNG,内核提供了可以通过reset上面两个bit位来估算该线程使用了多少内存。提供了1,2,3,5几种不同的策略。

使用方法 先通过/proc/[pid]/smaps获取到VMA内存使用情况,然后设置/proc/[pid]clear_refs的值,经过一段时间后在通过/proc/[pid]/smaps获取VMA使用情况,通过两次观察到的内存变化估算出使用情况

/proc/[pid]/cmdlinefile只读,用于记录该进程的完整命令(启动命令),但是如果该进程使用execve 修改argv参数,则修改过后的命令将会在该文件中显示
/proc/[pid]/commfile只读,进程的命名,不同的线程(man clone prctl pthread_setname_np)可能有不同的线程名,可以在/proc/[pid]/task/[tid]/comm查看该进程所属的线程名
/proc/[pid]/coredump_filterfile

coredump过滤器,可以用来控制哪些内存片段写入到code dump文件中,该文件可写,其写入的形式位bit mask,每一位控制不同的内存类型:

 bit 0  Dump anonymous private mappings.
 bit 1  Dump anonymous shared mappings.
 bit 2  Dump file-backed private mappings.
 bit 3  Dump file-backed shared mappings.
 bit 4 (since Linux 2.6.24)Dump ELF headers.
 bit 5 (since Linux 2.6.28)Dump private huge pages.
 bit 6 (since Linux 2.6.28)Dump shared huge pages.
 bit 7 (since Linux 4.4)Dump private DAX pages.
 bit 8 (since Linux 4.4)Dump shared DAX pages.

/proc/[pid]/cpusetfile用于控制该进程运行的cpu和内存节点
/proc/[pid]/cwdfile该文件是一个软链接,链接到当前进程的工作目录,如果一个进程有多个线程,如果该进程的主线程退出则该软链接不可用。
/proc/[pid]/environfile通过execve执行该命令时,设置的初始化环境变量
/proc/[pid]/exefile该文件为一个软链接,显示该进程带实际执行路径的执行命令
/proc/[pid]/fdsubdirectories

该目录该进程 打开的每个文件创建一个entry.,该entry为一个软链接,链接到实际打开的文件,其中0 标准输入,1标准输出,3标准出错. 如果打开的文件为一个socket或者pipe,则链接格式为:type:[inode],比如一个打开一个socket, inode为2248868,则软链接为  socket:[2248868]  , 如果打开的文件没有node,则格式:anon_inode:<file-type>,

如果一个进程有多个线程,如果该进程的主线程退出则该目录内容卜可用

/proc/[pid]/fdinfosubdirectories该目录也会为每个打开的文件创建一个entry,不过该entry为 fd文件描述符,该entry 与fd目录中不一样 不是一个软链接,可以使用cat 访问该描述fd中的内容, cat显示的内容分为为pos,flags,mmt_id,scm_fds字段
/proc/[pid]/gid_mapfile

在该进程的user namespace 的 group id映射,在该进程内不同的 user namespace 映射到不同的group id,每行有三列:

开始第一列为 该group id, 第二列为属于该groupd id 的user namespace起始 group id, 第三列为长度,为一个32-bit unsigned integer, 如果为4294967295则表明没有映射 

/proc/[pid]/uid_mapfile和gid_map类似 不过映射的为user id
/proc/[pid]/iofile该进程的IO操作统计
/proc/[pid]/limitsfile代表该进程的软件,硬件以及其他资源限制。
/proc/[pid]/map_filessubdirectories 该目录代表该进程的memory-map 映射文件,每行格式为 内存区域地址start 和end 结束成对出现,后面为一个软链接 映射的时该文件
/proc/[pid]/mapsfile代表该进程内存映射情况,以及该每段区域读写权限
/proc/[pid]/memfile可以通过open ,read以及lseek 访问该进程 page
/proc/[pid]/mountinfofile代表该进程namespace  mount 详细信息
/proc/[pid]/mountsfile代表该进程namespace  mount 情况,信息比较少
/proc/[pid]/mountstatusfile该进程mount 信息统计
/proc/[pid]/netsubdirectories该进程 网络层数据信息
/proc/[pid]/nssubdirectories该目录代表该进程每个namespace情况
/proc/[pid]/numa_mapssubdirectories该进程numa 映射信息
/proc/[pid]/oom_adjfile可以通过该文件调整该进行的oom 评分,从而选择在系统触发OOM时,该进程是否会被杀掉,该评分有效范围为-16~15,修改的为oom系数,越小越不容易被杀掉,oom_adj调整的时系数
/proc/[pid]/oom_scorefile只读,OOM 评分, 通过oom_adj调整评分可以在此看到 值有变化,通过修改oom_score_adj和oom_adj 影响最终分数
/proc/[pid]/oom_score_adjfileoom badness 值设置,设置范围为[-1000, 1000],其中0不会被杀掉,1000总是被杀掉
/proc/[pid]/pagemapfile该进程虚拟page到物理page 映射 或者swap区域
/proc/[pid]/personalityfile该进程的执行域domain
/proc/[pid]/rootfile每个进行的根文件系统目录
/proc/[pid]/setgroupsfile是否允许调用setgroups设置用户user namespace,
/proc/[pid]/smapsfile显示每段map 内存详细信息,包括Rss,Pss ,Size,kernelPageSize等信息
/proc/[pid]/stackfile 提供了跟踪该进程的kernel sysmblic调用栈,需CONFIG_STACKTRACE
/proc/[pid]/statfile该进程的一些状态信息,ps命令获取到的信息来源于此
/proc/[pid]/statmfile

该进程的内存使用信息,单位为page

  •   size:total program size(same as VmSize in /proc/[pid]/status)
  •   resident:resident set size(inaccurate; same as VmRSS in /proc/[pid]/status)
  •   shared:number of resident shared pages(i.e., backed by a file)(inaccurate; same as RssFile+RssShmem in  /proc/[pid]/status)
  •   text: text (code)
  •   lib: library (unused since Linux 2.6; always 0)
  •   data: data + stack
  •   dt:dirty pages (unused since Linux 2.6; always 0)
/proc/[pid]/statusfile更加详细的进程状态信息
/proc/[pid]/syscallfile该文件导出系统调用number, argument register,栈指针,程序技术寄存器prgram counter registers 地址等信息
/proc/[pid]/tasksubdirectories该目录为该进程内的所有线程信息,以线程tid为目录
/proc/[pid]/timersfile列出该进程内的所有POSI timers
/proc/[pid]/timerslack_nsfile该进程增在运行的timer slack 值
/proc/[pid]/wchanfile当该进程sleep时,位于内核kernel的symbol
/proc/[pid/schedfile该进程的调度信息,包括运行多长实际,被调度多少次,优先级等信息
 /proc/<pid>/schedstatfile该进程调度信息,包括三项,分别为 tiem spent on the cpu(在cpu上运行时间)、time spent waiting on a runqueue(在运行队列等待时间)、timeslices run this cpu(在一定时钟周期内该进程可以运行的时间片)

/proc/bus/

/proc/bus目录包含了在系统中各种正在使用的总线信息,比如在标准的PCI和USB总线,则每个总线单独创建自己的目录/proc/bus/pci、/proc/bus/usb等。例如在pci总线内包括了所有的当前系统可以的pci设备,比如/proc/bus/pci/001目录代表了在第一个pci总线上的所有设备。而一般在每个总线下都有一个device文件,比如/proc/pci/device,通过读取该文件可以获取当前系统内所有的pci设备。

/proc/fs/

当前系统所用于或者挂载的文件系统,其中每种文件系统类型单独一个目录,每个文件系统目录下包含 在硬盘上所挂载的文件目录:

以下是本人电脑df 硬盘挂载情况

hzk@hzk-X570-AORUS-PRO-WIFI:/proc/fs/ext4$ df
Filesystem      1K-blocks    Used Available Use% Mounted on
udev             16382228       0  16382228   0% /dev
tmpfs             3288872    2060   3286812   1% /run
/dev/nvme0n1p8   48951972 7212584  39223012  16% /
tmpfs            16444360       0  16444360   0% /dev/shm
tmpfs                5120       4      5116   1% /run/lock
tmpfs            16444360       0  16444360   0% /sys/fs/cgroup
/dev/loop0          56832   56832         0 100% /snap/core18/1944
/dev/loop1          56832   56832         0 100% /snap/core18/1988
/dev/loop2         223232  223232         0 100% /snap/gnome-3-34-1804/60
/dev/loop3          63616   63616         0 100% /snap/gtk-common-themes/1506
/dev/loop4          31872   31872         0 100% /snap/snapd/10707
/dev/loop5          31872   31872         0 100% /snap/snapd/11036
/dev/loop6         224256  224256         0 100% /snap/gnome-3-34-1804/66
/dev/nvme0n1p2      97280   33325     63955  35% /boot/efi
/dev/loop7          66432   66432         0 100% /snap/gtk-common-themes/1514
/dev/loop8          52352   52352         0 100% /snap/snap-store/518
/dev/nvme0n1p11  37494200  388728  35171136   2% /home
/dev/loop9          52352   52352         0 100% /snap/snap-store/498
tmpfs             3288872      28   3288844   1% /run/user/1000

可以通过/proc/fs,查看支持的文件系统

hzk@hzk-X570-AORUS-PRO-WIFI:/proc/fs$ ls -l
total 0
dr-xr-xr-x 4 root root 0 2月  25 22:17 ext4
dr-xr-xr-x 4 root root 0 2月  25 22:17 jbd2
dr-xr-xr-x 2 root root 0 2月  25 22:17 nfsd

ext4文件系统挂载到nvme0n1p11和nvme0n1p8, 查看可以看到有相对应的目录

hzk@hzk-X570-AORUS-PRO-WIFI:/proc/fs/ext4$ ls -l
total 0
dr-xr-xr-x 5 root root 0 2月  25 22:18 nvme0n1p11
dr-xr-xr-x 5 root root 0 2月  25 22:18 nvme0n1p8

继续每个目录内都有各种的维护信息文件。

hzk@hzk-X570-AORUS-PRO-WIFI:/proc/fs/ext4/nvme0n1p8$ ls -l
total 0
-r--r--r-- 1 root root 0 2月  25 22:22 es_shrinker_info
-r--r--r-- 1 root root 0 2月  25 22:22 mb_groups
-r--r--r-- 1 root root 0 2月  25 22:22 options

/proc/net/

该目录主要为系统网络层相关信息

files or subdirectoriestypedescription
/proc/net/arpfiles内核网络鞥ARP表
/proc/net/devfiles该文件是一个pseudo file主要包括网卡设备统计信息,包括网卡收和发送包数量,错误信息,以及其他信息,ifconfig命令数据来源于此
/proc/net/dev_mcastfiles网卡 监听的 L2层 多播(组播)组
 /proc/net/igmpfiles网卡设备igmp 组信息 包括V2,V3等版本信息已经组播组信息,V3为(S,G)表,V2为(*,G)表
 /proc/net/igmp6filesipv6 组播信息,实际上组播的ipv6 协议为mld报文
 /proc/net/icmpfiles网卡 ipv4 icmp信息
 /proc/net/icmp6files网卡 ipv6 icmp信息
 /proc/net/if_inet6files该系统内支持ipv6的网卡 以及对应的ipv6地址
/proc/net/connectorfiles

列出系统所有的连接器connector

该文件增加patch:http://lkml.iu.edu/hypermail/linux/kernel/0806.3/0108.html

/proc/net/fib_triefiles系统ipv4 路由表详细信息
/proc/net/fib_triestatfiles系统ipv4 路由表信息统计
/proc/net/anycast6filesipv6 任播(anycast)信息
/proc/net/bnepfiles系统中蓝牙设备网络信息
/proc/net/hcifiles蓝牙HCI(host control interface)层信息
/proc/net/ip6_flowlabelfiles列出当选系统所有申请的flow labels
/proc/net/ip6_mr_cachefiles列出所有的处于active的ipv6 组播(多播)路由
/proc/net/ip6_mr_viffiles列出所有被处于active ipv6组播路由使用的 virtual interfaces
/proc/net/ip_tables_matchesfiles列出所有在防火墙iptables内加载的module
/proc/net/ip_tables_namesfilesiptable 名称
/proc/net/ip_tables_targetfilesiptable target
/proc/net/iroutefilesipv4 路由表
/proc/net/ipv6_routefilesipv6 路由表
/proc/net/netstatfiles网络层信息详细统计
/proc/net/packetfiles列出所有当选系统申请的AF_PACKET/PF_PACKET socket 以及相关信息
/proc/net/protocolsfiles对每个协议以及每个协议的总结方法进行了统计
/proc/net/pschedfiles列出全局packet scheduler参数
/proc/net/ptypefiles列出当前系统已经注册的ethertypes二层协议即二层以太网包头中的type
/proc/net/rawfiles列出系统创建的所有原始raw套接字
/proc/net/raw6files列出系统创建的ipv6原始raw套接字
/proc/net/rfcommfiles列出所有的蓝牙rfcomm协议链接链接
/proc/net/rt6_statsfilesipv6路由统计信息
/proc/net/rt_acctfiles用于监视内核snmp计数器和网络接口统计计数器
/proc/net/rt_cachefiles路由缓存
/proc/net/scofiles蓝牙SCO数据链接信息
/proc/net/snmpfilessnmp协议信息
/proc/net/snmpfilessnmp ipv6信息
/proc/net/sockstatfiles当前系统使用套接字socket信息
/proc/net/sockstat6files当前系统使用ipv6套接字socket信息
/proc/net/softnet_statfiles内核会为每个CPU Core都实例化一个softnet_data对象,这个对象中的input_pkt_queue用于管理接收的数据包,然后触发软中断重softnet_data里取数据包
/proc/net/tcpfiles当前系统 tcp信息
/proc/net/tcp6files当前系统 ipv6 tcp信息
/proc/net/udpfiles当前系统udp信息
/proc/net/udp6files当前系统ipv6 udp信息
/proc/net/udplitefiles当前系统udp lite协议信息
/proc/net/udplite6files当前系统udp6 lite协议信息
/proc/net/unixfiles当前unix套接字信息
/proc/net/wirelessfileswifi信息
/proc/net/xfrm_statfilesxfrm 信息统计XFRM是 Linux 2.6 内核为安全处理引入的一个可扩展功能框架,用来在数据包经过路由路径的过程中对其进行修改,
/proc/net/statsubdirectories信息统计文件夹包含arp,路由等
/proc/net/dev_snmp6subdirectoriessnmp6 网卡信息
/proc/net/netfiltersubdirectoriesnetfilter相关信息

/proc/sys/

该目录与/proc目录稍有不同,它不仅仅提供系统的内核相关信息,该能修改内核中的配置,并且修改能够立马生效,还能够关闭或者打开一些内核特性,

hzk@hzk-X570-AORUS-PRO-WIFI:/proc/sys$ ls -l
total 0
dr-xr-xr-x 1 root root 0 2月  27 21:49 abi
dr-xr-xr-x 1 root root 0 2月  27 21:49 debug
dr-xr-xr-x 1 root root 0 2月  27 20:43 dev
dr-xr-xr-x 1 root root 0 2月  27 20:40 fs
dr-xr-xr-x 1 root root 0 2月  27 20:40 kernel
dr-xr-xr-x 1 root root 0 2月  27 20:40 net
dr-xr-xr-x 1 root root 0 2月  27 21:49 user
dr-xr-xr-x 1 root root 0 2月  27 20:40 vm

该目录按照内核几大特性文件系统(fs)、驱动dev、内核kernel、网络net,虚拟内存等模块分别建立了相应目录,如何要修改内核配置,则需要进入到相对应的目录,查找配置项。

/proc/irq/

该目录为系统中断irq信息统计,每个中断都有一个目录,以相应的中断号为命名目录。

/proc/scsi/

该目录为scsi相关信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huo的藏经阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值