GNU Cライブラリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/06/10 08:53 UTC 版)
開発元 | GNUプロジェクト |
---|---|
最新版 |
2.36
/ 2022年8月2日 |
リポジトリ | |
プラットフォーム | クロスプラットフォーム |
種別 | ランタイムライブラリ |
ライセンス | GNU Lesser General Public License |
公式サイト | https://www.gnu.org/software/libc/ |
GNU Lesser General Public Licenseでリリースされているフリーソフトウェアである。
歴史
1980年代、FSFのために作業していたRoland McGrathらを中心としてglibcが書かれた。
1988年2月、FSFはglibcがANSI Cの要求する機能をほぼ完全に実装したと発表した[3]。1992年にはANSI C-1989とPOSIX.1-1990に対応済みで、POSIX.2対応作業を進めていた[4]。
一時的フォーク
1990年代初期、Linuxカーネル開発者らがglibc開発をフォークさせた。"Linux libc" と呼ばれたこのフォークは数年間続き、バージョン2から5までリリースしている。
1996年、FSFはglibc 2.0をリリース。完全なPOSIX標準サポート、優れた国際化/多言語サポート、IPv6サポート、64ビットデータアクセス、マルチスレッドのサポート、将来のバージョンとの互換性サポートなどの改良がなされ、同時にコードは移植性に優れていた[5]。この時点でLinuxカーネル開発者らはフォークを辞め、再びFSFのglibcを使うようになった[6]。
Linux libcの最終バージョンの内部での名称 (soname) はlibc.so.5になっていた。この後をglibc 2.xに引き継ぐため、Linuxではsonameをlibc.so.6とした[7](AlphaおよびIA64アーキテクチャ向けはlibc.so.6.1になっている)。このsonameはlibc6と略記されることが多い(例えばDebianのパッケージ名)。
リチャード・ストールマンによれば、Linux libcで加えられた変更は著作権の状態が不明確であるため、glibcにマージしないとした(GNUプロジェクトは著者と著作権の記録を厳密に行うのが常である)[8]。
ハードウェアおよびカーネルのサポート状況
glibcは、様々なカーネルやハードウェアアーキテクチャ上で使われている。最も一般的なのは、x86ハードウェア上のLinuxカーネルを使ったシステムだが、公式にサポートしているハードウェアには、x86、モトローラ 680x0、DEC Alpha、PowerPC、ARM、ETRAX CRIS、s390、SPARCなどが含まれる。公式にサポートしているカーネルとしてはGNU HurdとLinuxカーネルがあるが、多数のパッチを当ててFreeBSDおよびNetBSDで動作するようにしたバージョンも存在する(Debian GNU/kFreeBSDとDebian GNU/NetBSD)。また、修正を加えた上でBeOSのlibrootとしても使われており、Haikuに受け継がれている。
機能
glibc は次のような標準で要求される機能を提供している。
- Single UNIX Specification
- POSIX (1c, 1d, 1j)
- ISO C99の要求する機能の一部
- BSDインタフェース
- System V Interface Definition (SVID)
- X/Open Portability Guide (XPG) issue 4.2
さらに、glibcにはGNUの開発に便利または必須と思われる拡張も提供している。
- ^ McGrath, Roland (2012年3月26日). “glibc steering committee dissolving”. Sourceware.org. 2012年6月13日閲覧。
- ^ Myers, Joseph S. (2012年3月26日). “GNU C Library development and maintainers”. Sourceware.org. 2012年6月13日閲覧。
- ^ “http://www.gnu.org/bulletins/bull4.html”. 2008年8月28日閲覧。 “Most libraries are done. Roland McGrath [...] has a nearly complete set of ANSI C library functions. We hope they will be ready some time this spring.”
- ^ “GNU's Bulletin, vol. 1 no. 12”. 2008年8月28日閲覧。 “It now contains all of the ANSI C-1989 and POSIX.1-1990 functions, and work is in progress on POSIX.2 and Unix functions (BSD and System V)”
- ^ Elliot Lee (2001年). “A Technical Comparison of glibc 2.x With Legacy System Libraries”. 2008年8月28日閲覧。
- ^ “Forking: it could even happen to you”. 2008年8月28日閲覧。 “the split between GNU LIBC and the Linux LIBC -- it went on for years while Linux stabilized, and then the forks re-merged into one project”
- ^ “Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"”. 2008年8月28日閲覧。
- ^ “Fear of Forking, footnote on Stallman's merge comments”. 2008年8月28日閲覧。
- ^ Qualys Security Advisory CVE-2015-0235[1]
- ^ Linuxに存在する脆弱性「GHOST」、システム管理者は落ち着いて対処を[2]
- ^ Linus Torvalds: Posting to the glibc mailing list, 9 January 2002 19:02:37
- ^ GNU/Linux Options - Using the GNU Compiler Collection (GCC)
- ^ “Re: [Familiar Which glibc for Familiar 0.8.4 ?]”. 2008年8月28日閲覧。 “Question: which version of the GLIBC was used to build the Familiar 0.8.4 ? Answer: 2.3.3”
- 1 GNU Cライブラリとは
- 2 GNU Cライブラリの概要
- 3 脆弱性
- 4 外部リンク
固有名詞の分類
- GNU Cライブラリのページへのリンク