我正在开发一款在Linux下运行的高性能硬件。我们想缓存一些数据,但我们担心内存消耗 - 因此我们的想法是创建一个用户进程来管理缓存。这样,缓存可以在虚拟内存中,而不是在内核空间中,等等。
问题是:最好的方法是什么?我的第一直觉是让内核模块创建一个字符设备文件,并拥有一个打开该文件的用户程序,然后坐在select语句上等待命令到达它。但我担心这可能不是最佳的。一位朋友提到他知道基于套接字的界面,但是当他按下时他无法提供任何细节......
有什么建议吗?
答案 0 :(得分:2)
我认为您正在寻找netlink界面。有关详细信息,请参阅Why and How to Use Netlink Socket [原文如此]。在内核和用户空间之间进行交谈时要小心安全问题;当udev
忽略检查消息是来自内核而不是用户空间时,最近有vulnerability。