GNU Cライブラリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
GNU C ライブラリ
Heckert GNU white.svg
開発元 GNUプロジェクト
最新版 2.20 / 2014年09月7日(41日前) (2014-09-07
プラットフォーム クロスプラットフォーム
種別 ランタイムライブラリ
ライセンス GNU Lesser General Public License
公式サイト http://www.gnu.org/software/libc
テンプレートを表示
GNU C Library

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モトローラ 680x0DEC AlphaPowerPCARMETRAX CRISs390SPARC などが含まれる。公式にサポートしているカーネルとしてはGNU HurdとLinuxカーネルがあるが、多数のパッチを当ててFreeBSDおよびNetBSDで動作するようにしたバージョンも存在する(Debian GNU/kFreeBSD と Debian GNU/NetBSD)。また、修正を加えた上でBeOSlibroot としても使われており、Haikuに受け継がれている。

機能[編集]

glibc は次のような標準で要求される機能を提供している。

さらに、glibc にはGNUの開発に便利または必須と思われる拡張も提供している。

小型機器などでの利用[編集]

glibc はかつて、例えばリーナス・トーバルズ[7]組み込みLinuxのプログラマらから、他のライブラリよりも重くて遅いと批判されたことがある。そのため、メモリ使用量の少ない標準Cライブラリがいくつか開発されてきた(BionicdietlibcEGLIBCKlibcNewlibuClibc)。gcc では、ターゲットが GNU/Linux の場合、-mglibc, -muclibc, -mbionic で切り替えられる[8]

しかし、標準への適合性、完全性、各種サポートが存在する点などを考慮して glibc を小型機器に採用する例も多い。例えば、OpenMokoiPAQ向けの Familiar LinuxGPE使用時)[9]がある。

関連項目[編集]

脚注[編集]

  1. ^ 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.”
  2. ^ 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)”
  3. ^ Elliot Lee (2001年). “A Technical Comparison of glibc 2.x With Legacy System Libraries”. 2008年8月28日閲覧。
  4. ^ 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”
  5. ^ Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"”. 2008年8月28日閲覧。
  6. ^ Fear of Forking, footnote on Stallman's merge comments”. 2008年8月28日閲覧。
  7. ^ Linus Torvalds: Posting to the glibc mailing list, 9 January 2002 19:02:37
  8. ^ GNU/Linux Options - Using the GNU Compiler Collection (GCC)
  9. ^ 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”

外部リンク[編集]