2006年11月20日月曜日

位置非依存コード

仕事でお客さんに「位置非依存コード(PIC: Position Independent Code)を使いますか?」と聞いたら、「それってなんですか?」と逆に聞き返されてしまった。ところが、聞いた割には私自身も良く知らなかったので(笑)、早速調べてみることに。

Google先生にお伺いを立てたところ、「Linuxの共有ライブラリを作るとき PIC でコンパイルするのはなぜか」を発見し参考にさせて頂く。

なるほどね。モジュール(主にLinuxの共有ライブラリ。Shared Objectからsoと呼ばれる)内のコードを相対アドレスにしておくことにより、異なるメモリ空間を持つ複数の場所(プロセス)から参照した時に、コードの再配置を容易にする技術だそうな。ま、名前の通りですな。

何にしても、中々に分かり易い良いブログを拝見しました。多謝。

ついでに、Linkers & Loaders30日でできる! OS自作入門をアマゾンで発注。仕事なので、是非経費でお願いしますよ。

最近、組み込みソフトウェア関連の製品を扱っているので、プログラムのバイナリフォーマットとか、実行時のメモリ再配置とか、そういうマニアック(?)な話題が多い。これを機会にちゃんと勉強しようっと。

0 件のコメント: