プロシージャリンケージテーブルとは?
プロシージャリンケージテーブル(PLT)は、共有ライブラリ内の関数への呼び出しの代わりを務める小さなコードスタブの集合です。ある関数への最初の呼び出しはそのPLTスタブを経由し、それが動的リンカを起動して実アドレスを解決し、GOTに記録させます。以降の呼び出しは、解決済みのアドレスへ直接ジャンプします。
なぜ重要か
PLTは遅延バインディングの背後にある仕組みで、シンボルを解決するコストを実際に呼び出されるまで先送りします。グローバルオフセットテーブルと手を携えて、外部呼び出しを効率的に結び付けます。
関連ガイド
What Is the Global Offset Table?The global offset table is a per-module table of addresses that position-independent code reads to reach glob…
What Is Lazy Binding?Lazy binding defers resolving the address of an external function until the first time it is actually called,…
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…