我必须向在内核级别的 Linux 中运行的模块添加一个插件,并且我必须访问一个可以定期更改的外部库,而无法停止该模块的执行
在用户空间级别,我知道我们可以使用动态库来制作这种东西。 我的问题是: 我们可以在内核级别使用这种类型的库吗,否则是否有一个相当于用户空间级别动态库的内核
最佳答案
您不能在内核中使用常规动态库。然而,内核模块可以在运行时加载和卸载。因此,如果您将内核代码拆分为长时间运行且可动态重新加载的部分,并将它们链接到两个单独的内核模块中,则可以达到相同的效果。当然,长时间运行的 kmod 一定不能依赖于短命的 kmod;相反,您需要长时间运行的模块来提供可重新加载模块用于注册自身的接口(interface)。
关于linux - 如何在linux内核模块中使用c动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047299/