为什么 proc 被称为文件系统?

mik*_*mik 21 filesystems proc

proc文件系统允许内核传达有关在Linux系统上运行的每个进程的信息。

为什么proc叫文件系统?它不是像ext4. 它只是包含有关正在运行的进程的信息的文件集合。

Bru*_*ger 26

/proc是一个文件系统,因为用户进程可以使用熟悉的系统调用和库调用,想通过它导航opendir()readdir()chdir()getcwd()。甚至open()read()close()处理出现在/proc. 对于大多数意图和几乎所有目的,/proc是一个文件系统,尽管它的文件不占用某些磁盘上的块。

我想我们都应该澄清我们目前使用的术语“文件系统”的定义。在 ext4 的上下文中,当我们编写“文件系统”时,我们可能会讨论磁盘块的布局、关于也驻留在磁盘某处的磁盘块的元数据信息的规范以及处理的代码的组合磁盘布局。在的情况下/usr/tmp/var/run等,我们对此的理解或如何命名一些事情共享概念写作。术语“文件系统”的这两种用法确实大不相同。/proc正如您所指出的,实际上是第二种“文件系统”。

  • tl; dr:因为它是一个文件系统? (10认同)
  • 没有理由对 /proc 中的文件使用可怕的引号,除非人们认为文件总是由磁盘支持(或磁带支持,或 CD 支持,或其他任何支持)9。他们并不总是 - 想想 RAM 磁盘. 另外,即使是在 `/home` 中带有“真实”文件的打开/写入/关闭序列,也可能并不总是意味着旨在永久反映该文件在磁盘存储上的状态的相应更改已经完成并完成。 (9认同)

cjm*_*cjm 19

它只是一个包含信息的文件区域

但是,这正是一个文件系统是什么。文件系统不必是可写的,也不必驻留在永久存储中。

注意:(procfs内核中的伪文件系统实现)与其常规挂载点之间存在区别/proc。理论上,您可以在procfs任何地方安装 a ,但这种情况很少见。正因为如此,人们经常谈论/proc他们真正的意思procfs

procfs之所以称为伪文件系统,是因为 aprocfs中的文件不是由通常的文件系统操作创建的,而是由文件系统实现本身根据内核中其他地方发生的情况添加和删除的。

  • 因为它们是文件系统中的目录。(嗯,`/boot` 通常是一个单独的文件系统,但它不是一个单独的 *种类* 的文件系统。) (8认同)

gun*_*ert 10

如果以某种方式组织数据,以便可以通过用于文件系统的机制访问它们,您很可能将整个事物称为文件系统。