我有一个针对vanila linux内核的补丁,其中包括新文件以及原始内核SourceTree文件的更改 .
我想使这个补丁成为可加载的内核模块,这样我就可以避免重建基本内核 .
由于此补丁在头文件以及.g和org内核源的数据文件中有变化,我怀疑这是否可以成为内核模块?
请询问您想要澄清问题的更多详细信息 .
谢谢,萨潘
简单回答是不 .
一个更细致的答案:是的,从理论上讲,你可以做一些非常复杂的事情 - 每一个细节都必须完全正确 - 而不是你希望以特别的方式做的事情 . 例如,每个增加大小的数据结构都可能导致需要重新分配和重新定位大量内存区域,然后需要调整指向这些数据之一的每个指针,并且可能会进一步级联依赖性调整 . 根本无法跟踪所有这些细节 .
但是请参阅https://www.ksplice.com/,它实际上是在运行时修补内核 . 我完全相信,只有通过非常严格的约束才能做到这一点,因为我在上面概述的问题导致的确切变化是什么 .
1 回答
简单回答是不 .
一个更细致的答案:是的,从理论上讲,你可以做一些非常复杂的事情 - 每一个细节都必须完全正确 - 而不是你希望以特别的方式做的事情 . 例如,每个增加大小的数据结构都可能导致需要重新分配和重新定位大量内存区域,然后需要调整指向这些数据之一的每个指针,并且可能会进一步级联依赖性调整 . 根本无法跟踪所有这些细节 .
但是请参阅https://www.ksplice.com/,它实际上是在运行时修补内核 . 我完全相信,只有通过非常严格的约束才能做到这一点,因为我在上面概述的问题导致的确切变化是什么 .