我可以将 linux 内核的补丁转换为可加载的内核模块吗?



我有一个针对vanila linux内核的补丁,其中包括新文件以及原始内核源代码树文件中的更改。

我想使此补丁成为可加载内核模块,以便我可以避免任何基本内核的重建。

由于此补丁在头文件以及组织内核源代码的 .c 和数据文件中发生了变化,我怀疑这是否可以成为内核模块?

请询问您想要澄清问题的更多详细信息。

谢谢萨潘

简单的答案是否定的。

一个更微妙的答案:是的,理论上可以做一些你设想的事情。然而,它非常复杂 - 每个细节都必须完全正确 - 而不是你可以希望以临时方式做的事情。例如,每个增加大小的数据结构都可能导致需要重新分配和重新定位大面积内存,然后需要调整指向其中一个数据片段的每个指针,并且存在一系列进一步的相关调整。根本无法跟踪所有这些细节。

但是请参阅 https://www.ksplice.com/,它实际上在运行时修补内核。我不知道关于 ksplice 的很多细节,但我相当确定只有在非常严格的情况下才能做到这一点,因为由于我上面概述的担忧等原因,确切地限制了什么变化。

最新更新