gpt4 book ai didi

linux-kernel - 何时使用/proc 以及何时使用/dev

转载 作者:行者123 更新时间:2023-12-04 04:18:26 25 4
gpt4 key购买 nike

我需要编写一个不是设备驱动程序的内核模块。该模块将与一些用户空间进程进行通信。因为我不想使用 ioctl(),所以我要么在/proc 目录中创建一个文件,要么在/dev 目录中创建一个设备文件。

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

最佳答案

将新接口(interface)添加到/proc/中会遇到很大困难。内核开发人员不高兴它已成为各种接口(interface)的垃圾场,除非您实际上是通过/proc/pid/修改有关进程的某些内容,否则我认为您将难以说服内核社区接受它。

/dev/中的设备文件可能是可接受的,即使对于不是真正的设备驱动程序的模块也是如此。 (例如,/dev/kvm、/dev/pts、/dev/ecryptfs、/dev/fuse、/dev/kmsg、/dev/ptmx 等)但是,使用 ioctl( ),如果可以的话,我认为你是正确的。

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

关于linux-kernel - 何时使用/proc 以及何时使用/dev,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com