HOMEサンプル問題・例題解説101試験の例題と解説102.3 共有ライブラリを管理する

101試験の例題と解説

102.3共有ライブラリを管理する

今回は101試験の試験範囲から、「102.3 共有ライブラリを管理する」についての例題を解いてみます。

■例題
lddコマンドについての説明として適切なものを選びなさい。

  1. 必要な共有ライブラリをロードする
  2. 必要な共有ライブラリを静的リンクする
  3. 必要な共有ライブラリが存在するか確認する
  4. 必要な共有ライブラリを表示する
  5. 必要な共有ライブラリの依存関係を解決する

※この例題は実際のLinuC試験とは異なります。

解答と解説

答えは 4. 必要な共有ライブラリを表示する です。

共有ライブラリには、ビルド時にあらかじめ実行形式のファイルに組み込んでしまう「静的リンク」と、実行時に読み込む「動的リンク」の2種類があります。

静的リンクは、実行ファイルをコピーするだけでよいので、共有ライブラリの有無を確認する必要がありませんが、共有ライブラリの分、ファイルが大きくなってしまうデメリットがあります。

動的リンクは、実行時に共有ライブラリを読み込むので、ファイルサイズは小さくて済みますし、メモリ上にロードされた共有ライブラリをほかのプログラムと共有できるのでメモリ使用量も抑えることができますが、反面、必要となる共有ライブラリがシステムに用意されていないと実行することができません。

lddコマンドは、動的リンクに指定された実行ファイルから、必要となる共有ライブラリの情報を調べて表示する役割を持っています。もし実行ファイルがうまく実行ができないような場合には、該当する実行ファイルをlddコマンドにかけて共有ライブラリの情報を確認し、該当するライブラリがインストールされているかどうか確認する必要があります。

○lddコマンドの実行例

$ ldd /bin/ls
    linux-gate.so.1 =>  (0xbfffe000)
    librt.so.1 => /lib/tls/librt.so.1 (0x48080000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7f5d000)
    libselinux.so.1 => /lib/libselinux.so.1 (0x47d3e000)
    libc.so.6 => /lib/tls/libc.so.6 (0x47b70000)
    libpthread.so.0 => /lib/tls/libpthread.so.0 (0x47d11000)
    /lib/ld-linux.so.2 (0x47b56000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7f59000)

lsコマンドは、他に8つの共有ライブラリを必要としていることが分かります。

  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