リロケータブルバイナリ
From Wikipedia, the free encyclopedia

リロケータブルバイナリとは、リロケータブルな性質を持つバイナリである。リロケーション(再配置)とは、位置に依存するコードを読み込みメモリアドレス(アドレス)を割り当てるプロセスであり、コードとデータの参照を読み込み先のアドレスに置き換えることである。
普通、コンピュータの機械語(実行形式)では、通常はコードが0番地から始まる絶対アドレスが用いられる。この場合、プログラムファイルを置くアドレス位置は一箇所に固定され、そのままでは別アドレス位置に置いて実行することはできない。マルチプロセスのシステムでは動的にプログラム間のリンク、切り替えを行うため、位置独立コードにしてオブジェクトの再配置をできるようにする必要がある。
あらかじめ絶対アドレスの記述に代えて仮想のアドレス指定をしておき、実行形式のプログラムファイルを生成する際にはじめて絶対アドレスを記述する(このためのソフトウェアを「リンケージエディタ」と呼ぶ)ようにすれば、メモリ空間のどこにでもその実行形式プログラムを置くことができる。分割コンパイルで出力されるオブジェクトやバイナリライブラリはたいていリロケータブルバイナリである。
→詳細は「オブジェクトファイル § セグメント」を参照
オブジェクトファイルは、ヘッダー情報、コードセグメント、データセグメント、読み取り専用データセグメント、VSSセグメントなど多くのメモリセグメント種別に分けられる。リロケーション情報もメモリセグメントの1つである。