PK
パーネルカニック研究所
今日もどこかでkernel panic。
root@pk-lab:~#

glibcとは何か

連載ナビ

この連載は「Linuxを使えるようになる」ではなく、「Linuxがどう動いているのか」を理解するための実践シリーズです。

今回は Linuxを理解する 〜 LFSで学ぶLinux内部構造 〜 の Part 3 / 第4回として、仕組みのつながりを意識しながら学びます。

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に依存する
  • 互換性問題の重要ポイント