我正在开发一款可在 Linux 下运行的高性能硬件。我们想缓存一些数据,但我们担心内存消耗——所以我们的想法是创建一个用户进程来管理缓存。这样,缓存可以位于虚拟内存中,而不是内核空间等。
问题是:最好的方法是什么?我的第一直觉是让内核模块创建一个字符设备文件,并让一个用户程序打开该文件,然后坐在一个 select 语句上等待命令到达它。但我担心这可能不是最佳选择。一位 friend 提到他知道基于套接字的接口(interface),但当被追问时他无法提供任何细节....
有什么建议吗?
最佳答案
我认为您正在寻找 netlink界面。参见 Why and How to Use Netlink Socket [原文如此]了解更多信息。在内核和用户空间之间对话时要注意安全问题;最近有一个vulnerability当 udev
忽略检查消息来自内核而不是用户空间时。
关于linux - 使用用户空间进程来协助内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787155/