/usr/bin/ld
動的リンカーがELFファイルをロードするときにオペレーティングシステムによって自動的に呼び出されるのか、それともELFファイルに含まれるコードによって呼び出されるのかはわかりません。
ELFファイルのデバッグに使用されるときにr2
実行される最初のコマンド(動的リンカーコードである必要があります)で停止しますが、そのコードがELFファイルの一部であるかどうかはわかりません。
ベストアンサー1
カーネルは動的ローダをロードします(これはありません/usr/bin/ld
。参照)。静的リンカー、動的リンカー、ローダー、および動的ローダーの実行可能ELFファイルは何ですか?)。
ELFバイナリを実行すると、カーネルは動的にリンクされたバイナリに対して特定のELFバイナリローダを使用し、ELFヘッダで指定されたインタプリタを見つけてロードし、ターゲットバイナリを実行するように指示します。インタプリタは、必要なライブラリをロードし、未定義のシンボルを確認し、プログラムの開始アドレスにジャンプする動的ローダです。 (望むよりLinuxにはどのような実行ファイルがありますか?カーネルのバイナリロードに関する詳細情報です。 )
LWNに詳しく説明されている記事があります。プログラムの実行方法:ELFバイナリ。