4.9. 内核


RHEL 8.6 中的内核版本

Red Hat Enterprise Linux 8.6 与内核版本 4.18.0-372 一起发布。

另请参阅 外部内核参数的重要变化 以及 设备驱动程序

BZ#1839151

RHEL 8.6 的扩展 Berkeley Packet 过滤器

Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。虚拟机执行类特殊的装配代码。

eBPF 字节码首先加载到内核,然后进行验证,通过即时编译到原生机器代码转换,然后虚拟机执行代码。

红帽提供大量使用 eBPF 虚拟机的组件。每个组件处于不同的开发阶段,因此目前并不完全支持所有组件。在 RHEL 8.6 中,支持以下 eBPF 组件:

  • The BPF Compiler Collection (BCC)工具软件包,提供用于使用 eBPF 的 I/O 分析、联网和监控 Linux 操作系统的工具。
  • BCC 库,它允许开发与 BCC 工具软件包中相似的工具。
  • eBPF for Traffic Control(tc) 功能,可在内核网络数据路径中启用可编程数据包处理。
  • bpftrace 追踪语言
  • eXpress Data Path(XDP)功能在内核网络堆栈处理它们前提供对接收的数据包的访问,在特定情况下被支持。如需更多信息,请参阅 XDP 被有条件支持 以及 RHEL 中网络 eBPF 功能概述
  • libbpf 软件包对于 bpf 相关应用程序(如 bpftracebpf/xdp 开发)至关重要。
  • xdp-tools 软件包包含 XDP 特性的用户空间支持工具,现在在 AMD 和 Intel 64 位构架中被支持。这包括 libxdp 库、加载 XDP 程序的 xdp-loader 实用程序、用户数据包过滤的 xdp-filter 示例程序、用于从启用了 XDP 的网络接口捕获数据包的 xdpdump 工具程序。

请注意,所有其他 eBPF 组件都作为技术预览提供,除非有特定的组件被显示为受支持。

以下显著的 eBPF 组件当前作为技术预览提供:

  • 用于连接eXpress Data Path (XDP) 路径到用户空间的AF_XDP 套接字

如需有关技术预览组件的更多信息,请参阅 eBPF 作为技术预览

(BZ#1780124)

默认情况下,Red Hat 在所有 RHEL 版本中为特权用户启用 eBPF

扩展的 Berkeley 数据包过滤器(eBPF)是一个复杂的技术,其允许用户在 Linux 内核中执行自定义代码。由于其性质,eBPF 代码需要通过验证器和其他安全机制。存在常见的漏洞和暴露(CVE)实例,其中代码中的 bug 可能会被误用于未经授权的操作。为了减少这种风险,红帽默认在所有 RHEL 版本中只为特权用户启用 eBPF。可以使用 kernel.command-line 参数 unprivileged_bpf_disabled=0 为非特权用户启用 eBPF

但请注意:

  • 应用 unprivileged_bpf_disabled=0 使您的内核不被红帽支持,并使您的系统面临安全风险。
  • 红帽鼓励您使用 CAP_BPF 功能对待进程,就如同该功能等于 CAP_SYS_ADMIN 一样。
  • 设置 unprivileged_bpf_disabled=0 不足以由非特权用户执行许多 BPF 程序,因为大多数 BPF 程序类型的加载需要额外的功能(通常为 CAP_SYS_ADMINCAP_PERFMON)。

有关如何应用内核命令行参数的详情,请参考 配置内核命令行参数

(BZ#2089409)

在 RHEL 8 中添加了 osnoisetimerlat 追踪器

osnoise 追踪器测量操作系统噪声。也就是说,由操作系统和硬件中断而引起的应用程序中断。它还提供一组追踪点来帮助查找操作系统噪声的来源。timerlat 追踪器可测量偏离延迟,并帮助识别此类实时(RT)线程延迟的原因。在 RT 计算中,延迟绝对是至关重要的,即使是最小的延迟也可能是有害的。osnoisetimerlat 追踪器允许您调查和发现 OS 干扰应用程序和 RT 线程唤醒延迟的原因。

(BZ#1979382)

strace 工具现在可以显示实际 SELinux 上下文与从 SELinux 上下文数据库提取的定义之间的不匹配

strace 的现有 --secontext 选项已使用 mismatch 参数进行了扩展 。这个参数可让您只打印预期的上下文以及实际不匹配的上下文。输出用双感叹号(!!)分隔,第一个是实际上下文,然后是预期上下文。在下面的示例中,full,mismatch 参数打印预期的完整上下文以及实际的上下文,因为上下文的用户部分不匹配。但是,在使用单独的 mismatch 时,它只检查上下文的类型部分。预期的上下文不会打印,因为上下文的类型部分匹配。

[...]
$ strace --secontext=full,mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ...

$ strace --secontext=mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [user_home_t:s0], ...

SELinux 上下文不匹配通常会导致与 SELinux 相关的访问控制问题。系统调用 traces 中打印的不匹配可显著加快 SELinux 上下文正确性的检查。系统调用 traces 也可以解释有关访问控制检查的特定内核行为。

(BZ#2038992,BZ#2038810)

--cyclictest-threshold 选项已添加到 rteval 工具

有了这个增强,--cyclictest-threshold=USEC 选项已添加到 rteval 测试套件中。您可以使用这个选项指定阈值。如果任何延迟测量超过这个阈值,则 rteval 测试会立即结束。当不满足延迟预期时,则运行会以失败状态中止。

(BZ#2012285)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.