如何在linux内核中选择"sys"和"proc"文件

Jee*_*tel 5 c linux filesystems linux-kernel

据我所知,

在Linux文件系统中,为了用户空间和内核空间之间的信息通信,使用两种虚拟文件系统.

1)Proc文件系统 http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html

2)sysfs文件系统 https://en.wikipedia.org/wiki/Sysfs

在linux内核代码中,我看到一些子系统使用了proc文件来执行这样的用户空间 - 内核空间通信,而有些系统使用了sysfs文件同样关注.

所以我只想知道,如果我要编写新的linux内核模块或驱动程序,那么如何选择虚拟文件?我何时应该使用sysfs何时应该使用proc文件?

如果我在这里误解了什么,请告诉我.

mkm*_*k88 5

关于在procfs中添加/修改条目,我唯一想到的是当您使用虚拟内存子系统本身时。我说的是/proc/sys/vm/中的条目(因此,如果您出于某种原因修改writebackovercomitswap等)。如果您正在编写与已通过procfs导出的内容无关的驱动程序或模块,则应该使用sysfs


Jee*_*tel 1

读了很多书后我有以下理解

1)Proc 文件是一些较旧的方法。它在每次读取或写入调用时分配页面大小的内存,并且该系统存在所有错误(就像您正在读取/写入任何设备的过程条目,并且设备已从系统中删除..在过程系统中没有对此进行处理..{读取它来自 LDD:) })。因此内核开发者社区建议使用更先进、更复杂的SYS文件系统。