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

MINIX

インタプリタの動作確認

前回、インタプリタを複数のCPUやOSに対応させる過程を書きました。 インタプリタのクラス設計 実際に動かしてみます。 $ file write-minix write-v6 write-8086v6 write-minix: Linux-8086 impure executable write-v6: PDP-11 executable write-8086v6: DO…

インタプリタのクラス設計

自作インタプリタを少しずつ進化させて、複数のCPUやOSをサポートできるようになりました。クラス設計で試行錯誤した過程を残しておきます。 https://bitbucket.org/7shi/i8086tools ※ 文中の図はインラインSVGで描いています。(ソース)

ACKメモ

8086(16bitのx86)をサポートするコンパイラとしてACKが使えるようになりました。 The Amsterdam Compiler Kit ACK自体の移植ではなく、MINIX用のバイナリを8086インタプリタ上で動かします。使用方法は以下を参照してください。 i8086インタプリタでMINIX…

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

i8086インタプリタにPDP-11インタプリタを統合しました。1つのプログラムでMINIX 2とUNIX V6の両方のバイナリを動かせます。 https://bitbucket.org/7shi/i8086tools UNIX V6のccを動かしてカーネルがビルドできることを確認しました。 https://twitter.com/…

i8086インタプリタでMINIXカーネルをビルド

先日、i8086インタプリタでMINIXのカーネルがビルドできるようになりました。 i8086のインタプリタでMINIXのコマンドを動かす 手順を説明します。

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

前回、アセンブラからシステムコールを呼ぶ例を示しました。 i8086のインタプリタでMINIXのコマンドを動かす 通常はC言語からlibc経由で呼び出します。UNIX V6とMINIX 2.0.4でlibcからexitシステムコールが呼び出されるまでを追ってみます。

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

i8086の逆アセンブラに引き続きインタプリタを実装して、MINIXのカーネルがビルドできるようになりました。 http://twitter.com/7shi/status/349237003193307136 OSごと動かすエミュレータではなく、ユーザープロセスのみをホスティングするインタプリタとし…

MINIX 2.0.4をVMにインストール

MINIX 2.0.4をVMにインストールする方法について、調べたことや参考URLを残しておきます。通常の手順では配布ファイルからフロッピーディスクのイメージを作ってインストールします。手間が掛かるため、今回はインストール済みディスクイメージを使います。

MINIX 2事始め

16bitのx86コードに触れたくなりました。そこでMINIX 2に目を付けました。MINIX 2は16bitと32bitの両方に対応しています。16bitの方は80286のプロテクトモードを使用しているためリアルモードではありません。カーネルではなくユーザープログラムの動きを追…