共有ライブラリとは

きょうゆうらいぶらり

動的リンクで実行時に読み込まれるライブラリ。Linuxでは.so、Windowsでは.dll。位置独立コードで作られ、コードのページを多くのプロセスで共有できる。

この用語の分野: リンカ・ローダと実行形式

解説の中の「共有ライブラリ」

「共有ライブラリ」が出てくる問題(15問)

  1. 動的リンク(共有ライブラリ)の利点として正しいものはどれか。
  2. 共有ライブラリで使われるGOT(グローバルオフセットテーブル)の役割として正しいものはどれか。
  3. 100個のプロセスが同じ共有ライブラリを使っているとき、物理メモリの使い方として正しいものはどれか。
  4. Linuxの共有ライブラリで、libfoo.so.1の「.1」のようなsonameのバージョン番号を上げるのは、一般にどのようなときか。
  5. 共有ライブラリを作るとき、外から使う関数だけを公開し、内部の関数はシンボルの可視性(visibility)を「hidden」にする利点として正しいものはどれか。
  6. 分岐やジャンプにPC相対アドレッシングを使うことの利点として正しいものはどれか。
  7. C言語の関数ポインタを使った呼び出し「(*fp)(x)」は、RISC-Vでは一般にどの命令で行われるか。
  8. 実行ファイルの.textセクションに入っているものはどれか。
  9. Linuxなどの一般的なプロセスのメモリ配置を、番地の小さい方から並べたものとして正しいものはどれか。
  10. 動的リンクを使ったプログラムを別のコンピュータにコピーして実行したら、起動しなかった。最も考えられる原因はどれか。
  11. 位置独立コード(PIC)の説明として正しいものはどれか。
  12. Linuxで動的リンクのプログラムを起動するときに働く動的リンカ(ld.soなど)の役割として正しいものはどれか。
  13. ASLR(アドレス空間配置のランダム化)の目的として正しいものはどれか。
  14. Linuxのdlopen関数(WindowsのLoadLibraryに相当)の使い道として最も適切なものはどれか。
  15. Linuxでlddコマンドを実行ファイルに使うと分かることはどれか。

関連する用語

動的リンク 動的リンカ GOT(グローバルオフセットテーブル) 位置独立コード ヒープ ASLR コピーオンライト PLT(プロシージャリンケージテーブル) ABI(アプリケーションバイナリインターフェース) PC相対アドレッシング

用語集の一覧へ