/proc
文件系统提供了对内核进程信息的访问。每个进程都有一个对应的目录,包含该进程的状态和统计信息。Linux 进程文件系统 /proc 详解
Linux 的 /proc 目录是一个虚拟文件系统,它提供了对内核和进程信息的实时访问,这个目录包含了许多以数字命名的子目录,每个子目录代表一个运行中的进程或系统信息,通过查看这些文件,可以获取关于系统硬件、正在运行的进程以及系统状态的信息。
/proc 目录结构
/proc 目录的结构是树形的,其中包含多个子目录和文件,每个文件和子目录都反映了系统的不同方面。
/proc/cpuinfo:包含处理器的信息。
/proc/meminfo:包含内存使用情况的信息。
/proc/net:包含网络协议的信息。
/proc/sys:包含系统内核的配置参数。
/proc/[pid] 目录
每个正在运行的进程在 /proc 下都有一个对应的子目录,该子目录的名称为进程 ID(PID),进程 ID 为 1234 的进程,其信息存储在 /proc/1234 目录下,以下是该目录下一些常见文件的介绍:
cmdline:启动当前进程的完整命令行参数。
cwd:指向当前进程运行目录的一个符号链接。
environ:当前进程的环境变量列表,彼此间用空字符(NULL)隔开;变量用大写字母表示,其值用小写字母表示。
exe:指向启动当前进程的可执行文件(完整路径)的符号链接,通过 /proc/N/exe 可以启动当前进程的一个拷贝。
fd:这是一个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接。
limits:当前进程所使用的每一个受限资源的软限制、硬限制和管理单元;此文件仅可由实际启动当前进程的 UID 用户读取(2.6.24 以后的内核版本支持此功能)。
maps:当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表。
mem:当前进程所占用的内存空间,由 open、read 和 lseek 等系统调用使用,不能被用户读取。
root:指向当前进程运行根目录的符号链接。
stat:当前进程的状态信息,包含一系列格式化后的数据列,通常由 ps 命令使用。
statm:当前进程占用内存的状态信息,通常以“页面”(page)表示。
status:与 stat 所提供信息类似,但可读性较好。
task:目录文件,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中(内核 2.6 版本以后支持此功能)。
常见的 /proc 文件
除了上述与进程相关的文件外,/proc 目录下还有许多其他文件,用于提供系统级别的信息:
/proc/apm:高级电源管理(APM)版本信息及电池相关状态信息,通常由 apm 命令使用。
/proc/buddyinfo:用于诊断内存碎片问题的相关信息文件。
/proc/cmdline:在启动时传递至内核的相关参数信息,这些信息通常由 lilo 或 grub 等启动管理工具进行传递。
/proc/cpuinfo:处理器的相关信息。
/proc/crypto:系统上已安装的内核使用的密码算法及每个算法的详细信息列表。
/proc/devices:系统已经加载的所有块设备和字符设备的信息,包含主设备号和设备组名。
/proc/diskstats:每块磁盘设备的磁盘 I/O 统计信息列表(内核 2.5.69 以后的版本支持此功能)。
/proc/dma:每个正在使用且注册的 ISA DMA 通道的信息列表。
/proc/execdomains:内核当前支持的执行域(每种操作系统独特“个性”)信息列表。
/proc/fb:帧缓冲设备列表文件,包含帧缓冲设备的设备号和相关驱动信息。
/proc/filesystems:当前被内核支持的文件系统类型列表文件。
/proc/interrupts:X86 或 X86_64 体系架构系统上每个 IRQ 相关的中断号列表。
/proc/iomem:每个物理设备上的记忆体(RAM 或者 ROM)在系统内存中的映射信息。
/proc/ioports:当前正在使用且已经注册过的与物理设备进行通讯的输入-输出端口范围信息列表。
/proc 文件系统是 Linux 系统中一个非常重要的组件,它为用户提供了实时的系统和进程信息,通过查看 /proc 目录下的文件,用户可以方便地进行系统管理和性能优化。/proc 还允许用户修改某些文件来改变内核的运行状态,从而实现对系统的动态调整。
各位小伙伴们,我刚刚为大家分享了有关“linux 进程 proc”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!