何とか、ELF 形式の実行ファイルを使って B-Free OS を作成できるように
しました。
ELF 形式の実行ファイルを a.out 形式に変換し、B-Free OS を作るように
しただけで、ブートプログラムが ELF を解釈できるようになったわけでは
ありません。また、変換する ELF ファイルは、static リンクしているもの
に限っており、dynamic リンクを指定している実行ファイルは変換できませ
ん(ld の -static オプションは必須)。
変換処理の追加以外に、アセンブラで記述したファイルのシンボル名の先頭
の '_' (アンダーバー)を削除しています(ELF だと '_' がつかないため)。
今のところかなり効率の悪い方法で変換しています。
B-Free OS を作成する処理では、実行ファイルのファイルサイズ、メモリ中
にロードした時のサイズをチェックするなど、4 個所ほど実行ファイルにアク
セスしている個所があります。その度ごとに ELF 形式のファイルから a.out
形式に変換しています。そのため、余分な変換処理を行っています。
この辺の余分な処理については、あとで改良するつもりです。
Windows の実行ファイルについても、実行ファイルを変換する方法で対処でき
ると思います(Windows の実行ファイルのフォーマットを知る必要があります
が。。。) > 林さん
修正後のソースは、今日か明日にでも ftp サイトの方に置いておきます。
-- p----------------------------------------------------------------------q | FROM R.Night | | E-mail: night@b-free.orient.co.jp | b----------------------------------------------------------------------d