GNU Cライブラリ
出典: フリー百科事典『





(







)』
| GNU C ライブラリ | |
|---|---|
| 開発元 | GNUプロジェクト |
| 最新版 | 2.10.1 (2009年5月17日) |
| プラットフォーム | クロスプラットフォーム |
| 種別 | ランタイムライブラリ |
| ライセンス | GNU Lesser General Public License |
| 公式サイト | http://www.gnu.org/software/libc |
GNU Cライブラリ(glibc)は、GNUプロジェクトによる標準Cライブラリ実装。元々はGNUオペレーティングシステム向けにフリーソフトウェア財団 (FSF) が作成したもので、2001年からは主要なコントリビュータでメンテナーでもあるレッドハットの Ulrich Dreeper らを含む委員会が開発を監督している。
GNU Lesser General Public License でリリースされているフリーソフトウェアである。
目次 |
[編集] 歴史
1980年代、FSF のために作業していた Roland McGrath らを中心として glibc が書かれた。
1988年2月、FSFは glibc が ANSI C の要求する機能をほぼ完全に実装したと発表した[1]。1992年には ANSI C-1989 と POSIX.1-1990 に対応済みで、POSIX.2 対応作業を進めていた[2]。
[編集] 一時的フォーク
1990年代初期、Linuxカーネル開発者らがglibc開発をフォークさせた。"Linux libc" と呼ばれたこのフォークは数年間続き、バージョン2から5までリリースしている。
1996年、FSFは glibc 2.0 をリリース。完全なPOSIX標準サポート、優れた国際化/多言語サポート、IPv6サポート、64ビットデータアクセス、マルチスレッドのサポート、将来のバージョンとの互換性サポートなどの改良がなされ、同時にコードは移植性に優れていた[3]。この時点でLinuxカーネル開発者らはフォークを辞め、再びFSFの glibc を使うようになった[4]。
Linux libc の最終バージョンの内部での名称(soname)は libc.so.5 になっていた。この後を glibc 2.x に引き継ぐため、Linux では soname を libc.so.6 とした[5](AlphaおよびIA64アーキテクチャ向けは libc.so.6.1 になっている)。この soname は libc6 と略記されることが多い(例えば Debian のパッケージ名)。
リチャード・ストールマンによれば、Linux libc で加えられた変更は著作権の状態が不明確であるため、glibc にマージしないとした(GNUプロジェクトは著者と著作権の記録を厳密に行うのが常である)[6]。
[編集] ハードウェアおよびカーネルのサポート状況
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の開発に便利または必須と思われる拡張も提供している。
[編集] 小型機器などでの利用
glibc はかつて、例えばリーナス・トーバルズ[7]や組み込みLinuxのプログラマらから、他のライブラリよりも重くて遅いと批判されたことがある。そのため、メモリ使用量の少ない標準Cライブラリがいくつか開発されてきた(dietlibc、uClibc、Newlib、Klibc、EGLIBC[8])。
しかし、標準への適合性、完全性、各種サポートが存在する点などを考慮して glibc を小型機器に採用する例も多い。例えば、OpenMokoやiPAQ向けの Familiar Linux(GPE使用時)[9]がある。
[編集] 関連項目
[編集] 脚注
- ^ "http://www.gnu.org/bulletins/bull4.html". 2008-08-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-08-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-08-28 閲覧。
- ^ "Forking: it could even happen to you". 2008-08-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-08-28 閲覧。
- ^ "Fear of Forking, footnote on Stallman's merge comments". 2008-08-28 閲覧。
- ^ Linus Torvalds: Posting to the glibc mailing list, 9 January 2002 19:02:37
- ^ EGLIBC
- ^ "Re: [Familiar Which glibc for Familiar 0.8.4 ?]". 2008-08-28 閲覧。 “Question: which version of the GLIBC was used to build the Familiar 0.8.4 ? Answer: 2.3.3”
[編集] 外部リンク
| ||||||||||||||||
| ||||||||
[記事全文]






® は 












