コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

ノート:リロケータブル

ページのコンテンツが他言語でサポートされていません。

厳密には、再配置可能(リロケータブル)であることと位置独立(ポジションインディペンデント)は異なる概念。この項の現在の内容は後者の説明。

位置独立コードは当然に再配置可能(特別な処理なしに任意の位置にロードできる)だが、再配置可能であることは、位置独立である場合もあればそうでない場合もある。 古いアーキテクチャでは全空間に対して相対アドレスを用いることができないものが多かったので、コード中に絶対アドレスを記述しないようにし、実行形式の生成時にリンカで、あるいはロード時に、絶対アドレスを生成していた。この絶対アドレス生成前のコードが、再配置可能バイナリ(relocatable binary)と呼ばれる。 そういえば6809出た当時から混同されていたっけ。 --Peachberry 2009年2月6日 (金) 18:55 (UTC)

御指摘賜り有難う御座います。本稿を立てた東 遥と申します。最初の説明(リダイレクト)があまりにもあまりで拙速に記述した次第ですので、多分に不充分な事もあると存じます。適宜修正頂ければ辛勝に存じます。或いは、詳細な定義や内容がある資料(出来ればWEB上にあると嬉しい)を紹介賜れば幸いです。東 遥 2009年2月7日 (土) 03:38 (UTC)[返信]
リロケータブルバイナリの項と繋いで整理するといいかもしれないですね。正確に記述されていると思います。この項後半、position independent codeの説明は当にOS-9のことです。また、例えばX68000のOS、Human68kでは、実行時に再配置する機能が使われているという記述があります。とりあえずwikipediaで探しただけですが。本当はきちんと自分で書けるといいのですけど、考えがまとまらないのでとりあえずノートにでも書いておくか、ということでした。気を悪くされたのなら申し訳ないです。--Peachberry 2009年2月9日 (月) 18:09 (UTC)
いえいえ、書いている当人も気づかない事があったりしますので、他の方の指摘はありがたいです。上記了解しました、と言っても、私も6809プログラミングで遊んでいたクチですので、その設計に引きずられているのかも知れません。勉強しがてらおいおい修正したいと存じます。しばしのご猶予を。東 遥 2009年2月9日 (月) 23:28 (UTC)[返信]

「リロケータブル」と「リロケータブルバイナリ」を相互に参照させたり、ちょっと整理しました。さて、現在「位置独立コード」の項目はありませんが、それぞれの用語の厳密な意味についてはPeachberryさんに同意しますが、現状、リロケータブルオブジェクトを生成するGCCのコンパイラオプションが-fPICであること、「リロケータブル」の語が古い語彙(雑誌掲載のダンプリスト、とかの時代の語)となっており、そういう場合位置独立コードを指していること、という、本来の意味と逆転して通用している現状があるかと思います。

今後の加筆や記事おこしの際の参考までに。--MetaNest 2009年11月30日 (月) 10:38 (UTC) 打ち消し線部、勘違いでしたので取り消します。特に断るまでもなく普通のオブジェクトファイルはリロケータブルなわけですね。--MetaNest 2009年11月30日 (月) 11:02 (UTC)[返信]