12.2. GLIBC
在 Red Hat Enterprise Linux 7.0 中,glibc 库(
libc, libm, libpthread, NSS 插件及其他)是根据 glibc 2.17 发行本开发的,其中包含大量针对 Red Hat Enterprise Linux 6 对等产品的改进和 bug 修复。
Red Hat Enterprise Linux 7.0 glibc 库主要特点如下:
- 实验性 ISO C11 支持。
- 新的 Linux 接口:
prlimit,prlimit64,fanotify_init,fanotify_mark,clock_adjtime,name_to_handle_at,open_by_handle_at,syncfs,setns,sendmmsg,process_vm_readv,process_vm_writev。 - 使用流 SIMD 扩展(SSE)、补充流 SIMD 扩展 3(SSSE3)、流 SIMD 扩展 4.2(SSE4.2)以及高级矢量扩展(AVX)为 AMD64 和 Intel 64 架构新优化的字符串功能。
- 为 IBM PowerPC 和 IBM POWER7 新优化的字符串功能。
- 使用为 IBM System z10 和 IBM zEnterprise 196 特别优化的程序为 IBM S/390 和 IBM System z 新优化的字符串功能。
- 新区域:os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH, yue_HK, lij_IT, mhr_RU, bho_IN, unm_US, es_CU, ta_LK, ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ, sat_IN, szl_PL, mag_IN。
- 新编码:CP770, CP771, CP772, CP773, CP774。
- 新接口:
scandirat,scandirat64。 - 已添加检查 FD_SET, FD_CLR, FD_ISSET, poll 和 ppoll 文件描述符版本的功能。
nscd守护进程现在支持 netgroup 数据库缓存。- 新功能
secure_getenv()可让您安全访问该环境,如果在 SUID 或者 SGID 进程中运行会返回 NULL。这个功能替换了内部功能__secure_getenv()。 - 现在如果传递违反那些值规范的盐字节(salt bytes),
crypt()功能会失效。在 Linux 中,crypt()功能将查看/proc/sys/crypto/fips_enabled文件决定是否启用了 FIPS。如果启用了该模式,则无法在使用摘要算法 5(MD5)或者数据加密标准(DES)算法的加密字符串中使用。 - 现在
clock_*功能套件(在 <time.h> 中说明)可直接在主 C 库中使用。之前必须将其与-lrt链接方可使用这些功能。这一变化的效果是使用此功能的单线程程序,比如clock_gettime()(它未与-lrt链接)将不再会在运行时暗自载入 pthreads 库,同时也不会再受到其他代码(比如 C++ 运行时库)所支持的与多线程关联的消耗的困扰。 - 新的标头 <sys/auxv.h> 和功能
getauxval()可让您在经过 Linux 内核时轻松访问 AT_* key-value 对。该标头还定义与 AT_HWCAP 密钥关联的 HWCAP_* 二进制数。 - 已为低层具体平台功能记录了已安装标头的新等级。PowerPC 添加第一个附带功能的事务以便提供基于时间的注册访问。