sysfs 是 procfs 的严格子集吗?

sysfs 是 procfs 的严格子集吗?

Linux内核通过以下方式向用户提供的信息sysfsA严格子集Linux 内核通过以下方式向用户提供的信息procfs

如果不是,那么哪些信息是通过 提供的,sysfs而不是通过 提供的procfs

答案1

Sysfs 根本不是 procfs 的子集。它们有不同的用途,请参阅答案procfs 和 sysfs 有什么区别?

答案2

不,它不是严格的子集。它甚至不是一个子集。

下面是一个演示,在运行主要 GNU/Linux 发行版的桌面 PC 上,没有任何会影响结果的自定义,其中至少有一个数据存在于 中,sysfs而 中不存在procfs

$ grep -ir `cat /sys/block/sda/device/model | cut -f1 -d' '` /sys 2>/dev/null
/sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/model:SanDisk [...]
Binary file /sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/vpd_pg83 matches

$ grep -ir `cat /sys/block/sda/device/model | cut -f1 -d' '` /proc 2>/dev/null
Binary file /proc/26887/task/26887/cmdline matches
Binary file /proc/26887/cmdline matches

顺便说一句,这也表明,至少在该 PC 上, 公开的所有数据集procfs不是 公开的数据的子集sysfs

相关内容