GNUC函式庫
GNU C 庫,閣名glibc,是 GNU 計畫所實現的 C 標準庫。就算講其名中帶有「C 庫」,毋過伊這馬嘛直接支援 C + +(佮間接支援其他的程式語言)。 伊是自由軟體基金會(FSF)佇二十世紀九空年代初為𪜶的 GNU 作業系統設計的。伊為 GNU 系統,GNU / Linux 系統佮一寡其他的類 Unix 系統提供了系統核心庫。遮的庫提供了關鍵的 API,包括講 ISO C 十一、POSIX . 一孵二千空八佮 BSD 所規定的 API 佮一寡底層 API,包括講 open、read、write、malloc、printf、getaddrinfo、dlopen、pthread \ _ create、crypt、login、exit 等。
glibc 佇咧 GNU 闊通用公共許可證下發布。
歷史
glibc 專案最初主要由 Roland McGrath 編寫,伊佇二十世紀八空年代為自由軟體基金會(FSF)做工課。
一九八八年,FSF 稱 glibc 已經基本實現 ANSI C 所規定的內容;到一九九二年,伊已經實現矣 ANSI C 被一千九百八十九佮 POSIX . 一孵一千九百九十所規定的功能,並當咧進行關於實現 POSIX . 二的工課。
一九九五年九月,Ulrich Drepper 為 glibc 案件做出伊的第一个貢獻,並且佇二十世紀九零年代漸漸成做 glibc 的核心貢獻者佮維護者。Drepper 擔任維護員職外冬,一直到二空一二年累計占專案總貢獻的百分之六十三。
Linux libc
佇二十世紀九空年代初,Linux 核心的開發團隊必叉仔 Glibc,號做「Linux libc」單獨維護。
當 FSF 佇一九九七年一月發佈 glibc 二孵空的時陣,因為 glibc 二嬸空閣較符合 POSIX 標準,核心開發者停止矣 Linux libc 的開發。glibc 二鋪零猶閣有閣較好的國際化佮翻譯、IPv 六功能、六十四位元資料的存取、加執行緒支援、未來版本的相容性,而且這代碼閣較會當徙栽。
最後版本的 Linux libc 使用的庫檔名是 ` libc . so . 五 `。所以,Linux 上的 glibc 二 . x 使用的庫檔案名號做 ` libc . so . 六 `。(Alpha 和 IA 六十四平台的 glibc 使用 libc . so . 六陵一代替). 這寡以 . so 為字尾的檔案通常予人縮寫做 libc 六(譬如講佇 Debian 的軟體套件名中間), 遵循一般庫的慣例。
根據 Richard Stallman 的講法,因為開發者的身份無蓋清楚,FSF 無法度將 Linux libc 做出的改動合併到 glibc 中。GNU 專案對著作權相關的要求十分嚴格。
成立委員會
自二空空一年起,庫的開發由一个監管委員會負責,猶毋過保留 Drepper 主要貢獻者佮維護者的身份。委員會的設立被 Drepper 公然講做是 Richard Stallman 的陰謀計,因為公共爭議所包圍。
徙甲 git
glibc 較早予人儉佇咧 CVS 倉庫當中,二空空九年予搬徙去 Sourceware 上的 Git 倉庫。.
委員會解散
二空一二年三月,委員會投票決定解散,並且撤銷 Drepper 的職務,轉踅對 Ryan Arnold、Maxim Kuvyrkov、Joseph Myers、Carlos O'Donell 和 Alexandre Oliva 負責 glibc 維護工課。猶毋過,𪜶對 glibc 無額外的決策權。
佇委員會解散了後,Debian 佮其他使用 glibc 替代品的專案閣徙倒轉來 glibc。對二空一四年開始,EGLIBC 無閣去開發,因為伊「這馬的目標是佇咧 glibc 上直接解決問題」。
二空一七年七月,佇咧 glibc 創立三空年的時陣,Roland McGrath 宣佈講無直接參與專案,並且宣布伊家己名譽維護者。「過去這幾個月,甚至過去幾冬,已經證明恁無閣需要我矣」。
版本歷史
對大多數系統來講,glibc 會當通過解破 lib 檔案(比如講,/ lib / libc . so . 六)得著。
功能
glibc 實現單一 UNIX 規範、POSIX(一 c、一 d 和一 j)所要求的功能,並實現矣 ISO C 十一、ISO C 九十九、Berkeley Unix(BSD)介面、System V 介面定義(SVID)和 X / Open Portability Guide(XPG)四配二所要求的部份功能,並且提供了符合 XSI(X / Open System Interface)的系統所共有的擴充佮所有 X / Open UNIX 擴充。
此外,glibc 閣提供矣咧開發喔 GNU 時予人認為有用抑是必要的擴充。
受支援的硬體佮核心
glibc 會當執行佇濟濟無仝的核心佮無仝的硬體架構頂面。官方支援的硬體架構包括 : 三十二位元 ARM,AArch 六十四,C-SKY,DEC Alpha,IA 被六十四,Motorola m 六十八 k,MicroBlaze,MIPS,Nios II,PA-RISC,PowerPC,RISC-V,s 三百九十,SPARC,和 x 八十六(舊版本支援 TILE)。 Glibc 官方支援 Hurd 和 Linux 核心。此外,猶閣有大量拍過修補程式的版本會當執行佇 FreeBSD 和 NetBSD 上(所以 glibc 嘛相應地支援 Debian GNU / kFreeBSD 和 Debian GNU / NetBSD,因為遮的核心佮 FreeBSD 和 NetBSD 的牽連足大), 以及 OpenSolaris 的分支版本。Glibc 的一个修改過的版本嘛被用佇咧 BeOS 和 Haiku 中。
佇小型裝置內底的使用
Glibc 佇過去因為泛浡而且速度比其他 C 庫較慢,但是予一寡開發者的批評,如 Linus Torvalds 佮一寡嵌入式開發程式設計師。出於這个原因,人去建立幾个用佇咧2018入式的平台替代 Glibc 的 C 標準庫。遮的庫較 Glibc 閣較細。毋過,誠濟騙入式的開發專案猶是使用 Glibc,因為伊閣較符合標準閣較相容性閣較好。比如講 Openmoko 和由 iPaq 使用的 Familiar Linux(咧使用 GPE 顯示軟體的時陣)。
相關條目
- Gnulib
- Linux 核心介面
參考資料
外部連結
- 官方網站