Linux 系统中/proc 目录
/proc
文件系统概述
/proc
是 Linux 内核提供的一个虚拟文件系统,它并不占用磁盘空间,而是由内核在内存中动态生成。这个文件系统提供了一种机制,允许用户空间程序访问内核空间的数据结构,从而获取系统和进程的运行状态信息。
/proc
文件系统中的文件和目录提供了以下功能:
- 进程信息:每个进程都有一个对应的目录,例如
/proc/[pid]
,其中包含了该进程的详细信息,如状态、内存使用、打开的文件等。 - 系统信息:
/proc
中有一些特殊的文件,如/proc/cpuinfo
、/proc/meminfo
和/proc/version
,它们提供了关于CPU、内存和内核版本的信息。 - 内核参数:一些内核参数可以通过
/proc
文件系统进行读取和修改,例如/proc/sys
目录下的文件。 - 设备文件:
/proc/bus
目录下包含了系统中设备的相关信息,如PCI总线设备。 - 挂载信息:
/proc/mounts
文件包含了当前系统上所有挂载的文件系统列表。 - 网络信息:
/proc/net
目录包含了网络相关的统计信息和配置。
详细介绍:
1、进程目录:
cwd
:当前工作目录的符号链接。fd
:打开文件的符号链接。exe
:指向启动该进程的可执行文件的符号链接。stat
:进程的状态信息。status
:更易读的进程状态信息。cmdline
:启动该进程的命令行参数。- 每个进程都有一个以进程ID命名的目录,例如
/proc/1234
,其中1234
是进程ID。 - 这些目录下包含了该进程的详细信息,如:
每个运行中的进程都有一个以其 PID 命名的子目录,例如 /proc/1234。
这些子目录包含大量关于该进程的信息:
/proc/[PID]/cmdline:进程的启动命令行参数。
/proc/[PID]/cwd:指向进程当前工作目录的符号链接。
/proc/[PID]/environ:进程的环境变量。
/proc/[PID]/exe:指向进程的可执行文件的符号链接。
/proc/[PID]/fd/:文件描述符的目录,每个文件描述符都有一个条目。
/proc/[PID]/maps:进程的内存映射。
/proc/[PID]/status:进程状态信息。
/proc/[PID]/stat:进程的状态信息,格式化为单行数据。
在 Linux 系统中,/proc/[PID]/ns/
是一个指向特定进程的命名空间(namespace)的符号链接。每个进程都有自己的命名空间,这些命名空间决定了进程如何看到系统资源,如网络、文件系统、用户组等。
/proc/[PID]/ns/ 目录下通常包含以下命名空间:
mnt:挂载命名空间,决定了进程看到的文件系统视图。
net:网络命名空间,决定了进程看到的网络接口和协议栈。
pid:进程 ID 命名空间,允许进程拥有独立的进程编号。
user:用户命名空间,允许进程拥有独立的用户和组 ID。
ipc:进程间通信(IPC)命名空间,决定了进程如何看到 IPC 资源。
uts:UNIX 时间共享系统(UTS)命名空间,决定了进程看到的主机名和网络名称。
2、系统信息文件:这些文件提供了系统级别的硬件和内核信息:
/proc/cpuinfo:包含有关 CPU(中央处理器)的详细信息,包括型号、速度和缓存大小等。
/proc/meminfo:提供了关于系统内存使用情况的详细信息,包括总内存、可用内存、缓存和交换空间等。
/proc/uptime:显示系统启动以来的时间和系统的空闲时间。
/proc/loadavg:显示系统负载平均值(1、5、15 分钟)。
/proc/version:显示当前运行的内核版本和编译信息。
/proc/filesystems:显示当前内核支持的文件系统类型。
/proc/partitions:列出系统中的磁盘分区信息。
/proc/version:显示内核版本信息。
/proc/uptime:显示系统启动以来的时间。
/proc/loadavg:显示系统负载平均值。
3、系统配置参数:
/proc/sys
:包含系统配置参数,可以用于调整系统行为,如网络设置、文件系统参数等。可以通过 sysctl
命令来查看和修改这些参数
/proc/sys/net/ipv4/ip_forward:用于控制 IP 转发功能。如果设置为 1,则启用 IP 转发。
/proc/sys/kernel/hostname:存储系统主机名。
/proc/sys/vm/swappiness:控制内核的交换行为。
sysctl -a # 查看所有可调参数
sysctl net.ipv4.ip_forward # 查看IP转发状态
sudo sysctl -w net.ipv4.ip_forward=1 # 启用IP转发
4、内存管理信息:
/proc/meminfo
:提供内存使用情况的统计信息。/proc/buddyinfo
:显示内存分配的伙伴系统状态。(用于诊断内存碎片问题的相关信息文件)
5、CPU 信息:
/proc/cpuinfo
:列出CPU的详细信息,如型号、速度等。
6、中断和I/O请求信息:
/proc/interrupts
:显示中断和I/O请求的统计信息。
7、网络信息:
/proc/net
:包含网络子系统的各种统计信息,如路由表、套接字等。
8、设备驱动信息:
/proc/bus:包含系统中设备的总线信息。
/proc/devices:显示系统中字符设备和块设备的列表。
/proc/interrupts:显示各个 CPU 的中断统计信息。
/proc/dma:显示已使用的 DMA 通道信息。
/proc/ioports:显示已使用的 I/O 端口信息。
评论已关闭