x86(32ビット)用OSを作っています
少し前から、x86(32ビット)用OSを作っています。(64ビットじゃないのは、今だにx86マシンしか持っていないからです。。。)
シェルみたいなものが動くところまで来たので、記念に記事にしてみます。
できることは、上のGIFアニメの通りで、echoコマンドしか無いシェルもどきが動くだけです。
動作風景は上のGIFアニメにありますが、先頭に半角スペースが入っているとコマンド解釈できないのと、コマンド判別を最初の1文字で行なっているので、"e"一文字だけでも"echoコマンド"として解釈されます。
あと、まだBackSpaceキー、Shiftキーに対応していません。
「自分のマシンで動けば良い」方針で、自分の理解に合わせてボトムアップで作っていったので、「おまじない」のようなコードは少ないです。
なので、起動してからC言語の世界に入るまでの流れは分かりやすいのではないかと思います。
使い方
「どこでも動く」という所まで意識して作っていないので、保証はできませんが、
以下のような環境であれば、ビルドからQEMU上で動作確認までできると思います。
build-essentialパッケージに含まれるものですが、
GCCのバージョンは「4.7.2 (Debian 4.7.2-5)」です。
この記事時点に"blog-20150405"のタグを追加しました。
記事作成時点のバージョンのソースコードは、タグをチェックアウトするか、
以下からダウンロードしてください。
以下のコマンドで、ビルド〜QEMU上で実行まで行います。
$ git clone https://github.com/cupnes/os5.git
$ cd os5/
$ make run