libc - Linux の標準 C
ライブラリの概要
"libc"
という用語は、一般には「標準
C
ライブラリ」の短縮表現として
使われている。標準 C
ライブラリは、全ての
C 言語プログラム
(や時には他
の言語のプログラム)
が使用することができる標準関数のライブラリである。
いくつかの歴史的な理由
(下記参照) から、標準 C
ライブラリを意味する
"libc" という用語は Linux
ではいくらか曖昧さのある用語となっている。
Linux
で群を抜いて広く使われている
C ライブラリは GNU C
ライブラリ
http://www.gnu.org/software/libc/
であり、しばしば
glibc
と
呼ばれる。全ての主要な
Linux
ディストリビューションで現在使われている
C ライブラリである。
この C
ライブラリの詳細が
man-pages
プロジェクトの一連のページ
(主にマニュアルのセクション
3) に記載されている。
glibc のドキュメントは glibc
のマニュアルにもあり、
info libc
コマンドで参照できる。
glibc リリース 1.0 は 1992 年 9
月に作成された
(それ以前に 0.x リリース
があった)。glibc
の次のメジャーリリースは
2.0 であり、1997
年の初頭にリリースされた。
パス名
/lib/libc.so.6
(もしくは同様のパス名)
は、通常は glibc
ライブラリがある場所を指すシンボリックリンクである。
このパス名を実行すると、glibc
はシステムにインストールされた
バージョンの glibc
に関する様々な情報を表示する。
In the early to mid 1990s, there was for a while
Linux libc, a fork of
glibc 1.x created by Linux developers who felt that glibc development at the
time was not sufficing for the needs of Linux. Often, this library was
referred to (ambiguously) as just "libc". Linux libc released major
versions 2, 3, 4, and 5, as well as many minor versions of those releases.
Linux libc4 was the last version to use the a.out binary format, and the first
version to provide (primitive) shared library support. Linux libc 5 was the
first version to support the ELF binary format; this version used the shared
library soname
libc.so.5. For a while, Linux libc was the standard C
library in many Linux distributions.
However, notwithstanding the original motivations of the Linux libc effort, by
the time glibc 2.0 was released (in 1997), it was clearly superior to Linux
libc, and all major Linux distributions that had been using Linux libc soon
switched back to glibc. To avoid any confusion with Linux libc versions, glibc
2.0 and later used the shared library soname
libc.so.6.
Since the switch from Linux libc to glibc 2.0 occurred long ago,
man-pages no longer takes care to document Linux libc details.
Nevertheless, the history is visible in vestiges of information about Linux
libc that remain in a few manual pages, in particular, references to
libc4 and
libc5.
あまり広くは使われていないが、Linux
用の他の C
ライブラリがいくつかある。
これらのライブラリは、一般的には、機能とメモリー使用量の両方の面で
glibc
より小さく、通常は小さなバイナリを作成することを目的としており、
おそらく組み込み Linux
システム用の開発に焦点を当てたものである。
このようなライブラリとしては、
uClibc
dietlibc
や
musl
libc がある。
これらのライブラリの詳細も、知られていれば、
man-pages
プロジェクトでカバーされる。
syscalls(2),
getauxval(3),
proc(5),
feature_test_macros(7),
man-pages(7),
standards(7),
vdso(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。