Oracle Linux 9 和 Unbreakable Enterprise Kernel 7 现已推出

Oracle 发布了 Oracle Linux 9 发行版和 Unbreakable Enterprise Kernel 7 (UEK R7) 的稳定版本,定位于在 Oracle Linux 发行版中使用,作为 Red Hat Enterprise Linux 标准内核包的替代方案。 Oracle Linux 9 发行版基于 Red Hat Enterprise Linux 9 软件包基础,并与其完全二进制兼容。

为 x8.6_840 和 ARM86 (aarch64) 架构准备的 64 GB 和 64 MB 安装 iso 映像可供无限制下载。 Oracle Linux 9 可以无限制地免费访问 yum 存储库,并提供修复错误(勘误表)和安全问题的二进制包更新。 包含 Application Stream 和 CodeReady Builder 包集的单独支持的存储库也已准备好供下载。

除了 RHEL 的内核包(基于内核 5.14)之外,Oracle Linux 还提供自己的内核 Unbreakable Enterprise Kernel 7,该内核基于 Linux 内核 5.15,并针对工业软件和 Oracle 硬件的使用进行了优化。 内核源代码(包括细分为各个补丁)可在公共 Oracle Git 存储库中获取。 Unbreakable Enterprise Kernel 默认安装,定位为标准 RHEL 内核包的替代品,并提供许多高级功能,例如 DTrace 集成和改进的 Btrfs 支持。 除了额外的内核之外,Oracle Linux 9 和 RHEL 9 的版本在功能上完全相同(更改列表可以在 RHEL9 公告中找到)。

Unbreakable Enterprise Kernel 7 的主要创新:

  • 改进了对 Aarch64 架构的支持。 64 位 ARM 系统上内存页面的默认大小已从 64 KB 减少到 4 KB,这更好地匹配 ARM 系统的内存大小和典型工作负载。
  • DTrace 2.0动态调试系统仍在继续交付,已切换为使用eBPF内核子系统。 DTrace 2.0 在 eBPF 之上运行,类似于现有 Linux 跟踪工具在 eBPF 之上的工作方式。
  • Btrfs 文件系统的功能已得到扩展。 Btrfs 中添加了 DISCARD 操作的异步实现,以标记不再需要物理存储的已释放块。 异步实现允许您不必等待驱动器完成 DISCARD 并在后台执行此操作。 添加了新的挂载选项,以简化从损坏的文件系统中恢复数据的过程:“rescue=ignorebadroots”用于在某些根树(范围、uuid、数据重新定位、设备、csum、可用空间)损坏的情况下进行挂载,“rescue=ignoredatacsums”用于禁用检查数据和“rescue=all”的校验和以同时启用“ignorebadroots”、“ignoredatacsums”和“nologreplay”模式。 进行了与 fsync() 操作相关的重大性能优化。 添加了对 fs-verity(文件身份验证和完整性验证)和用户 ID 映射的支持。
  • XFS 支持直接文件访问的 DAX 操作,绕过页面缓存以消除双重缓存。 添加了更改以解决 32 年 2038 位 time_t 数据类型的溢出问题,包括新的 bigtime 和 inobtcount 挂载选项。
  • 对 OCFS2(Oracle Cluster File System)文件系统进行了改进。
  • 添加了 ZoneFS 文件系统,该系统简化了分区存储设备的低级工作。 分区驱动器是指硬磁盘或 NVMe SSD 上的设备,其中的存储空间被划分为由块或扇区组组成的区域,只允许顺序添加数据,从而更新整个块组。 ZoneFS FS 将驱动器上的每个区域与一个单独的文件相关联,该文件可用于以原始模式存储数据,而无需在扇区和块级别进行操作,即允许应用程序使用文件 API,而不是使用 ioctl 直接访问块设备。
  • 对 VPN WireGuard 协议的支持已稳定。
  • eBPF 子系统的功能得到了扩展。 实现了CO-RE(Compile Once - Run Everywhere)机制,解决了编译后的eBPF程序的可移植性问题,让您只需编译一次eBPF程序的代码,并使用特殊的通用加载器,使加载的程序适应当前内核和 BPF 类型格式)。 添加了“BPF 蹦床”机制,该机制允许您在将内核和 BPF 程序之间的调用转移为零时实际减少开销。 提供了从 BPF 程序直接访问内核功能并挂起处理程序的能力。
  • 当访问内存中未对齐的数据时,会出现用于分割锁的集成检测器,因为执行原子指令时,数据会跨越两个 CPU 缓存线。 内核可以即时识别导致性能显着下降的此类阻塞,并向导致阻塞的应用程序发出警告或发送 SIGBUS 信号。
  • 支持多路径 TCP (MPTCP),它是 TCP 协议的扩展,用于组织 TCP 连接的操作,通过与不同 IP 地址关联的不同网络接口沿多条路由同时传送数据包。
  • 任务调度器实现了SCHED_CORE调度模式,该模式允许您控制哪些进程可以在同一CPU核心上一起执行。 可以为每个进程分配一个 cookie 标识符,该标识符定义进程之间的信任范围(例如,属于同一用户或容器)。 在组织代码执行时,调度程序可以确保一个CPU核心仅在与同一所有者关联的进程之间共享,这可以通过防止可信和不可信任务在同一SMT(超线程)线程上运行来阻止某些Spectre攻击。
  • 对于cgroup,实现了slab内存控制器,其显着之处在于将slab记账从内存页面级别转移到内核对象级别,这使得在不同cgroup中共享slab页面成为可能,而不是为每个cgroup分配单独的slab缓存。每个cgroup。 所提出的方法可以提高slab的使用效率,将slab使用的内存大小减少30-45%,显着降低内核的整体内存消耗并减少内存碎片。
  • 调试数据以 CTF(紧凑类型格式)格式提供,该格式提供有关 C 类型、函数之间的连接和调试符号的信息的紧凑存储。
  • DRBD(分布式复制块设备)模块和 /dev/raw 设备已停止使用(使用 O_DIRECT 标志进行直接文件访问)。

来源: opennet.ru

添加评论