ダイナミックリンク
共有ライブラリ
を
リンク
して生成した
バイナリ
。サイズが小さい、
メモリ
を食わない等の利点があるので広く使われている。
何も考えずに
プログラム
を
コンパイル
するとこれになる
ABI
さえ合っていれば
ライブラリ
にバグがあっても
ライブラリ
を置き換えるだけで修正可能
ローダー
が
仮想メモリ
を利用して実体を共有するため(そのため
共有ライブラリ
と呼ばれる)同じ
ライブラリ
を使用する
ソフトウェア
が多数立ち上がっても
メモリ
を食わない(らしい)
ローダー
(基本的に
libc
の一部)がパス決め打ちで必要な上共有
ライブラリ
が全て参照可能な必要があるので取り回しは悪い
これをなんとかしようとしたものが
Docker
だったり
Docker
もシングルバイナリ放り込むのが主流なのがなんともいえない