/dev 和 /sys 之间的区别

sou*_*nak 23 linux udev mount devices sysfs

devfssysfs到底有什么区别?两者似乎都维护着一个附加到系统的硬件列表。那么为什么甚至需要 2 个单独的 fs 呢?据我所知,/sys维护了一些“原始”设备列表(如“ser0”)。Udev 作用于这些设备,获取各种信息并应用各种规则将它们呈现为可识别的名称,然后映射到/dev(如“相机”)。这是唯一的原因吗?然后我们将/dev fs 中的相应设备(我们不能从/sys fs 执行此操作)挂载到/media fs 中。

我已经阅读了/dev 和 /sys/class 之间的差异?. 但我无法得到 sys fs 部分,它指出

Sysfs 包含设备的层次结构,因为它们连接到计算机

/sys 中的文件不是设备节点文件吗?那么它们是什么类型的文件呢?

Gil*_*il' 37

/sys文件系统(sysfs中)包含提供有关设备的信息的文件:不管是上电,供应商名称和型号,什么总线设备插入,等它的利益向管理设备的应用程序。

/dev文件系统包含文件允许程序访问设备本身:写数据到串行端口,读取硬盘,等它感兴趣的应用程序,接入设备。

一个比喻是/sys提供对包装的访问,同时/dev提供对盒子内容的访问。

中的文件/sys不是设备节点,而是符号链接和常规文件。这些常规文件的特殊之处在于,读取或写入它们会调用内核中特定于文件的函数,例如设备节点。不同之处在于文件以/sys这种方式工作是因为它们所在的文件系统,而设备节点以这种方式工作是因为它们的设备节点特性(文件类型表示(块或字符)设备,设备主要和次要编号表示它是哪个设备)。

之所以/dev独立于现有的/sys部分是历史:/dev历史可以追溯到Unix的曙光,同时/sys是一个更近期的发明。如果 Linux 是在没有历史背景的情况下设计的,/dev/sda那么/sys/block/sda/content.

  • 另见:`man hier`。 (6认同)