Linux /proc目录内容详解
在类Unix操作系统中,proc是一个独特的文件系统,它以类似分层文件的结构来说明进程的细节和其他系统的细节。与对内核内存的直接访问或传统的跟踪机制或直接访问相比,它提供了一种更标准化和更方便的机制来动态访问内核中保存的过程数据。它通常在引导时映射到称为/proc的装载点。proc文件系统实现为内核中的接口数据结构。它可以用于获取有关系统的信息,以及在运行时更改内核参数。
/proc目录下文件信息(PID是进程的ID):
/proc/PID/cmdline | 这是一个最初启动进程的命令。 |
/proc/PID/cwd | 它是指向进程工作目录(当前)的符号链接。 |
/proc/PID/exe | 当一个真正的可执行文件仍然可用时(一个进程可能在它的真正可执行文件被替换或删除后继续运行),它是一个符号链接。 |
/proc/PID/enenviron | 它包括影响进程的许多环境变量的值和名称。 |
/proc/PID/fdinfo | 这是一个目录,包含指定所有打开文件描述符的标志和位置的条目。 |
/proc/PID/fd | 这是一个目录,包含每个打开的文件描述符的符号链接。 |
/proc/PID/maps | 这是一个文本文件,包括映射的块和文件(如堆栈和堆)的详细信息。 |
/proc/PID/root | 它是一个指向进程检查的根路径的符号链接。它是大多数进程的/目录链接,除非进程在chroot监狱中执行。 |
/proc/PID/mem | 它是一个映像(二进制),用于抑制进程的虚拟内存。它只能由ptrace进程使用。 |
/proc/PID/status | 它包括有关进程及其内存使用情况的常见详细信息,并运行状态。 |
/proc/PID/task | 这是一个目录,包括指向该进程已开始的操作(即父进程)的硬链接。 |
非进程相关/proc系统信息
/proc文件包含有关系统的非进程相关信息。然而,大部分信息都转移到了一个独立的sysfs,伪文件系统,安装在2.6版本的内核中的/sys下:/proc/apm或/proc/acpi目录都依赖于电源管理模式,该模式预计会出现sysfs,并包括有关电源管理状态的几个信息位。
/proc/bus | 它包含一些目录,说明系统上的几种总线,如USB/PCI。它已被/sys/bus文件上的sysfs文件系统所取代,后者信息量更大。 |
/proc/buddynfo | 它给出了关于buddy算法的详细信息。该算法管理内存碎片。 |
/proc/cmdline | 它提供了许多引导选项,这些选项将传递给内核。 |
/proc/fb | 它定义了一个现有帧缓冲区的列表。 |
/proc/cpuinfo | 它包含CPU信息,如供应商(CPU系列、型号和型号名称,应允许用户识别CPU)、速度(CPU时钟速度)、CPU标志、内核、兄弟数量和缓存大小。 |
CPU封装信息
CPU封装表示可以有多个内核的物理CPU(四核表示四个,双核表示两个,一核表示一个)。它允许双核和超线程之间的差异,即每个CPU包的一个超线程可以由CPU或同级核心来测量,如果任何CPU包的两个值相等,则不支持超线程。
例如,一个CPU包以及CPU核心=2和同级=2是双核CPU,但不支持超线程进程。
/proc/crypto | 它定义了一个现有加密模块的列表。 |
/proc/diskstats | 它提供了所有逻辑磁盘设备的一些详细信息(以及设备编号)。 |
/proc/devices | 它定义了一个按设备ID排序的块和字符设备列表。尽管如此,它也提供了/dev/名称的很大一部分。 |
/proc/interrupts /proc/interrupts /proc/irq /proc/ioports /proc/iomem等 | 提供具有多个系统资源的设备(逻辑或物理)的信息。 |
/proc/filesytems | 它定义了一个文件系统列表,在列表过程中通过内核支持这些文件系统。 |
/proc/meminfo | 它包含内核如何处理内存的摘要。 |
/proc/kmsg | 它通过内核保存消息结果。 |
/proc/mounts | 它是mounts/self的符号链接,其中包括已安装设备(当前)和安装点的列表。 |
/proc/modules | 它是/proc文件系统中必需的文件之一。它包含当前加载的内核模块的列表。它提供了一些依赖性指示。 |
/proc/sscsi | 它提供有关通过RAID或scsi控制器连接的设备的信息。 |
/proc/dipartitions | 它表示一个设备大小、/dev/名称及其编号的列表,内核已将其识别为可用分区。 |
/proc/slabinfo | 它列出了Linux内核中经常使用的对象的缓存统计信息。 |
/proc/sysvipc | 它包含进程间通信和内存共享信息。 |
/proc/ouptime | 它表示内核自启动以来执行并在空闲模式下使用的时间长度。 |
/proc/version | 它包括Linux内核的版本、gcc版本号(用于构建内核)、发行版号以及与当前运行的内核版本相对应的其他相关详细信息。 |
所有其他文件都取决于模块配置、许多硬件和对内核的修改。在Linux上应用/proc文件系统的常见实用程序位于/proc进程(procps)包中。
专有开发
各种项目和公司为其系统的/proc文件系统添加了许多附加功能。例如,文件/proc/lcd可能包含前面板lcd屏幕内容。该文件中提到的文本将显示在屏幕上。
请先 后发表评论~