再配置テーブルとは?
再配置テーブルは、まだ確定していないアドレスを参照する各箇所を記録した、オブジェクトファイルや実行ファイル内のメタデータです。リンカやローダーは、セクションをメモリ上のどこに配置するかを決めた後、それを使ってそれらの参照を修正します。各エントリは、修正すべき位置と、修正後の値をどう計算するかを示します。
なぜ重要か
再配置は、最終的なメモリレイアウトが判明する前にコードをコンパイルし、その後に動作するプログラムへと組み立てることを可能にするものです。リンカやローダーが実行可能なバイナリを生成する仕組みの中核をなします。
関連ガイド
What Is Symbol Resolution?Symbol resolution is the linker step that matches each reference to a name, such as a function or variable, w…
What Is Position-Independent Code (PIC)?Position-independent code runs correctly regardless of the address it is loaded at, by addressing data and ca…
What Is a Dynamic Linker?A dynamic linker loads the shared libraries a program depends on at startup and binds its references to the f…