文件proc
系统允许内核传达有关 Linux 系统上每个正在运行的进程的信息。
为什么proc
称为文件系统?它不是像ext4
.它只是包含有关正在运行的进程的信息的文件集合。
答案1
/proc
opendir()
是一个文件系统,因为用户进程可以使用熟悉的系统调用和库调用(例如、readdir()
和chdir()
)在其中导航getcwd()
。甚至open()
,read()
并close()
处理出现在 中的许多“文件” /proc
。对于大多数意图和几乎所有目的来说,/proc
它是一个文件系统,尽管它的文件不占用某些磁盘上的块。
我想我们都应该澄清我们当前使用的术语“文件系统”的定义。在 ext4 的上下文中,当我们编写“文件系统”时,我们可能正在谈论磁盘块布局、也驻留在磁盘上某处的磁盘块的元数据信息规范以及处理的代码的组合磁盘上的布局。在/usr
、/tmp
等上下文中/var/run
,我们正在撰写关于如何命名某些事物的理解或共享概念化。 “文件系统”一词的这两种用法确实有很大不同。/proc
正如您所指出的,它实际上是第二种“文件系统”。
答案2
它只是包含信息的文件区域
但这正是文件系统的作用是。文件系统不必是可写的,也不必驻留在永久存储上。
procfs
注意:(内核中的伪文件系统实现)与其传统的挂载点之间存在区别/proc
。理论上你可以在procfs
任何地方安装,但这种情况很少见。正因为如此,人们经常谈论/proc
他们真正的意思procfs
。
procfs
被称为伪文件系统,因为 a 中的文件procfs
不是由通常的文件系统操作创建的,而是由文件系统实现本身根据内核其他地方发生的情况添加和删除。
答案3
如果数据以某种方式组织,以便可以通过文件系统使用的机制来访问它们,那么您可以将整个事物称为文件系统。