【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

ACKメモ

8086(16bitのx86)をサポートするコンパイラとしてACKが使えるようになりました。

ACK自体の移植ではなく、MINIX用のバイナリを8086インタプリタ上で動かします。使用方法は以下を参照してください。

ACKに関するメモです。

続きを読む

i8086とPDP-11のインタプリタを統合

i8086インタプリタPDP-11インタプリタを統合しました。1つのプログラムでMINIX 2とUNIX V6の両方のバイナリを動かせます。

UNIX V6のccを動かしてカーネルがビルドできることを確認しました。

V6移植ハッカソンで使うため、2年前に作ったPDP-11のインタプリタi8086インタプリタの構造に合わせて移植しました。MINIX 2とUNIX V6のUNIXとしての共通部分は基底クラスで共用しています。UNIX V6をi8086に移植する際にインタプリタシステムコールのABIを実装すれば、カーネルを移植する前にユーザーバイナリの動作確認を切り離して行えるのではないかという狙いです。

続きを読む

V6移植ハッカソン

【追記】残念ながら参加者が少なかったため中止とさせていただきました。今後は池袋バイナリ勉強会の中で作業を進める予定です。

お盆休みの四日間に渡ってUNIX V6を8086に移植するハッカソンを開催します。

ご都合の良い日だけでも結構ですので、ご参加をお待ちしています。

続きを読む

MINIXのexitシステムコールを追う

前回、アセンブラからシステムコールを呼ぶ例を示しました。

通常はC言語からlibc経由で呼び出します。UNIX V6とMINIX 2.0.4でlibcからexitシステムコールが呼び出されるまでを追ってみます。

続きを読む

i8086のインタプリタでMINIXのコマンドを動かす

i8086の逆アセンブラに引き続きインタプリタを実装して、MINIXのカーネルがビルドできるようになりました。

OSごと動かすエミュレータではなく、ユーザープロセスのみをホスティングするインタプリタとして実装しています。Windowsにはforkがないため、1プロセスの中で擬似的に複数のプロセスを再現しています。

続きを読む

MINIX 2.0.4をVMにインストール

MINIX 2.0.4をVMにインストールする方法について、調べたことや参考URLを残しておきます。

通常の手順では配布ファイルからフロッピーディスクのイメージを作ってインストールします。手間が掛かるため、今回はインストール済みディスクイメージを使います。

続きを読む