/dev 和 /sys 之间的区别

/dev 和 /sys 之间的区别

到底有什么区别开发文件系统系统文件系统?两者似乎维护附加到系统的硬件列表。那么为什么需要 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或...*替换,具体取决于您的情况)将打印磁盘存储的序列号。nvme0n1sdahda

相关内容