据我所知,在Linux文件系统中,为了在用户空间和内核空间之间进行信息交流,使用了两种虚拟文件系统。
1) Proc文件系统:用于进程信息的动态获取和内核参数的动态配置。 http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html 2) Sysfs文件系统:主要用于管理和访问驱动程序和设备的状态信息,以及通过目录和属性文件提供与内核对象的接口。 https://en.wikipedia.org/wiki/Sysfs 在Linux内核代码中,一些子系统使用
因此,如果我要编写新的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
文件?请告诉我是否有任何误解。
procfs
相反,如果您打算传输大缓冲区,则sysfs
不适用,因为它仅接受最多页面大小
的缓冲区大小。 - stdcall