Glibc 2.36 带有适用于 Linux 的新功能、改进等

经过六个月的开发,glibc 2.36 新版本正式发布,完全符合 ISO C11 和 POSIX.1-2017 标准的要求,新版本包含来自 59 位开发者的更正。

对于不熟悉 Glibc 的人来说,应该知道它是什么 一个 GNU C 库, 俗称 glibc 是标准的 GNU C 运行时库。 在使用它的系统上,这个 C 库 提供和定义系统调用和其他基本功能,几乎所有程序都使用它。 

Glibc 2.36 的主要新特性

在展示的这个新版本中,强调了 添加了对新的相对重定位地址格式的支持 DT_RELR,它允许您在 PIE(位置独立可执行文件)模式下减少共享对象和链接的可执行文件中的相对重定位的大小。 在 ELF 文件中使用 DT_RELR 字段需要支持链接器中的“-z pack-relative-relocs”选项,该选项在 binutils 2.38 中引入。

新版本中另一个引人注目的变化是 对于 Linux 的功能 pidfd_open、pidfd_getfd 和 pidfd_send_signal 实施以提供对 pidfd 功能的访问 这有助于处理PID重用情况,以更准确地识别访问被监控文件的进程(pidfd与特定进程关联并且不会改变,而PID可以在进程结束后附加到另一个进程)。与此关联的当前进程PID)。

除此之外, 在 Linux 中也有 process_madvise() 允许一个进程代表另一个进程执行 madvise() 系统调用,使用pidfd识别目标进程。 通过madvise(),可以告知内核使用内存的特性,以优化进程的内存管理,例如,根据传递的信息,内核可以开始释放额外的空闲内存。

还需要注意的是,该功能已添加 process_mrelease(),它允许您为结束执行的进程加速内存释放。 一般情况下,资源释放和进程终止都不是瞬时的,可能会因为各种原因而延迟,干扰了oomd等用户空间预警系统(由systemd提供)。 通过调用 process_mrelease,这些系统可以更可预测地开始对被强制终止的进程进行内存检索。

另一方面,注意到它已被添加 支持“no-aaaa”选项 到综合实施 DNS 解析,允许您禁用发送 AAAA 记录的 DNS 请求 (通过主机名确定 IPv6 地址),即使在运行诸如 getaddrinfo() 之类的 NSS 函数时,也可以简化故障排除。 此选项不会影响 /etc/hosts 中定义的 IPv6 地址绑定的处理以及对带有 AI_PASSIVE 标志的 getaddrinfo() 的调用。

对于 Linux,添加了功能 fsopen、fsmount、move_mount、fsconfig、fspick、open_tree 和 mount_setattr提供对新内核 API 的访问,以控制文件系统的挂载方式 基于挂载命名空间。 提议的函数允许单独处理不同的挂载步骤(处理超级块、获取有关文件系统的信息、挂载、附加到挂载点),这些先前使用通用 mount() 函数执行。

添加 功能 arc4random、arc4random_buf 和 arc4random_uniform 在系统调用上提供绑定 随机获取 和界面 /开发/ urandom,返回高质量的伪随机数。

在 Linux 上运行时,提供了对体系结构的支持。 从指令集中 龙拱 用于龙芯 3 5000 处理器,并实现了类似于 MIPS 和 RISC-V 的新 RISC ISA。 在其当前形式中,只有兼容性可用 带有 64 位变体 来自龙拱 (LA64)。 它至少需要 binutils 2.38、GCC 12 和 Linux 内核 5.19 才能运行。

在其他突出的变化中:

  • 预链接机制以及相关的 LD_TRACE_PRELINKING 和 LD_USE_LOAD_BIAS 环境变量和链接器功能已被弃用,并将在未来的版本中删除。
  • 删除了检查 Linux 内核版本和处理 LD_ASSUME_KERNEL 环境变量的代码。 编译 Glibc 时支持的最低内核版本由 ELF 字段 NT_GNU_ABI_TAG 确定。
  • LD_LIBRARY_VERSION 环境变量已在 Linux 平台上弃用。

最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。