ExDOS を動かしてみた

天才あらわる 14歳の少年プログラマが作った64ビットOS「ExDOS」が凄い という記事を見て、何やらOSを自作した人がいてそれが公開されているという情報を得たので実際に動かしてみた。

ダウンロード

ExDOS -- Downloads
ここからダウンロードしてくる。
現時点ではdemo状態のものだけが公開されている。
今回はdemo2.zipを手元に持ってきた。

ExDOSを動かす

ExDOS -- Tested Hardware を読むと、VirtualBox5.0上でならいい感じに動くぜ!と書いてたのでVirtualBox5.0上で動かした。
仮想ハードディスクを追加しない設定で作成して、ストレージからHDD選択でdemo2.vmdkを指定するだけ。

Runしたらこんな画面になった。
ウィンドウが二つ。こやつらはマウス操作で位置を動かせた。拡大縮小とかはできなかった。
f:id:equal_001:20160408020221p:plain

右下にDEBUGというボタンみたいなのあったのでクリックしたら、ターミナルっぽくなった。
helpと入力すると使えるコマンド一覧でてくる。
コマンドミスしてるのは、英数字切り替えボタンを押す癖が抜けなくて無意識に「 ` 」を入力していたというオチ。
f:id:equal_001:20160408020513p:plain

とりあえず手当たり次第にコマンド打って遊んだ。
無知すぎてportコマンド群の意味がよくわからなかった。
f:id:equal_001:20160408020549p:plain

感想

  • とにかく起動が早かった。まだそんなに機能ないからだとは思うけど、サクサク。
  • たまにカーソル操作がおかしくなって左側にぴょんと飛んだりするトリッキーな動きもして翻弄された。
  • ターミナルの履歴機能はまだなかったけど、ここまで作れた人にとってもそういう機能の導入って難しいのかな。(OS作ったことないのに生意気言ってごめんなさいでもあるとコマンドの動作確認とか便利だろうなって思ったんですごめんなさい)
  • まだドキュメントはcomming soonだったのでできるの楽しみ。


ソースコードはGihubで公開されている。
GitHub - omarrx024/exdos64: Extensible Disk Operating System (64-bit version)

アセンブラ力がゼロなので特になにも解読できませんでした。
でもこういうモジュール(と言っていいのかわからないけど)の切り方するんだなとか、kernel.asmを起点に眺めているとなんとなーくだけど、中でやってることがが見えてきた。
keyboard.asmにはhelpで出したコマンドの関数定義があったり(アセンブラは読めないけど)。

面白かったので真面目にUnixカーネルのコード読もうかなという気持ちにちょっとなった。