procfs的作用是什么?

Bil*_*eal 3 kernel

sysfs非常有意义 - 它代表系统,并安装在/dev. 然而,procfs安装到 的/proc更加模糊。什么是procfs/proc使用?

Gil*_*il' 9

历史上(Linux 之前的几年),/proc首先出现,并且每个进程包含一个文件。每个(伪)文件都提供对进程内存的访问,例如,从文件中读取字节号 0x1234 会给你进程虚拟内存中地址 0x1234 的内容。该接口由ps(原始进程信息查看器)和调试器等命令使用。

Unix 的后续变体复制了原理,但没有复制细节。例如,在 Linux 上,每个进程有一个目录,以可读的形式包含各种信息。例如,/proc/1/cwd是指向进程 1 当前工作目录的符号链接,并且/proc/1/cmdline是包含命令行参数的文件。

因为它在那里,Linux 还用于/proc提供系统信息,例如/proc/cpuinfo包含有关 CPU(微处理器)/proc/bus/usb/的信息和包含有关 USB 设备的信息。的文档/proc在内核文档中filesystems/proc.txt

后来,/syssysfs文件系统)开始提供有关内核的信息。例如,在/sys/bus/usb(与 格式不同/proc/bus/usb)下有关于 USB 设备的信息,在 下有关于内核模块(以及控制某些模块的接口)的信息/sys/modules

请注意,/proc/sys这与/sys. /proc/sys显示了一组特定的运行时可配置内核参数,称为sysctl parameters

你会发现更多的历史和当前的信息大约/proc在维基百科上

¹或更准确地说,proc文件系统可以安装在其他位置(但不可用/proc会破坏很多程序)。


txw*_*ger 7

/proc是内核的实时api。您可以设置内核变量,或检索内核信息。procfs 类似地是一个文件系统模拟,能够通过文件系统与内核进行通信。

每个进程都有自己的目录,/proc以进程ID为名称。在此目录中,您可以找到内核针对特定进程的所有类型的信息。

其他目录允许获取内核统计信息(例如/proc/meminfo)或信息(例如/proc/cpuinfo),或者您可以配置某些内容(例如/proc/sys/vm/swappiness允许您更改内核将如何使用交换空间)。