我有一个问题,我不确定这是一个相关的问题(也许我错过了一些东西)。
说在 linux 上一切都是文件意味着:
1 - 与模块和进程的通信正在写入文件:是否正确
2 - 如果正确,这些文件是否存储在硬盘驱动器上?
3 - 如果正确,读/写硬盘是否需要时间?
一切都可能是一个文件,但并非一切都是真实的。
考虑 的内容/proc
。在我的 Linux 系统上,有一个文件/proc/uptime
,其当前内容是:
831801.89 1241295.64
如果我cat
再次访问该文件,它将包含不同的数字。我的硬盘驱动器以只读方式安装,因此不可能每隔几分之一秒就将这些数字写入磁盘。实际上,/proc
磁盘上没有任何内容。由于procfs
.
然后是临时文件。/tmp
很有可能,您的 ismounted tmpfs
,这意味着它的内容存储在 RAM 中而不是磁盘上。
另一个有趣的地方是/dev/tcp
,用于与网络通信。在某些系统上,它甚至只存在于bash
而不是其他 shell 下,因此在这些系统中它不可能位于磁盘上。
这些例子都表明文件系统和硬盘是分开的,“一切都是文件”的理念不会因为 I/O 速度而影响性能。