答案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
。