使用开源ksplice 方案
主要原理:
编译内核时,通过制定特定参数(后续补充), 让每个函数编译时分别产生代码段。
然后将没打补丁和已经打了补丁的内核代码 (此时没有进行重定位)的函数挨个进行比较,不同的函数则将其放到new.ko 里面。
在内核启动时会插入三个ko。 会将 new.ko 打进内核。 实际上是将内核里面的函数 的第一条指令替换成jump指令,只想new.ko对应的函数位置。
使用开源ksplice 方案
主要原理:
编译内核时,通过制定特定参数(后续补充), 让每个函数编译时分别产生代码段。
然后将没打补丁和已经打了补丁的内核代码 (此时没有进行重定位)的函数挨个进行比较,不同的函数则将其放到new.ko 里面。
在内核启动时会插入三个ko。 会将 new.ko 打进内核。 实际上是将内核里面的函数 的第一条指令替换成jump指令,只想new.ko对应的函数位置。