linux - 如何在linux内核模块中使用c动态库

标签 linux module kernel

我必须向在内核级别的 Linux 中运行的模块添加一个插件,并且我必须访问一个可以定期更改的外部库,而无法停止该模块的执行

在用户空间级别,我知道我们可以使用动态库来制作这种东西。 我的问题是: 我们可以在内核级别使用这种类型的库吗,否则是否有一个相当于用户空间级别动态库的内核

最佳答案

您不能在内核中使用常规动态库。然而,内核模块可以在运行时加载和卸载。因此,如果您将内核代码拆分为长时间运行且可动态重新加载的部分,并将它们链接到两个单独的内核模块中,则可以达到相同的效果。当然,长时间运行的 kmod 一定不能依赖于短命的 kmod;相反,您需要长时间运行的模块来提供可重新加载模块用于注册自身的接口(interface)。

关于linux - 如何在linux内核模块中使用c动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047299/

相关文章:

linux - 需要帮助在 korn shell 中创建别名

linux - 无限循环内的 select() 在 RHEL 4.8 虚拟机上使用的 CPU 明显多于在 Solaris 10 计算机上

linux - 将 linux 内核中的函数导出到 linux 模块

linux - struct bio 中的字段 bi_sector 代表什么

c - 没有这样的文件或目录错误。怎么了?

linux - 比较/区分具有不同行终止符的两个文件

c++ - 关于访问 %gs

javascript - Uncaught ReferenceError : process is not defined

Python:如何加载一个模块两次?

memory-management - ELF 头和进程虚拟内存中的不同地址