GNU C 函式庫-該專案為 GNU 系統和 GNU/Linux 系統以及許多其他使用 Linux 核心的系統提供核心函式庫。這些函式庫提供關鍵的 API,包括 ISO C11、POSIX.1-2008、BSD、特定作業系統的 API 等等。這些 API 包括 open、read、write、malloc、printf、getaddrinfo、dlopen、pthread_create、crypt、login、exit 等基礎功能。
GNU C Library (glibc) 2.44 發布主要聚焦於 C23 標準支援、系統效能優化、新硬體架構指令加速以及安全性強化。以下為 glibc 2.44 的 10 個核心重點摘要:
- C23 標準介面支援擴充: 持續導入與完善 C23 (ISO/IEC 9899:2024) 標準函式與標頭檔,包括 <stdbit.h> 位元操作巨集、新型態轉置與相關數學輔助巨集,讓現代 C 語言程式開發更具標準一致性。
- 動態連結器 (ld.so) 效能與功能增強: 優化共用庫(Shared Libraries)的載入與重定位(Relocation)處理速度。改善 LD_AUDIT 稽核介面的穩定度與記憶體安全性,並優化 DT_RELR 壓縮重定位的處理解析效率。
- 核心字串與記憶體函式硬體加速: 針對多個架構(如 x86_64、AArch64、RISC-V)優化了最常用的記憶體與字串操作函式(如 memcpy、memset、memcmp、strcmp 等)。
- 記憶體分配器 (malloc) 與 Tunables 調校優化: 調整內部記憶體區塊管理邏輯,減少多執行緒併發配置時的鎖爭用(Lock Contention)。
- 安全性保護強化 (_FORTIFY_SOURCE=3): 進一步深化 _FORTIFY_SOURCE=3 的邊界檢查機制,搭配 GCC/Clang 編譯器能更精準地在編譯期與執行期偵測緩衝區溢位(Buffer Overflow)。
- Linux 核心新系統呼叫(Syscalls)封裝支援: 新增與完善 Linux kernel 最新 API 的 C 語言介面封裝(如 pidfd 相關控制操作、新型態檔案系統與 I/O 呼叫)。
- 數學函式庫 (libm) 與向量數學加速: 提升單精度與雙精度浮點數運算函式的精確度與邊界條件處理。擴充 Vector Math Library (libmvec),讓編譯器自動向量化(Auto-vectorization)時能直接呼叫更多高效能向量數學函式。
- Unicode 與 Locale 區域設定更新: 更新至最新的 Unicode 標準資料庫,確保寬字元(wchar_t)處理、字元分類(iswalpha 等)與排序(Collation)符合最新國際規範。
- POSIX 執行緒 (NPTL / pthread) 與同步機制優化: 改進互斥鎖(Mutex)、讀寫鎖與條件變數在高度競爭環境下的調度開銷。
- 清理過時 API 與資安漏洞修復: 廢棄或停用已過時、存在資安全風險的舊介面與 NSS(Name Service Switch)模組機制。
Picture Source
Gemini

留言
張貼留言