12.3. 内核的显著变化
64k 页大小内核
除了支持 4k 页的 ARM 内核的 RHEL 9 外,红帽现在还提供了支持 64k 页的可选内核软件包: kernel-64k
。
64k 页大小内核是 ARM 平台上大型数据集的一个有用的选项。它为某些类型内存和 CPU 密集型操作启用了更好的性能。
您必须在安装时在 64 位 ARM 架构系统上选择页大小。您只能通过将 kernel-64k
软件包添加到 Kickstart
文件中的软件包列表来通过 Kickstart 安装 kernel-64k
。
有关安装 kernel-64k
的更多信息,请参阅 执行高级 RHEL 9 安装。
RHEL 9 中默认启用 cgroup-v2
控制组版本 2(cgroup-v2)
功能实施单一层次结构模型,以简化控制组的管理。此外,它确保一个进程一次只能是一个控制组的成员。与 systemd
的深度集成提高了在 RHEL 系统上配置资源控制时的最终用户体验。
新功能的开发主要针对 cgroup-v2
,其具有 cgroup-v1
缺少的一些功能。类似地,cgroup-v1
还包含 cgroup-v2
中缺少的一些传统功能。此外,控制接口也不同。因此,直接依赖 cgroup-v1
的第三方软件在 cgroup-v2
环境中可能无法正常运行。
要使用 cgroup-v1
,您需要在内核命令行中添加以下参数:
systemd.unified_cgroup_hierarchy=0 systemd.legacy_systemd_cgroup_controller
内核中完全启用了 cgroup-v1
和 cgroup-v2
。从内核的角度来看,没有默认的控制组版本,并且由 systemd
决定在启动时挂载。
可能会影响第三方内核模块的内核更改
Linux 分发自 5.9 之前内核版本,支持导出 GPL 功能,作为非 GPL 功能。因此,用户可以通过 shim
机制将专有功能链接到 GPL 内核功能。在这个版本中,RHEL 内核融合了上游更改,这些更改提高了 RHEL 通过重新调整 shim
来强制实施 GPL 的能力。
合作伙伴和独立软件供应商(ISV)应利用早期版本的 RHEL 9 测试他们的内核模块,以确保其符合 GPL。
RHEL 9 支持内核调度
借助内核调度功能,用户可以防止不应相互信任的任务共享相同的 CPU 内核。类似地,用户可以定义可共享 CPU 内核的任务组。
可以指定这些组:
- 通过减少一些跨严重多线程(SMT)攻击来提高安全性
- 隔离需要整个内核的任务。例如,对于实时环境中的任务,或依赖特定处理器功能的任务,如单指令、多数据(¢D)处理
如需更多信息,请参阅 Core Scheduling。
kernelopts
环境变量已在 RHEL 9 中删除
在 RHEL 8 中,使用 GRUB2 引导装载程序的系统的内核命令行参数定义在 kernelopts
环境变量中。此变量存储在每个内核引导条目的 /boot/grub2/grubenv
文件中。但是,使用 kernelopts
存储内核命令行参数并不可靠。因此,Red Hat 删除了 kernelopts
,且内核命令行参数保存在 Boot Loader Specification(BLS)片断中,而不是在 /boot/loader/entries/<KERNEL_BOOT_ENTRY>.conf
文件中。
红帽只为次版本保护内核符号
红帽保证,在您使用受保护的内核符号编译内核模块时,内核模块将继续在延长更新支持(EUS)版本中的所有更新中载入,。RHEL 9 的次版本之间没有内核应用程序二进制接口(ABI)保证。