「動的実行プログラム」の初期設定と実行の一部として、インタプリタは、アプリケーションのその依存関係への結合を完了させるために呼び出されます。Solaris では、このインタプリタを実行時リンカーと呼びます。
動的実行プログラムのリンク編集中に、特別な .interp セクションが、関連するプログラムのヘッダーとともに作成されます。このセクションには、プログラムのインタプリタを指定するパス名が組み込まれています。リンカーによって提供されたデフォルトの名前は、32 ビットの実行プログラムの場合は実行時リンカー /usr/lib/ld.so.1、64 ビット実行プログラムの場合は /usr/lib/64/ld.so.1 となります。
動的実行プログラムの実行プロセス中に (exec(2) を参照)、カーネルはファイル mmap(2) を参照) を対応付けして、プログラムのヘッダー情報 (「プログラムヘッダー」を参照) を使って、必要なインタプリタの名前を検出します。カーネルは、このインタプリタの対応付けと、インタプリタへの制御の転送を行い、同時に重要な情報を渡して、インタプリタがアプリケーションの結合を続行してからそのアプリケーションを実行できるようにします。
またアプリケーションの初期設定に加えて、実行時リンカーは、サービスを提供します。このサービスを使用すると、追加オブジェクトを対応付けして、シンボルをその中に結合することにより、アプリケーションはそのアドレススペースを拡張できます。
次に、この章で説明する、実行時リンカーの機能を簡単に紹介します。
これらの依存関係内に配置および対応付けを行い、動的情報セクションを分析して、追加の依存関係が必要かどうか判定する
すべての依存関係が配置され読み込まれると、実行時リンカーは必要な再配置を実行し、これらのオブジェクトをプロセスの実行に備えて結合する
依存関係によって作成された初期設定関数を呼び出す
アプリケーションへの制御を渡す
アプリケーションの実行中に、実行時リンカーは、遅延された関数の結合を実行するよう要求される