glibcとは何か
連載ナビ
この連載は「Linuxを使えるようになる」ではなく、「Linuxがどう動いているのか」を理解するための実践シリーズです。
今回は Linuxを理解する 〜 LFSで学ぶLinux内部構造 〜 の Part 3 / 第4回として、仕組みのつながりを意識しながら学びます。
- 前回: gccとは何か
- 次回: binutilsとは何か
glibcはC標準ライブラリの実装です。
多くのLinuxプログラムはglibcに依存して動きます。
この記事でわかること
- glibcの役割
- syscallとの関係
- 依存トラブルの見方
図解テキスト
app -> glibc API (printf, malloc, open)
-> syscall
-> kernel
この回で実行するコマンド
上から順番に実行すれば、この回の内容を体験できます。
まずはそのままコピペして実行し、次に1行ずつ意味を確認してください。
ldd --version | head -n 1
getconf GNU_LIBC_VERSION
ハンズオン手順
1. ターミナルを開いて、上のコマンドを1行ずつ実行する
2. 出力結果を見て、分かったことを1行メモする
3. エラーが出たら、そのエラーメッセージをそのまま残す
4. 各コマンドが何を確認するためのものかを説明してみる
チェックポイント
- コマンドが最後まで実行できた
- 出力の中で重要な値を1つ説明できる
- 次の回に進む前に、分からない単語を1つ調べた
今回理解できたこと
- glibcはユーザー空間とkernelの橋渡し
- 多くのバイナリがglibcに依存する
- 互換性問題の重要ポイント