« オープンソースを導入すべき理由 | Main | れのぼ »

June 08, 2005

Linkers & Loaders

カーネル輪講に参加した後、IS4年生と一緒にアキバへ。今回は決して怪しい目的ではなく、書籍を購入するためである。

というわけでこのところ必要性を感じていたLinkers & Loadersを購入。様々なオブジェクトコードおよび実行可能ファイルのフォーマットや、リンカとローダの動作について解説した本である。

本書の冒頭に書かれているとおり、リンカってそれなりに複雑な仕事してるはずなのに、コンパイラに比べると全く取り上げられていない。CPU実験では実に単純なモデルを仮定していたのでリンクはそもそもなかったし、ロードもアドレス0に持ってくればいいだけだったしな。一応気分的にはtextセクションとdataセクションにあたる部分を分けた感じだが、明示的にセクションに分かれていたわけではなかったし、そもももアドレス決定はコンパイラではなくアセンブラの仕事だったから俺の仕事ではなかったわけだ。

ところで、リンカはオブジェクトコード中のバイナリコードを解釈してアドレスにあたる数値の部分を書き換える、と書いてあったけが、そうするとリンカは対象アーキテクチャのオペコードを全て知っていないといけないということ?となると何のために一旦オブジェクトコードにアセンブルするのかわからんな。アセンブリコードの集合を最後にアセンブルしつつ同時にリンクを行う方が効率がよい気がしたが、何か別の理由があるのだろうか。

ところでアキバ巡検であるが、Schemer氏がX40 2371-GDJを購入。価格はさらに下がって137,800円だった。これで6人目。

|

« オープンソースを導入すべき理由 | Main | れのぼ »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Linkers & Loaders:

« オープンソースを導入すべき理由 | Main | れのぼ »