ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
リンカーとライブラリ Oracle Solaris 11 Information Library (日本語) |
この章では、アセンブラとリンカーで生成されるオブジェクトファイルの実行可能リンク形式 (ELF) について説明します。オブジェクトファイルには、主に次の 3 つの種類があります。
「再配置可能オブジェクト」ファイルは、コードとデータが入っているセクションを保持します。このファイルは、ほかの再配置可能オブジェクトファイルとリンクして、動的実行可能ファイル、共有オブジェクトファイル、または別の再配置可能オブジェクトを作成するのに適しています。
「動的実行可能」ファイルは、実行可能なプログラムを保持します。実行可能ファイルは、exec(2) によるプログラムのプロセスイメージの作成方法を指定します。このファイルは、一般的に実行時に共有オブジェクトファイルと結合され、プロセスイメージを作成します。
「共有オブジェクト」ファイルは、追加リンクに適したコードとデータを保持します。リンカーは、共有オブジェクトファイルをほかの再配置可能オブジェクトファイルや共有オブジェクトファイルとともに処理して、別のオブジェクトファイルを作ることができます。実行時リンカーは、共有オブジェクトファイルを動的実行可能ファイルやほかの共有オブジェクトファイルと組み合わせ、プロセスイメージを作成します。
プログラムは ELF アクセスライブラリ libelf によって提供された関数を使用してオブジェクトファイルを操作できます。libelf の説明については、elf(3ELF) のマニュアルページを参照してください。libelf を使用するサンプルソースコードは、pkg:/solaris/source/demo/system パッケージに含まれており、/usr/demo/ELF ディレクトリの下に置かれています。