リンカ・ローダと実行形式
動的リンク(共有ライブラリ)の利点として正しいものはどれか。
- A実行環境にライブラリがなくても、必ず動く
- B複数のプログラムが1つのライブラリをメモリ上で共有でき、ライブラリを更新すれば作り直さずに修正が反映される
- C起動時の処理がまったく不要になり、静的リンクより必ず速く起動する
答えと解説を見る
正解:B. 複数のプログラムが1つのライブラリをメモリ上で共有でき、ライブラリを更新すれば作り直さずに修正が反映される
動的リンクでは、実行ファイルには「どの共有ライブラリのどの関数を使うか」だけを記録し、実行時に動的リンカがライブラリを読み込んで結びつけます。共有ライブラリのコードは書き換えないので、物理メモリ上の1つのコピーを多くのプロセスで共有できます。不具合や脆弱性の修正もライブラリを差し替えるだけで済みます。ただし起動時に結合の手間がかかります。
- A. ライブラリが見つからないと起動できません。
- B. 正しい。メモリとディスクの節約にもなります。
- C. 起動時に結合の処理が必要です。