加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – 何时使用/ proc和/ dev

发布时间:2020-12-14 01:02:53 所属栏目:Linux 来源:网络整理
导读:我需要编写一个不是设备驱动程序的内核模块.该模块将与一些用户空间进程通信.因为我不想使用ioctl(),所以我要么在/ proc目录中创建一个文件,要么在/ dev目录中创建一个设备文件. 问题:我如何在/ proc和/ dev之间做出决定.这只是一个判断电话,还是有任何关于
我需要编写一个不是设备驱动程序的内核模块.该模块将与一些用户空间进程通信.因为我不想使用ioctl(),所以我要么在/ proc目录中创建一个文件,要么在/ dev目录中创建一个设备文件.

问题:我如何在/ proc和/ dev之间做出决定.这只是一个判断电话,还是有任何关于使用这两个的不成文的协议.

解决方法

在/ proc /中添加新接口会有很大困难.内核开发人员不满意它已经成为各种接口的倾销场所,除非你实际上通过/ proc / pid /修改了关于进程的东西,否则我认为你难以说服内核社区接受它.

即使对于非真正设备驱动程序的模块,/ dev /中的设备文件也是可以接受的. (例如,/ dev / kvm,/ dev / pts,/ dev / ecryptfs,/ dev / fuse,/ dev / kmsg,/ dev / ptmx等)但是,使用ioctl操作设备文件往往更容易( ),如果可以的话,我认为你是正确的.

内核圈的当前趋势是sysfs或自定义文件系统. sysfs方法基于单值每文件语义,旨在使用echo和cat进行操作.如果它适合您,对用户来说非常棒.自定义文件系统允许您编写非常具体的二进制功能接口,而fs / libfs.c应该可以帮助您根据自己的需要编写自己的文件系统. (我不知道有谁使用过configfs,但我一直以为它看起来很整洁.也许它适合你的模块?)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读