我已经在 Ubuntu 20.04 上测试了 ksplice uptrack,我发现它将补丁应用于实时内核。例如:
Effective kernel version is 5.4.0-139.156
uptrack-upgrade -y
The following steps will be taken:
Install [w4h8q11e] CVE-2023-20938: Use-after-free in the Android Binder deriver.
Installing [w4h8q11e] CVE-2023-20938: Use-after-free in the Android Binder deriver.
Your kernel is fully up to date.
Effective kernel version is 5.4.0-144.161
内核最初是 5.4.0-139,然后在无需重新启动的情况下变为 5.4.0-144。我的问题很简单:Linux 上是否存在/可以使用“补丁”或系统来使内核“实时升级”,例如从 5.4.0-144 到 5.10.0-121?几年前我听说过有关此问题的英特尔补丁。
答案1
实时内核补丁旨在修复漏洞,而不是升级内核版本。您看到 5.4.0-139 变成 5.4.0-144 的事实很不寻常。也许 Ubuntu 做了一些事情来保持单个内核版本中所有模块的兼容性,但这就是不是上游认为是允许的或可能的。即使您将 5.4.1 替换为 5.4.2,Upstream 仍坚持您需要重新启动。
仍然通过实时修补升级到新的主要内核版本是完全不可能的。
- 内核会在版本之间看到重大变化,包括标头,因此通常是 ABI/API。
- 核心内核结构的任何更改都会反映在内核模块中,因此它们无法与不同的内核版本兼容。
实时修补会更改内核内存映像。它无法更改磁盘上的模块。