ELFパーサ

とりあえずELFパーサの前段階としてFreeBSD上でELFヘッダをダンプするプログラムを書いている。

このあたりが参考になる:
ELF Format
http://www.linux.or.jp/JM/html/LDP_man-pages/man5/elf.5.html

ヘッダ構造は複雑ではないからパーサはすぐ作れそうだが(ヘッダの内容にバリデートするとなると何をチェックすれば良いか解らないが)、ロード部分をどう作るか考え中。
仮想メモリが無いOSでは、一般的にどうしてるんだろか。
コンパイルした時点でロードアドレスが固定的に決まってるようだが、仮想メモリが無いのだからそんな訳にいかない。
PIE(位置独立コード)を使ってロード時に再配置してあげるのが正しいのか?

まずはユーザランド側のプログラムのロード位置をカーネルと被らないような所に指定してコンパイルして、それをロードしてみる所から試してみるかな。(もちろんこの方法では多数のプログラムを同時に動かすような使い方が出来そうにないが)

ローダとか考えていて気がついたが、この辺の知識はかなり怪しい。
ダイナミックリンクとかどう動いてるかきちんと説明出来るか疑問。