X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman8%2Fld.so.8;h=c164d830a9e82c0de7ecd3c42bfc8d9a9e5d099b;hb=83f9e5d087c3464d5131604d3c9893479e6228eb;hp=c239311c059b3de54ebdecb65261a4748c1f5d3a;hpb=ed9cc1f682cc3790ec29543f9b98d6c367902a7a;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man8/ld.so.8 b/release/man8/ld.so.8 index c239311c..c164d830 100644 --- a/release/man8/ld.so.8 +++ b/release/man8/ld.so.8 @@ -22,11 +22,11 @@ .\" .TH LD.SO 8 2014\-12\-31 GNU "Linux Programmer's Manual" .SH 名前 -ld.so, ld\-linux.so* \- 動的なリンカ/ローダ +ld.so, ld\-linux.so* \- 動的なリンカー/ローダー .SH 書式 -動的リンカは、動的にリンクされたプログラムやライブラリの実行によって 間接的に実行することができる (ELF -の場合、動的リンカにコマンドラインオプションを渡すことはできず、 プログラムの \fB.interp\fP セクションに入っている動的リンカが実行される)。 -また以下のように直接実行することもできる +動的リンカーは、動的にリンクされたプログラムやライブラリの実行によって 間接的に実行することができる (ELF +の場合、動的リンカーにコマンドラインオプションを渡すことはできず、 プログラムの \fB.interp\fP +セクションに入っている動的リンカーが実行される)。 また以下のように直接実行することもできる .P \fI/lib/ld\-linux.so.*\fP [OPTIONS] [PROGRAM [ARGUMENTS]] .SH 説明 @@ -41,7 +41,7 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1) に対して \f バイナリを扱う。 このフォーマットは多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作し、 同じサポートファイルとプログラム \fBldd\fP(1), \fBldconfig\fP(8), \fI/etc/ld.so.conf\fP を使用する。 .LP -ライブラリの依存関係を解決する際、動的リンカは、最初に、依存関係の各文字列がスラッシュを含んでいるかをチェックする +ライブラリの依存関係を解決する際、動的リンカーは、最初に、依存関係の各文字列がスラッシュを含んでいるかをチェックする (この状況になるのは、リンク時にスラッシュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場合、その依存関係の文字列はパス名 (相対パス、絶対パスのどちらも可) として解釈され、そのパス名を使ってそのライブラリはロードされる。 .LP @@ -56,11 +56,11 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1) に対して \f (ELF のみ) バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 DT_RUNPATH で指定されたディレクトリを使用する。 .IP o キャッシュファイル \fI/etc/ld.so.cache\fP を探す。このファイルは、 (ld.so.conf で追加指定されたものも含めた) -ライブラリ検索パスから見つかったライブラリファイルの情報を集めたものである。ただし、バイナリがリンカオプション \fB\-z nodeflib\fP +ライブラリ検索パスから見つかったライブラリファイルの情報を集めたものである。ただし、バイナリがリンカーオプション \fB\-z nodeflib\fP でリンクされている場合は、デフォルトのライブラリパスにある ライブラリはスキップされる。ハードウェア機能ディレクトリ (下記参照) にインストールされたライブラリは、他のライブラリよりも優先される。 .IP o -デフォルトパスである \fI/lib\fP、 次いで \fI/usr/lib\fP を用いる。 バイナリがリンカオプション \fB\-z nodeflib\fP +デフォルトパスである \fI/lib\fP、 次いで \fI/usr/lib\fP を用いる。 バイナリがリンカーオプション \fB\-z nodeflib\fP でリンクされている場合、このステップはスキップされる。 .SS "rpath トークンの展開" .PP @@ -77,7 +77,7 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1) に対して \f 特別なディレクトリではなく任意のディレクトリにインストールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケーションを作成することができる。 .TP \fI$LIB\fP (\fI${LIB}\fP も同じ) -アーキテクチャに応じて \fIlib\fP か \fIlib64\fP に展開される (例えば、 x86\-64 では \fIlib64\fP に、 x86\-32 では +アーキテクチャーに応じて \fIlib\fP か \fIlib64\fP に展開される (例えば、 x86\-64 では \fIlib64\fP に、 x86\-32 では \fIlib\fP に展開される)。 .TP \fI$PLATFORM\fP (\fI${PLATFORM}\fP も同じ) @@ -90,7 +90,7 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1) に対して \f .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN; .\" Don't do this!! ホストシステムのプロセッサ種別に対応する文字列に展開される (例えば "x86_64")。 -いくつかのアーキテクチャでは、 Linux カーネルから動的リンカにプラットフォームを表す文字列が提供されない。 この文字列の値は補助ベクトルの +いくつかのアーキテクチャーでは、 Linux カーネルから動的リンカーにプラットフォームを表す文字列が提供されない。 この文字列の値は補助ベクトルの \fBAT_PLATFORM\fP 値から取得される (\fBgetauxval\fP(3) 参照)。 .SH オプション .TP @@ -98,7 +98,7 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1) に対して \f 全ての依存関係とその解決法をリストする。 .TP \fB\-\-verify\fP -プログラムが動的にリンクされているかと、 動的リンカがそのプログラムを扱えるかを検証する。 +プログラムが動的にリンクされているかと、 動的リンカーがそのプログラムを扱えるかを検証する。 .TP \fB\-\-inhibit\-cache\fP /etc/ld.so.cache を使用しない。 @@ -118,7 +118,7 @@ LIST で指定された名前のオブジェクトを監査者として使用す の命令を使ってコンパイルされている。そのようなライブラリは、 \fI/usr/lib/sse2/\fP のような、必要なハードウェア機能 (hardware capability) を規 定する名前のディレクトリにインストールすべきである。 -動的リンカは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、 +動的リンカーは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、 指定されたライブラリに最も適したバージョンを選択する。 ハードウェア機能ディレクトリはつなげることができ、 複数の CPU 機能を組み合わることができる。 @@ -150,13 +150,13 @@ mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm 重要な環境変数には以下のものがある。 .TP \fBLD_ASSUME_KERNEL\fP -(glibc 2.2.3 以降) 各共有ライブラリは動的リンカに必要なカーネル ABI の最小バージョンを通知することができる (必要なバージョンは +(glibc 2.2.3 以降) 各共有ライブラリは動的リンカーに必要なカーネル ABI の最小バージョンを通知することができる (必要なバージョンは ELF の note section に格納され、 \fIreadelf\ \-n\fP で \fBNT_GNU_ABI_TAG\fP -のラベルが付いたセクションとして見ることができる)。 実行時に、 動的リンカは実行中のカーネルの ABI バージョンを判定し、 カーネルの ABI +のラベルが付いたセクションとして見ることができる)。 実行時に、 動的リンカーは実行中のカーネルの ABI バージョンを判定し、 カーネルの ABI バージョンよりも大きな ABI の最小バージョンが指定された共有ライブラリのロードを行わない。 -\fBLD_ASSUME_KERNEL\fP を使うことで、 動的リンカに、 異なるカーネル ABI -バージョンのシステムで実行されているかのように見せることができる。 例えば、 以下のコマンドラインを実行すると、 動的リンカは \fImyprog\fP +\fBLD_ASSUME_KERNEL\fP を使うことで、 動的リンカーに、 異なるカーネル ABI +バージョンのシステムで実行されているかのように見せることができる。 例えば、 以下のコマンドラインを実行すると、 動的リンカーは \fImyprog\fP が必要とする共有ライブラリをロードする際に Linux 2.2.5 上で動作していると仮定する。 .in +4n @@ -176,7 +176,7 @@ $ \fBLD_ASSUME_KERNEL=2.2.5 ./myprog\fP Table (PLT) を更新しない。 .TP \fBLD_BIND_NOW\fP -(libc5; glibc 2.1.1 以降) 空文字列でない場合、 動的リンカはプログラムの開始時に全てのシンボルを解決する。 +(libc5; glibc 2.1.1 以降) 空文字列でない場合、 動的リンカーはプログラムの開始時に全てのシンボルを解決する。 空文字列の場合、解決しなければならない関数呼び出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。 .TP \fBLD_LIBRARY_PATH\fP @@ -184,7 +184,7 @@ Table (PLT) を更新しない。 set\-user\-ID/set\-group\-ID されたプログラムでは無視される。 .TP \fBLD_PRELOAD\fP -追加でユーザが指定する ELF +追加でユーザーが指定する ELF 共有ライブラリのリスト。指定されたライブラリは、すべてのライブラリより前にロードされる。リストの区切りはスペースとコロンである。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。 set\-user\-ID/set\-group\-ID された ELF バイナリでは、スラッシュを含んだパス名のライブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイルの set\-user\-ID @@ -205,16 +205,16 @@ set\-user\-ID/set\-group\-ID された ELF の古いバージョンでは \fBLD_ELF_PRELOAD\fP もサポートしていた。 .TP \fBLD_AUDIT\fP -(glibc 2.4 以降) 他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセスで行われる 通常のシンボル結合 (symbol -bindigns) には関与しない名前空間) で ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 -これらのライブラリを使って、動的リンカの動作を監査することができる。 set\-user\-ID/set\-group\-ID されたバイナリでは、 +(glibc 2.4 以降) 他のオブジェクトよりも前に、別のリンカー名前空間 (そのプロセスで行われる 通常のシンボル結合 (symbol +bindigns) には関与しない名前空間) で ロードされる、ユーザー指定の ELF 共有オブジェクトのコロン区切りのリスト。 +これらのライブラリを使って、動的リンカーの動作を監査することができる。 set\-user\-ID/set\-group\-ID されたバイナリでは、 \fBLD_AUDIT\fP は無視される。 -動的リンカは、いわゆる監査チェックポイント (auditing checkpoints) において、監査 (audit) +動的リンカーは、いわゆる監査チェックポイント (auditing checkpoints) において、監査 (audit) ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知を行う。監査チェックポイントの例としては、 新たなライブラリのロード、シンボルの解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は \fBrtld\-audit\fP(7) -を参照してほしい。 audit インタフェースは、Solaris で提供されているものと 大部分は互換性がある。Solaris の audit -インタフェースについては、 \fILinker and Libraries Guide\fP の \fIRuntime Linker Auditing +を参照してほしい。 audit インターフェースは、Solaris で提供されているものと 大部分は互換性がある。Solaris の audit +インターフェースについては、 \fILinker and Libraries Guide\fP の \fIRuntime Linker Auditing Interface\fP の章に説明がある。 .TP \fBLD_BIND_NOT\fP @@ -222,8 +222,9 @@ Interface\fP の章に説明がある。 linkage table) を更新しない。 .TP \fBLD_DEBUG\fP -(glibc 2.1 以降) 動的リンカの詳細なデバッグ情報を出力する。 \fBall\fP に設定した場合、全ての動的リンカが持つデバッグ情報を表示する。 -\fBhelp\fP に設定した場合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以降、 +(glibc 2.1 以降) 動的リンカーの詳細なデバッグ情報を出力する。 \fBall\fP +に設定した場合、全ての動的リンカーが持つデバッグ情報を表示する。 \fBhelp\fP +に設定した場合、この環境変数で指定されるカテゴリーのヘルプ情報を表示する。 glibc 2.3.4 以降、 set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_DEBUG\fP は無視される。 .TP \fBLD_DEBUG_OUTPUT\fP @@ -250,10 +251,10 @@ set\-user\-ID/set\-group\-ID されたバイナリでは、 \fBLD_DEBUG_OUTPUT\f 2.3.4 以降、 set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_ORIGIN_PATH\fP は無視される。 .TP \fBLD_POINTER_GUARD\fP -(glibc 2.4 以降) 0 に設定すると、ポインタ保護 (pointer guarding) が無効になる。 -それ以外の値の場合はポインタ保護が有効になる。 デフォルトはポインタ保護有効である。 -ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリ に格納されたコードへのポインタをほぼランダム化することで、 -攻撃者がバッファオーバーランやスタック破壊 (stack\-smashing) 攻撃の際に ポインタを乗っ取ることを困難にするものである。 +(glibc 2.4 以降) 0 に設定すると、ポインター保護 (pointer guarding) が無効になる。 +それ以外の値の場合はポインター保護が有効になる。 デフォルトはポインター保護有効である。 +ポインター保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリー に格納されたコードへのポインターをほぼランダム化することで、 +攻撃者がバッファーオーバーランやスタック破壊 (stack\-smashing) 攻撃の際に ポインターを乗っ取ることを困難にするものである。 .TP \fBLD_PROFILE\fP (glibc 2.1 以降) プロファイルを行う共有オブジェクトの名前。 パス名か共有オブジェクト名 (soname) で指定される。 @@ -270,7 +271,7 @@ set\-user\-ID/set\-group\-ID されたプログラムでは、 LD_PROFILE_OUTPUT .\" Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog) .\" Available since glibc 2.3 .\" Also enables DL_DEBUG_PRELINK -(glibc 2.1 以降) カーネルから渡される補助的な (パラメータの) 配列を表示する。 セキュリティ上の理由から、glibc 2.3.4 +(glibc 2.1 以降) カーネルから渡される補助的な (パラメーターの) 配列を表示する。 セキュリティ上の理由から、glibc 2.3.4 以降、 set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_SHOW_AUXV\fP は無視される。 .TP \fBLD_USE_LOAD_BIAS\fP @@ -279,8 +280,8 @@ set\-user\-ID/set\-group\-ID されたプログラムでは、 LD_PROFILE_OUTPUT .\" Jakub Jelinek デフォルトでは (つまり、この変数が定義されていない場合)、 実行ファイルと prelink された共有オブジェクトでは、それらが依存する ライブラリのベースアドレスが尊重される一方、 (prelink されていない) position\-independent executables -(PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重されない。 \fBLD_USE_LOAD_BIAS\fP -に値が定義された場合、実行ファイルと PIE のどちらでも ベースアドレスが尊重される。 \fBLD_USE_LOAD_BIAS\fP が値 0 +(PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重されない。 \fBLD_USE_LOAD_BIAS\fP が値 1 +で定義された場合、実行ファイルと PIE のどちらでも ベースアドレスが尊重される。 \fBLD_USE_LOAD_BIAS\fP が値 0 で定義された場合、実行ファイルと PIE のどちらでも ベースアドレスは尊重されない。 set\-user\-ID や set\-group\-ID されたプログラムでは、 この変数は無視される。 .TP @@ -297,10 +298,10 @@ set\-user\-ID/set\-group\-ID されたプログラムでは、 LD_PROFILE_OUTPUT .PD 0 .TP \fI/lib/ld.so\fP -a.out の動的リンカ/ローダ +a.out の動的リンカー/ローダー .TP \fI/lib/ld\-linux.so.\fP{\fI1\fP,\fI2\fP} -ELF の動的リンカ/ローダ +ELF の動的リンカー/ローダー .TP \fI/etc/ld.so.cache\fP ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列リストを含むファイル。 @@ -324,6 +325,6 @@ Linux 1.1.52 以降と libc5 以降で使用可能である。 \fBld\fP(1), \fBldd\fP(1), \fBpldd\fP(1), \fBsprof\fP(1), \fBdlopen\fP(3), \fBgetauxval\fP(3), \fBrtld\-audit\fP(7), \fBldconfig\fP(8), \fBsln\fP(8) .SH この文書について -この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部 +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。