我对 Linux 非常熟悉(我已经使用它 2 年,没有使用 Windows 1 1/2 年),我终于深入研究了内核编程,并且我正在做一个项目。所以我的问题是:
- 内核模块是否会比传统的 c 程序运行得更快。
- 如何与模块通信(甚至可能),例如调用其中的函数。
最佳答案
1.Will a kernel module run faster than a traditional c program.
视情况而定
作为内核模块运行意味着你可以按照不同的规则进行游戏,你可能会根据你正在做的事情来避免一些上下文切换。您可以访问一些可用于优化代码的强大工具,但不要指望将所有内容都放入内核空间就能神奇地加快代码的运行速度。
2.How can I communicate with a module (is that even possible), for example call a function in it.
有多种方式:
- 您可以使用各种文件系统接口(interface):procfs , sysfs , debugfs , sysctl , ...
- 您可以注册 a char device
- 您可以使用 the Netlink interface
- 您可以创建新的系统调用,尽管强烈建议不要这样做
- 而且你总是可以想出你自己的方案,或者使用一些不太常见的 API
关于linux - 关于 Linux 内核模块的快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684989/