この章では、アセンブラとリンカーで生成されるオブジェクトファイルの実行可能リンク形式 (ELF) について説明します。オブジェクトファイルには、主に次の 3 つの種類が存在します。
再配置可能ファイルは、他のオブジェクトファイルとリンクして実行可能ファイル 、共有オブジェクトファイル、または別の再配置可能ファイルを作成するのに適したコードとデータを保持する
実行可能ファイルは、実行可能なプログラムを保持する。実行可能ファイルは、exec(2) によるプログラムのプロセスイメージの作成方法を指定する
共有オブジェクトファイルは、次の 2 つのリンクに適したコードとデータを保持する。(1) リンカーは、共有オブジェクトファイルを他の再配置可能ファイルや共有オブジェクトファイルと共に処理して、別のオブジェクトファイルを作ることがでる。(2) 実行時リンカーは、共有オブジェクトファイルを動的実行可能ファイルや他の共有オブジェクトファイルと組み合わせ、プロセスイメージを作成する
「ファイル形式」では、オブジェクトファイルの形式、およびこの形式がプログラム作成にどのように関係しているかに焦点を当てています。「動的リンク」では、この形式がプログラムの読み込みにどのように関係しているかに焦点を当てています。
オブジェクトファイルは、ELF アクセスライブラリ libelf に含まれる関数で処理できます。libelf の説明については、elf(3ELF) を参照してください。libelf を使用するサンプルソースコードは、SUNWosdem パッケージに含まれており、/usr/demo/ELF ディレクトリの下に置かれています。