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

内核配置需要开启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/ksyms files 和/proc/kallsyms 一样
/proc/loadavg files 系统平均负载load average,前三个是1、5、15分钟内的平均进程数。第四个的分子是正在运行的进程数,分母是进程总数;最后一个最近被创建的进程ID号
/proc/locka files 显示当前正在被锁住lock的文件
/proc/meminfo files 当前系统内存使用情况
/proc/modules files 显示档期系统所有已经加载的modue, lsmod命令信息来源于此文件cat 
/proc/mounts files 当前系统所有mount 挂载的文件系统
/proc/mtrr files memory type range registers,可以在Documentation\x86\mtrr.rst
/proc/net subdirectories networing layer网络层相关信息
/proc/partitions files 系统分区状况,其中第一列每个分区partitions的主major,第二列位次minor number,第三列位block数目,每个block大小为1024 byte,最后一列为分区情况
/proc/profile files 只有在系统kernel启动时传递参数为profile=1 命令选项才会有此文件,可以使用readprofile来获取kernel profile信息
/proc/scsi subdirectories 当前系统上所有SCSI设备的相关信息,每个SCSI host一个子目录
/proc/slabinfo files kernel cache信息,和slabinfo一样
/proc/stat files kernel/system 统计信息
/proc/swaps files swap 区域使用情况,和swapon一样
/proc/sys subdirectories 该目录的 子目录内 主要是与kernel相关的一些变量,这些变量可读,有些可修改
/proc/sysrq-trigger files 可写,通过向该文件写入可以触发SysRq function
/proc/sysvipc subdirectories 该目录包含msg,sem和shm 三个伪文件pseudo file,分别为IPC中的message queue、semaphores、shared memory信息,和ipcs相同
/proc/timer_list files 只读,显示当前系统所有的pending timer、所有 clock event 源 时钟实际源,以及一些可读参数
/proc/tty subdirectories 包含一些pseudo file文件,以及tty driver和line disciplines子目录
/proc/uptime files 此文件包含两个数字L一个是 system uptime和 idle process空闲线程的占用的总时间
/proc/version files kernel 版本号
/proc/vmstat files virtual memory虚拟内存统计信息

/proc/[pid]

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

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

内核调度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]/auxv file 包含传递给进程的ELF解释器信息,格式是每一项都是一个unsigned long长度的ID加上一个unsigned long长度的值。最后一项以连续的两个0x00开头
/proc/[pid]/cgroup file 改进程所属的cgroup
/proc/[pid]/clear_refs file

只写文件,可以通过该文件设置内核中的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]/cmdline file 只读,用于记录该进程的完整命令(启动命令),但是如果该进程使用execve 修改argv参数,则修改过后的命令将会在该文件中显示
/proc/[pid]/comm file 只读,进程的命名,不同的线程(man clone prctl pthread_setname_np)可能有不同的线程名,可以在/proc/[pid]/task/[tid]/comm查看该进程所属的线程名
/proc/[pid]/coredump_filter file

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]/cpuset file 用于控制该进程运行的cpu和内存节点
/proc/[pid]/cwd file 该文件是一个软链接,链接到当前进程的工作目录,如果一个进程有多个线程,如果该进程的主线程退出则该软链接不可用。
/proc/[pid]/environ file 通过execve执行该命令时,设置的初始化环境变量
/proc/[pid]/exe file 该文件为一个软链接,显示该进程带实际执行路径的执行命令
/proc/[pid]/fd subdirectories

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

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

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

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

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

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

