イベントの説明
参加者が少なかったため中止とさせていただきました。
今後は池袋バイナリ勉強会の中で作業を進める予定です。
UNIX V6を8086(16bit x86)に移植するハッカソンです。
ユーザーモードプログラムやコンパイラから始めて、最終的にはカーネルの移植を目指します。次のような工程を考えています。
1. 8086のアセンブリ形式やシステムコールのABIを決定
・ V6のccのアセンブリ出力を8086にトランスレートする。
・ バイナリではなく.sファイルをテキスト処理する。
・ トランスレートしたバイナリは8086インタプリタで動作確認する。
・ システムコールのABIを決めて、インタプリタに手を入れる。
2. コンパイラとアセンブラの8086対応
・ V6のccから直接8086のアセンブリを出力するように改造する。 ・ V6のasはフルアセンブラのため、C言語で書き直す。
・ V6のasを8086に対応させる。
3. ユーザーランドの8086化
・ V6のユーザーランドを8086対応cc/asでビルドする。
・ 生成したバイナリを8086インタプリタで動作確認する。
4. デバイスの調査
・ PDP-11インタプリタにデバイスを実装して仮想マシン化する。
・ デバイスのI/Oを確認するため。
・ 仮想マシンでオリジナルのV6を動かす。
5. カーネルの8086化
・ 8086インタプリタにPDP-11のデバイスを移植して仮想マシン化する。
・ 実際には存在しない構成のハードウェア。
・ V6カーネルを8086対応cc/asでビルドする。
・ メモリ転送命令など特殊なアセンブリは書き直す。
・ デバイス周りは仮にPDP-11と合わせるため、移植しない。
・ 仮想マシンで8086化したV6カーネルを動かす。
・ この段階ではハードウェア構成が仮想のため実機では動かない。
6. デバイスのPC/AT化
・ デバイス周りを書き直す。
・ 既存のエミュレータ(VMware/QEMU)で動作確認する。
主催者側では事前にユーザーモードインタプリタを提供します。これらで動作検証を行いながら進めていこうと思います。
・ i8086とPDP-11のインタプリタを統合
ご参加をお待ちしています。
参加費用
・ 一般: 500円 (一日分の会場代)
・ 学生: 無料
準備する物
・ ノートパソコン
開発に使用します。
今後は池袋バイナリ勉強会の中で作業を進める予定です。
・ V6のccのアセンブリ出力を8086にトランスレートする。
・ バイナリではなく.sファイルをテキスト処理する。
・ トランスレートしたバイナリは8086インタプリタで動作確認する。
・ システムコールのABIを決めて、インタプリタに手を入れる。
2. コンパイラとアセンブラの8086対応
・ V6のccから直接8086のアセンブリを出力するように改造する。
・ V6のasを8086に対応させる。
3. ユーザーランドの8086化
・ V6のユーザーランドを8086対応cc/asでビルドする。
・ 生成したバイナリを8086インタプリタで動作確認する。
4. デバイスの調査
・ PDP-11インタプリタにデバイスを実装して仮想マシン化する。
・ デバイスのI/Oを確認するため。
・ 仮想マシンでオリジナルのV6を動かす。
5. カーネルの8086化
・ 8086インタプリタにPDP-11のデバイスを移植して仮想マシン化する。
・ 実際には存在しない構成のハードウェア。
・ V6カーネルを8086対応cc/asでビルドする。
・ メモリ転送命令など特殊なアセンブリは書き直す。
・ デバイス周りは仮にPDP-11と合わせるため、移植しない。
・ 仮想マシンで8086化したV6カーネルを動かす。
・ この段階ではハードウェア構成が仮想のため実機では動かない。
6. デバイスのPC/AT化
・ デバイス周りを書き直す。
・ 既存のエミュレータ(VMware/QEMU)で動作確認する。
・ i8086とPDP-11のインタプリタを統合
ご参加をお待ちしています。
・ 一般: 500円 (一日分の会場代)
・ 学生: 無料
準備する物
・ ノートパソコン
開発に使用します。
資料 資料をもっと見る/編集する
資料が投稿されると、最新の3件が表示されます。