我正在阅读嵌入式Linux入门手册和Linux内核模块编程指南,我对与内核模块的用户空间应用程序通信感到困惑
用户空间应用 - >设备节点/ proc文件 - >内核模块(位于/ lib / modules /中)
1)当我们与设备节点方法(/ dev / - 使用open,read,write,close调用)和/ proc / file方法进行通信时,有什么区别?
答案 0 :(得分:0)
procfs
(/proc
)应保留用于过程信息,模块不应将任何文件放在那里。在某些时候,procfs
是唯一可用的伪文件系统,这就是您可以找到声音系统或RTC信息的原因。然后,创建sysfs
以正确包含这些信息。
使用设备文件(通常驻留在/ dev)和procfs文件之间的主要区别在于它在内核中的处理方式。
设备文件使用的操作使用file_operations结构进行注册,通常使用cdev_init
和cdev_add
作为字符设备。您的模块可能不经常这样做,子系统是注册您设备的子系统。
procfs
中的文件操作