该进程的内存使用信息,单位为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]/status file 更加详细的进程状态信息
/proc/[pid]/syscall file 该文件导出系统调用number, argument register,栈指针,程序技术寄存器prgram counter registers 地址等信息
/proc/[pid]/task subdirectories 该目录为该进程内的所有线程信息,以线程tid为目录
/proc/[pid]/timers file 列出该进程内的所有POSI timers
/proc/[pid]/timerslack_ns file 该进程增在运行的timer slack 值
/proc/[pid]/wchan file 当该进程sleep时,位于内核kernel的symbol
/proc/[pid/sched file 该进程的调度信息,包括运行多长实际,被调度多少次,优先级等信息
 /proc/<pid>/schedstat file 该进程调度信息,包括三项,分别为 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 subdirectories type description
/proc/net/arp files 内核网络鞥ARP表
/proc/net/dev files 该文件是一个pseudo file主要包括网卡设备统计信息,包括网卡收和发送包数量,错误信息,以及其他信息,ifconfig命令数据来源于此
/proc/net/dev_mcast files 网卡 监听的 L2层 多播(组播)组
 /proc/net/igmp files 网卡设备igmp 组信息 包括V2,V3等版本信息已经组播组信息,V3为(S,G)表,V2为(*,G)表
 /proc/net/igmp6 files ipv6 组播信息,实际上组播的ipv6 协议为mld报文
 /proc/net/icmp files 网卡 ipv4 icmp信息
 /proc/net/icmp6 files 网卡 ipv6 icmp信息
 /proc/net/if_inet6 files 该系统内支持ipv6的网卡 以及对应的ipv6地址
/proc/net/connector files

列出系统所有的连接器connector

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

/proc/net/fib_trie files 系统ipv4 路由表详细信息
/proc/net/fib_triestat files 系统ipv4 路由表信息统计
/proc/net/anycast6 files ipv6 任播(anycast)信息
/proc/net/bnep files 系统中蓝牙设备网络信息
/proc/net/hci files 蓝牙HCI(host control interface)层信息
/proc/net/ip6_flowlabel files 列出当选系统所有申请的flow labels
/proc/net/ip6_mr_cache files 列出所有的处于active的ipv6 组播(多播)路由
/proc/net/ip6_mr_vif files 列出所有被处于active ipv6组播路由使用的 virtual interfaces
/proc/net/ip_tables_matches files 列出所有在防火墙iptables内加载的module
/proc/net/ip_tables_names files iptable 名称
/proc/net/ip_tables_target files iptable target
/proc/net/iroute files ipv4 路由表
/proc/net/ipv6_route files ipv6 路由表
/proc/net/netstat files 网络层信息详细统计
/proc/net/packet files 列出所有当选系统申请的AF_PACKET/PF_PACKET socket 以及相关信息
/proc/net/protocols files 对每个协议以及每个协议的总结方法进行了统计
/proc/net/psched files 列出全局packet scheduler参数
/proc/net/ptype files 列出当前系统已经注册的ethertypes二层协议即二层以太网包头中的type
/proc/net/raw files 列出系统创建的所有原始raw套接字
/proc/net/raw6 files 列出系统创建的ipv6原始raw套接字
/proc/net/rfcomm files 列出所有的蓝牙rfcomm协议链接链接
/proc/net/rt6_stats files ipv6路由统计信息
/proc/net/rt_acct files 用于监视内核snmp计数器和网络接口统计计数器
/proc/net/rt_cache files 路由缓存
/proc/net/sco files 蓝牙SCO数据链接信息
/proc/net/snmp files snmp协议信息
/proc/net/snmp files snmp ipv6信息
/proc/net/sockstat files 当前系统使用套接字socket信息
/proc/net/sockstat6 files 当前系统使用ipv6套接字socket信息
/proc/net/softnet_stat files 内核会为每个CPU Core都实例化一个softnet_data对象,这个对象中的input_pkt_queue用于管理接收的数据包,然后触发软中断重softnet_data里取数据包
/proc/net/tcp files 当前系统 tcp信息
/proc/net/tcp6 files 当前系统 ipv6 tcp信息
/proc/net/udp files 当前系统udp信息
/proc/net/udp6 files 当前系统ipv6 udp信息
/proc/net/udplite files 当前系统udp lite协议信息
/proc/net/udplite6 files 当前系统udp6 lite协议信息
/proc/net/unix files 当前unix套接字信息
/proc/net/wireless files wifi信息
/proc/net/xfrm_stat files xfrm 信息统计XFRM是 Linux 2.6 内核为安全处理引入的一个可扩展功能框架,用来在数据包经过路由路径的过程中对其进行修改,
/proc/net/stat subdirectories 信息统计文件夹包含arp,路由等
/proc/net/dev_snmp6 subdirectories snmp6 网卡信息
/proc/net/netfilter subdirectories netfilter相关信息

/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相关信息

linux /proc文件系统(1)相关推荐

  1. linux proc 文件系统下 entry 的解释(转)

    linux proc 文件系统下 entry 的解释(转)[@more@] proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用 ...

  2. Linux proc文件系统小记

    序言: 当linux系统存在多个网口时(也可以是一个网口配置两个IP),每个网口配置不同的IP地址,并且分别连接到不同的电脑上,电脑分别配置与相连的网口统一网段的IP且将电脑网关设置为linux的网口 ...

  3. Linux/proc文件系统操作指南

    1.数字目录或文件 按进程号排序的活动进程 `u-s f,t8|F"~q0例如下面的1ITPUB个人空间 W4W1n yT%Utf`T3e:{ ls /proc/1 zZ P5twU2}J ...

  4. Linux proc文件系统说明

    在Linux上,proc是一个伪文件系统,提供了访问内核数据的方法,一般挂载在"/proc"目录,其中的大部分内容是只读的,挂载(mount)信息可能为: proc on /pro ...

  5. 初步了解Linux proc文件系统

    proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口. 用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数. 由 ...

  6. linux PROC文件系统详解

    /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令procinfo能够显示基于其中某些文件的多种系统信 ...

  7. 使用 /proc 文件系统来访问 Linux 内核的内容

    最初开发 /proc 文件系统是为了提供有关系统中进程的信息.但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置. /proc 文件系统包含了一些目录(用作 ...

  8. (转)使用 /proc 文件系统来访问 Linux 内核的内容

    转载网址:http://www.ibm.com/developerworks/cn/linux/l-proc.html 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口/proc 文件系统是 ...

  9. 深入理解linux系统下proc文件系统内容

    另外,可以参考这个http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html 内容摘要:Linux系统上的/proc目录是一 ...

最新文章

  1. matlab批量对图片进行添加椒盐噪声并批量保存到文件夹
  2. git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目
  3. php实际开发过程,4.工作实际开发应用
  4. Web笔记-移动前端开发笔记
  5. java国王毒酒答案,换换脑子500桶酒国王用囚犯找毒酒答案-500桶酒其中1桶是毒酒找毒酒答案最新版【附公式详解】-东坡下载...
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物医院管理系统
  7. OKB突破7.2USDT,再创12月新高
  8. 公众号抢号_公众号调性是什么意思?公众号排版可以塑造公众号调性吗?
  9. 计算机主机系统构成,一个完整的计算机系统通常是由()构成。A.硬件B.主机C.软件D.操作系统...
  10. PHP Filesysten函数
  11. mysql 触发器存储过程的区别_MySQL触发器、存储过程实现
  12. Cocos Creator 极速入门
  13. 爬虫-Scrapy(七)抓取招聘信息技能关键词,生成词云图
  14. HashMap1.7 扩容时产生死链
  15. Python网络爬虫数据采集实战(八):Scrapy框架爬取QQ音乐存入MongoDB
  16. 一百多篇热门经典计算文章 来自 11 个热门的技术类微信公众
  17. [LightOJ1017]Brush (III)(dp)
  18. ENVI安装步骤和常见问题及解决办法(以ENVI5.3为例)
  19. sumo 和 cesium 的简单联合仿真
  20. matlab中怎么灰色关联度,五种灰色关联度分析matlab代码

热门文章

  1. 数据调度组件:基于Azkaban协调时序任务执行
  2. PyTorch【torchvision】
  3. Mac安装CentOS7
  4. SQL-10 获取所有非manager的员工emp_no
  5. 牛客网刷题(纯java题型 31~60题)
  6. linux日常笔记5
  7. 设计一个移动应用的本地缓存机制
  8. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享
  9. 改行了 写一篇 PLC 相关的 西门子 S7 300/400 控制器
  10. 【转载】关于RabbitMQ的高可用性