08. build system: ソースからバイナリが生まれるまで

08. build system: ソースからバイナリが生まれるまで

LFSの核心は、Linuxを部品ごとにビルドすることです。

この体験で「aptで入るものの正体」が見えるようになります。

toolchainの基本

最小限、次の道具が必要です。

  • compiler: gcc
  • linker: ld
  • build tool: make
  • C library: glibc
  • binary utility: binutils

図解テキスト


main.c
  -> gcc -c main.c (compile)
  -> main.o
  -> ld / gcc (link)
  -> a.out (ELF binary)
  -> 実行時に shared library を読み込み

よくあるビルド手順


./configure --prefix=/usr
make
make test
sudo make install

LFSではこの手順を何十回も繰り返し、環境を段階的に完成させます。

なぜ必要なのか

  • 依存関係が壊れたときの復旧力が上がる
  • 本番で起きるABI不整合の理解が深まる
  • ソフトウェア供給チェーンを実感できる

手を動かす


cat > hello.c <<'EOF'
#include <stdio.h>
int main(void) { puts("hello"); return 0; }
EOF

gcc -o hello hello.c
file hello
ldd hello
./hello

つまり何なのか

build systemは、開発者向けの作業手順ではありません。

Linuxそのものを形作る製造ラインです。

今回理解できたこと

  • ソースはコンパイルとリンクを経て実行可能になる
  • toolchainはLinux基盤を構成する中核要素
  • LFSではビルド工程そのものが学習対象になる

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です