`

Linux proc 文件系统简介

 
阅读更多

/proc 文件系统是一个伪文件系统,它以文件系统的方式为用户访问系统内核数据提供接口。用户和应用程序可以通过 /proc 文件系统得到系统的信息,并可以通过 /proc 文件系统改变内核的某些信息。与普通文件不同的是,/proc 的内容都是动态创建的,它只存在于内存当中。

 

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

 

/proc 文件系统分为三大类:系统信息、进程相关、子系统。

 

开机自动加载Linux proc 文件系统

在 /etc/fstab 文件中加入如下一行使系统在启动时自动加载 /proc 文件系统(绝多数Linux发行版默认如此):

 

proc /proc proc defaults 0 0

 

当然你也可以手动加载:mount -t proc proc /proc

 

利用Linux proc 文件系统来读取系统信息

很多读取系统信息的程序都依赖于 /proc 文件系统,如果 /proc 文件系统不存在,它们将不可用或残缺,例如:lscpu、lsusb、lspci……ps。

有些命令的输出的信息,可以通过直接读取 /proc 文件系统来获取。例如:Linux 查看硬件信息

 

系统信息

在 /proc 根目录下,这里的文件是只读的。

 

文 件描 述

cmdline内核启动参数

cpuinfocpu信息

iomemio设备的内存使用信息

interrupts显示被占用的中断信息和占用者的信息

ioportsI/O端口的使用

kcore系统物理内存映像,不可读取

loadavg系统平均负载

meminfo物理内存和交换分区使用信息

modules加载模块列表

mounts挂载的文件系统

partitions系统识别的分区表

swaps交换空间的利用情况

version内核版本信息

uptime系统运行时间

进程相关

在 /proc 目录下以数字为名的子目录都是存储和进程相关的信息,这些数字就是相关进程的进程ID,这里的文件也是只读的。

还有一个特殊的 /proc/self 目录, 它是指向当前执行进程的符号连接。例如你执行:cat /proc/self/cmdline,将返回命令本身,但会忽略空格。

 

文 件描 述

cmdline进程启动参数

environ环境变量

limits进程限制信息

status进程状态

maps进程使用的动态链接库文件

内核子系统的参数

如调整内核文件限制,开启IP数据包转发……这些文件都在 /proc/sys/ 目录下,有的可以改变,有的是只读。

 

文件系统参数

fs/file-max可以分配的文件句柄的最大数目

fs/file-nr已分配文件句柄的数目、已使用文件句柄的数目、文件句柄的最大数目。只读

fs/inode-*与索引节点相关的

内核相关

kernel/ctrl-alt-del控制系统在接收到 ctrl+alt+delete 按键组合时如何反应。

kernel/domainname您配置网络域名

kernel/hostname您配置网络主机名

kernel/msgmax该文件指定了从一个进程发送到另一个进程的消息的最大长度。

kernel/msgmnb该文件指定在一个消息队列中最大的字节数。

kernel/msgmni该文件指定消息队列标识的最大数目。

kernel/threads-max该文件指定内核所能使用的线程的最大数目。

网络子系统

net/core/message_burst写新的警告消息所需的时间,以 1/10 秒为单位,在这个时间内所接收到的警告消息会被丢弃。

net/core/netdev_max_backlog该文件指定了,在接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net/core/optmem_max该文件指定了每个套接字所允许的最大缓冲区的大小。

net/core/rmem_default该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。

net/core/rmem_max该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。

net/core/wmem_default该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

net/core/wmem_max该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。

net/ipv4/*IPv4相关,参阅文件 /usr/src/linux/Documentation/networking/ip-sysctl.txt

net/ipv6/*IPv6相关

net/ipv4/ip_forward转发IPv4数据包

net/ipv4/ip_default_ttl修改IPv4默认的TTL值

net/ipv4/ip_no_pmtu_disc关闭IPv4路径MTU探测,默认值为FALSE

net/ipv4/tcp_syn_retries对于一个新建连接,IPv4子系统要发送多少个SYN连接请求才决定放弃。

net/ipv4/tcp_synack_retries对于远端的连接请求SYN,IPv4子系统会发送SYN+ACK数据报,以确认收到上一个SYN连接请求包。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。

sys/net/ipv4/tcp_syncookies设置IPv4子系统是否打开SYN Cookie功能,该功能可以防止部分SYN攻击。

sys/net/ipv4/ipfrag_high_thresh设置IPv4分片汇聚的最大内存用量。

sys/net/ipv4/ipfrag_time设置IPv4分片在内存保存时间。

sys/net/ipv4/icmp_echo_ignore_all设置为0则IPv4子系统将忽略所有发送给自己的ICMP echo请求。

sysctl 命令和 /etc/sysctl.conf

sysctl 命令是用来读取和修改内核子系统的。

语法:sysctl dir1.dir2.file,表示操作 /proc/sys/dir1/dir2/file 文件。

 

实例:

#sysctl -a 读取所有设置

#sysctl net.ipv4 读取 /proc/sys/net/ipv4/ 目录下的设置

#sysctl net.ipv4.ip_forward 读取 ip_forward 设置

#sysctl net.ipv4.ip_forward=1 修改 ip_forward 设置为1

 

sysctl 命令的设置只能临时修改,要永久生效还要把这些设置加入 /etc/sysctl.conf 文件。

 

实例:

#vim sysctl.conf

net.ipv4.ip_forward=1

这样才永久生效。

#sysctl -p 让/etc/sysctl.conf文件的设置立即生效。

分享到:
评论

相关推荐

    linux proc文件系统简介

    Linux Proc 文件系统简介 Proc 文件系统是 Linux 操作系统中的一种虚拟文件系统,它提供了对系统硬件和进程信息的访问接口。Proc 文件系统是 Linux 系统中一种特殊的文件系统,它不占用磁盘空间,也不需要磁盘存储...

    linux proc文件系统详解

    Linux的proc文件系统是Linux内核提供的一种特殊文件系统,它并不存储于硬盘上,而是直接映射到内存中,反映了系统的实时状态。这个虚拟文件系统对于系统管理员和开发者来说至关重要,因为它提供了查看和交互内核运行...

    proc文件系统简介

    /proc文件系统是Linux操作系统中一个非常关键的组成部分,它为用户空间提供了一个接口,以便于访问和操作内核的状态及进程信息。由于/proc不是一个实际存在于硬盘上的文件系统,而是存在于内存中,因此它被称为虚拟...

    linux /proc 文件 系统监控器 GTK

    在Linux操作系统中,/proc文件系统是一个非常特殊的虚拟文件系统,它并不占用磁盘空间,而是作为内核与用户空间之间的一个接口,用于提供运行时的系统信息。这个特殊的文件系统允许用户通过读取其中的文件来获取关于...

    Linux下Proc文件系统的编程剖析.pdf

    Linux 下 Proc 文件系统的编程剖析 本文主要介绍 Linux 下 Proc 文件系统的编程剖析,包括对 Proc 文件系统的编程、内核模块的编写和虚拟文件系统的运作原理。Proc 文件系统是 Linux 下一种特殊的文件系统,它允许...

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

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

    linux 操作系统 GTK /proc文件 系统监视器

    在Linux操作系统中,/proc文件系统是一个非常重要的虚拟文件系统,它提供了查看和修改内核运行时状态的接口。这个特殊的文件系统并不占用磁盘空间,而是动态地反映了当前系统的进程、硬件信息以及各种系统参数。`/...

    Linux下Proc文件系统的应用

    这是在Linux操作系统的Proc虚拟文件系统下建立文件并管理文件的内容,是我们的一个课程设计。我们建立了三个文件用于饭店系统管理。一个是菜单,一个是会员还有一个根目录。本程序适用于初学者学习proc文件系统。

    linuxproc文件系统学习.pdf

    Linux Proc 文件系统学习 Linux Proc 文件系统是一种虚拟文件系统,它提供了一种访问内核内部数据结构和改变内核设置的机制。Proc 文件系统加载在内存中,而不是硬盘上,它让用户可以和内核内部数据结构进行交互,...

    proc文件系统使用举例

    **一、proc文件系统概述** 1. **结构**: `proc`目录下的每个文件或子目录都对应一个内核数据结构或功能。例如,`/proc/cpuinfo`显示CPU信息,`/proc/meminfo`展示内存状态,而`/proc/<pid>`目录则包含了对应进程的...

    linux proc 文件系统 编程手册

    Linux的`/proc`文件系统是操作系统内核与用户空间之间的一个重要接口,它提供了一种方式来查看和控制运行中的内核状态。这个编程手册是针对初学者的,将帮助你理解如何利用`/proc`来获取系统信息、监控性能以及进行...

    Linux proc文件系统说明文档

    Linux proc文件系统说明文档

    内核对Proc 文件系统的函数

    linux Proc 文件系统 内核对Proc 文件系统的函数

    全面了解Linux下Proc文件系统.

    Linux下的Proc文件系统是Linux内核提供的一种特殊文件系统,它并不存储在硬盘上,而是一种内存映射的虚拟文件系统,主要用于提供内核状态和进程信息。Proc被挂载在根目录`/proc`下,它使得用户可以通过读取和写入...

    linux proc

    【Linux proc 文件系统详解】 ...通过以上学习,你不仅能够理解Linux proc文件系统并查询CPU、内核版本等信息,还能熟练进行C程序的编辑、编译、运行以及使用GDB进行调试,这些都是Linux系统管理和软件开发的基础技能。

    Linux内核proc文件系统实验

    Linux操作系统内核实验--proc文件系统实验: 问题A: 提取 1、cpu类型 2、内核版本 问题B: 1、启动以来经历的时间,以dd:hh:mm:ss报告 问题C: 1、cpu执行用户态、系统态、空闲态所用时间 2、多少次磁盘请求 3、多少...

    Linux内核模块与_proc文件系统.pdf

    Linux 内核模块与_proc 文件系统.pdf Linux 内核模块是 Linux 操作系统中的一种关键机制,它允许用户动态地修改内核、加载自己编写的程序,而不需要每次都编译内核。这种机制极大地改善了 Linux 的灵活性。 Linux ...

Global site tag (gtag.js) - Google Analytics