到底有什么区别开发文件系统和系统文件系统?两者似乎维护附加到系统的硬件列表。那么为什么需要 2 个独立的 fs 呢?据我所知/系统维护一些“原始”设备列表(如“ser0”)。udev
作用于这些设备,获取各种信息并应用各种规则将它们呈现为可识别的名称,然后将其映射到/dev(如“相机”)。这是唯一的原因吗?然后我们挂载相应的设备/devfs(我们不能从/系统fs) 进入/媒体FS。
我已阅读答案/dev 和 /sys/class 之间的区别?。但我无法得到 sys fs 部分的说明
Sysfs 包含设备的层次结构,因为它们连接到计算机
这些文件不是/sys
设备节点文件吗?那么它们是什么类型的文件呢?
答案1
文件系统/sys
(sysfs) 包含提供有关设备信息的文件:是否已开机、供应商名称和型号、设备插入的总线等。管理设备的应用程序对此很感兴趣。
文件系统/dev
包含允许程序访问设备本身的文件:将数据写入串行端口、读取硬盘等。访问设备的应用程序对此很感兴趣。
一个比喻是,/sys
提供对包装的访问,同时/dev
提供对盒子内容的访问。
中的文件/sys
不是设备节点,而是符号链接和常规文件。这些常规文件的特殊之处在于,读取或写入它们会调用内核中特定于文件的函数,例如设备节点。不同之处在于,文件以/sys
这种方式工作是因为它们所在的文件系统,而设备节点以这种方式工作是因为它们的设备节点特征(文件类型指示(块或字符)设备,设备主设备号和次设备号指示是哪个设备)。
/dev
独立存在的原因/sys
部分是历史性的:/dev
可以追溯到 Unix 的黎明,而/sys
它是一个更新得多的发明。如果 Linux 是在没有历史背景的情况下设计的,/dev/sda
可能会是/sys/block/sda/content
.
答案2
/dev
目录允许通过设备文件(或设备节点)访问设备/sys
目录允许查看设备信息和详细信息。
例如:(cat /sys/block/*/device/serial
用or或...*
替换,具体取决于您的情况)将打印磁盘存储的序列号。nvme0n1
sda
hda