7.5. 内核实时补丁如何工作

kpatch 内核补丁解决方案使用 livepatch 内核子系统将旧功能重定向到新功能。当实时内核补丁应用到系统时,会出现以下情况:

  1. 内核补丁模块复制到 /var/lib/kpatch/ 目录中,并在下次引导时由 systemd 注册以重新应用到内核。
  2. kpatch 模块被加载到正在运行的内核中,新的功能会注册到 ftrace 机制中,带有指向新代码内存中位置的指针。
  3. 当内核访问补丁的功能时,它将由 ftrace 机制重定向,该机制绕过原始功能并将内核重定向到功能补丁版本。

图 7.1. 内核实时补丁如何工作

RHEL kpatch 概述