Linux如何与常规文件一起管理“虚拟”文件char /块设备,硬件等?

如何解决Linux如何与常规文件一起管理“虚拟”文件char /块设备,硬件等?

我最近开始研究Linux的源代码,以便从头开始创建自己的POSIX操作系统。据我了解,类UNIX系统上的所有内容都是文件。您可以读取/写入字节的任何内容都可以抽象为“流”。但是在这里,我偶然发现了一个互联网上似乎没有人关心的问题(至少我没有找到任何解释它的问题):Linux在幕后将文件作为所有内容进行管理到底做了什么?

我的问题可能不清楚,所以这是我想了解的示例: 在外壳程序中键入“ ls -l”时,它不仅列出存储在磁盘上的物理文件,而且还会阻止和字符化设备,链接以及不是文件的其他内容。那怎么可能? Linux是否会将我们要从中获取文件的物理目录与具有相同名称和路径的虚拟文件系统中的另一个目录“合并”?

预先感谢, 戴夫。

解决方法

ls -l列出当前目录中的所有目录条目。目录条目不仅限于文件名,还可以包括子目录,符号和硬链接以及块和字符设备。这就是C头被命名为dirent.h

的原因

这里没有任何东西被“合并”。 Linux确实具有合并目录项的能力(使用诸如overlayFS,auFS,unionFS之类的不同名称),但是并不需要具有各种类型的目录项。

请注意,“一切都是文件”理念的确远远超出了目录条目的种类。目录条目主要充当文件名的命名空间,但是文件远不止于文件名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?