glibc 2.43 为 Linux 带来了新的安全性和性能提升,尤其是在 AArch64 和 AMD Zen 架构上。

  • glibc 2.43 作为半年一次的更新版本发布,带来了诸多改进。
  • 对 ISO C23 标准及其新功能提供广泛支持
  • 处理器检测更新和 Unicode 17.0 支持

GNU C库2.43

GNU C 库 (glibc) 版本 2.43 现在可用 该版本作为半年一次的更新发布,为欧洲及全球的 Linux 开发人员和系统管理员带来了一系列重要的技术变更。虽然它是一个通常在后台运行的系统库,但此版本的变更可能会直接影响许多应用程序的性能、安全性和兼容性。

虽然日历显示目标日期是二月初, glibc 2.43 甚至提前发布了此次发布表明该项目的开发正在稳步推进。它包含了符合 C23 标准的新功能、重要的数学优化,以及针对 AArch64 等架构和现代 Intel 及 AMD 处理器的特定改进。

glibc 2.43 引入了符合 ISO C23 标准的新功能

glibc 2.43 最显著的贡献之一是 提升与 ISO C23 的兼容性,C 语言的新标准(与 中启动的改进保持一致) glibc 2.30该库包含以下功能: 均码, 自由对齐尺寸, memset_explicit 以及与内存对齐相关的实用程序,旨在实现更精细、更安全的资源管理。

此外,它们还被引入 对现有功能进行更改,使其符合 C23 要求这使得采用新标准的项目能够更轻松地编译和运行,减少阻力。同时,也支持可选的时间基准,例如: TIME_MONOTONIC, TIME_ACTIVE y TIME_THREAD_ACTIVE为更精确的时间测量打开了大门,以适应不同的执行场景。

glibc模式
相关文章:
Glibc 2.30:C库的新版本

glibc 2.43 中的安全改进:使用 mseal 进行内存密封

在安全性方面,glibc 2.43 增加了对该功能的支持 mseal 在 Linux 系统上此调用允许在进程执行期间“密封”某些内存映射,从而防止权限更改、取消映射、重新定位或大小减少。

这种做法的 内存加固尤其引人注目。 对于基础设施服务、银行软件、工业解决方案等敏感应用,或那些需要在地址空间层面最大限度减少攻击面的环境而言,虽然其影响可能对最终用户不可见,但它有助于增强服务器和工作站上 Linux 系统的健壮性。

openat2:文件访问更灵活

此次更新还包含 系统调用支持 openat2更高级的扩展 openat 适用于 Linux 系统。此功能在打开文件时提供额外的控制选项,允许更严格的策略以及对路径和权限进行更精细的管理。

对于文件系统访问的安全性和可追溯性至关重要的环境而言, openat2 提供更强大的工具 对于开发人员而言,这有助于减少编程错误,并更好地管理复杂的目录和符号链接场景。

实验性地兼容 Clang 和新架构

另一点值得关注的是…… 实验性地支持使用 LLVM Clang 编译器编译 glibc。只要在 Linux 系统上使用 18 或更高版本以及 AArch64 或 x86_64 架构,此功能就适用。尽管目前仍被视为一项实验性功能,但它代表着构建工具朝着更灵活方向迈出的重要一步。

此举对那些已经使用过这些设备的人来说尤其有用。 欧洲基于LLVM的环境无论是在研究还是生产中,它都有助于将系统的标准库集成到与 Clang 和相关工具的同构工作流程中。

使用 CORE-MATH 改进 glibc 2.43 的数学性能

就数值性能而言,glibc 2.43 包含了 来自 CORE-MATH 项目的新优化数学函数, 它们之间 acosh, asinh, atanh, erf, erfc, lgamma y tgamma这些实现方式力求在准确性和速度之间取得更佳的平衡,这在科学、金融或模拟领域至关重要。

除此之外,还有以下方面的实施: 例如以下操作 fma, fmaf, remainder, remaindef, frexpf, frexp 以及各种变体 frexpl 对于高级二进制格式,例如 binary128 e intel96FMA(融合乘加)的新实现方式以速度明显更快而著称,这在计算密集型工作负载中尤为明显。

AMD Zen处理器性能提升

与上述内容相关,2.43 版本带来了 针对 AMD Zen 处理器系列的具体改进优化这些 CPU 上的 FMA 操作可以显著提高大量使用此类指令的应用程序的性能,例如仿真引擎、数据分析或机器学习工具。

在许多欧洲数据中心 AMD Zen 已成为一种常见的选择。这些底层调整有助于在不更改应用程序的情况下,从现有硬件中获得更好的性能,因为这种好处来自系统库本身。

内存透明性:AArch64 架构中 2 MB 大页

另一个显著的变化是…… glibc 现在默认启用 2MB 透明大页。 在内存管理器中 malloc 对于 AArch64 架构,“巨页”允许使用更大的内存页,从而减少与地址空间管理相关的开销。

这项调整可能涉及 针对内存密集型工作负载的性能提升尤其是在欧洲,高性能的基于 ARM 的服务器和设备正在数据中心、云基础设施和开发环境中得到广泛应用。

支持新一代英特尔处理器

书店还增加了 检测英特尔 Nova Lake 和 Wildcat Lake 处理器这项支持意味着 glibc 能够正确识别这些新的 CPU 系列,从而可以应用针对其功能的特定优化或代码路径。

展望未来几年,随着企业和公共管理部门计算机系统的逐步更新, 为这些世代的处理器准备一个glibc 它有助于确保现代 Linux 系统在新硬件上高效运行,并顺利进入欧洲市场。

扩展兼容性:Unicode 17.0

在国际化部分,glibc 2.43 包含了 支持 Unicode 17.0这是字符编码标准的最新版本。这使得对新符号、文字和语言用法的识别更加全面。

对于处理应用程序 多种语言和文化背景下的文本尤其是在多语言的欧洲环境中,拥有一个包含最新版本 Unicode 的更新版 C 库有助于避免兼容性问题,并正确表示最新的字符和字体。

凭借所有这些改进,glibc 2.43 确立了其作为重大更新的地位,它结合了 C23 兼容性、安全性增强、性能提升以及对最新硬件和文本要求的更大适应性,使其成为西班牙、欧洲和其他地区 Linux 系统发展的关键组件,在这些地区,该库构成了运行时环境的基础。