00-01.プロジェクトOSとは何か?

 このドキュメントを進める前に、ちょっと昔話をします。
 時は1990年ころ、NECのマシンにPC98という名機がありました。いわゆるパソコンブームの火付け役になったマシンです。
 16ビットのマシンでCPUはインテルの80868018680286を積んでました。
 そのころ、僕はパソコンショップをやっていて、PC98本体とそのソフトウェアをメインに販売していました。
 本体は結構高く30万から40万くらいしてたんです。僕のパソコンショップではほかの安売り店とは戦えず、あんまり本体は売れませんでしたが、ソフトは結構売れました。ワープロの一太郎とか表計算のLotus123とか。
 そのころPC98のOSはMS-DOSが主流でした。あのビル君が作ったディスクOSで、フロッピーで起動します。
 MS-DOSのフロッピーディスクをマシンに挿入して電源を入れるとピコッと音がして起動します。
 起動するとコマンドプロンプトが出るので、一太郎とかを起動します。
 そしてそれらの真面目なソフトに比べ、とにかくよく売れたのがゲームソフトです。
 信長の野望とか三国志とか、大戦略とか、あと成人向けのゲームも山ほどありました。今をときめくソフトバンクさんも、実はそのころはパソコンソフトの問屋さんでした。僕のショップもソフトバンクから仕入れてました。
 そのころのゲームソフトはMS-DOSを必要とするものもありましたが、そうではなくて、ゲームのフロッピーを入れて起動すると、いきなりゲームが始まるのも多数ありました。つまり、ゲームにOSがついていたんですね。
 で、僕はPC98ゲームソフトを売るかたわら、店番しながら、MSC(マイクロソフトC)というVisualC++の元になるコンパイラと、MASM(マイクロソフトのアセンブラ)を入手して、もっぱら、PC98のVRAMに直接画像を書き込んだり、ブロックくずしのようなしょーもないゲームを作ったりしてました。
 ゲームをプレイしてもみたのですが、どうも、僕自身ゲームを遊ぶのには向いてないらしく、ただの1つも攻略できませんでした。なので、もっぱら、PC98プログラミング、で暇つぶしをしてました。
 なんで、こんな話から始まったのかというと、今、このようなシングルタスク、シングルユーザーなOSは、存在しないなあ、と思ったのです。
 WindowsにせよLinuxにせよ、複数のアプリケーションを同時に動かします。パソコンのハードウェア資産は、複数のアプリやユーザーで共有するわけです。現在のハイスペックなハードウェアだからこそなしえることです。
 ですが、あえて、この強力なハードウェアを独占出来たらどうでしょう。
 ハイスペックなCPU、装着されている大量のメモリ、そして3D環境でガンガン動く、アクセラレータ。
 これらを、1つのアプリで独占できたら、どんなに素晴らしいか?
 というわけで、シングルタスク、シングルユーザー、シングルアプリのOSを作成してみたい、と思ったのです。
 これから挑戦するOSは以下の基本仕様とします。
1、USBから起動するOSである。
2、起動後、唯一のアプリケーションを動かす。
3、そのアプリはできるだけ多くのハードウェア資産を独占できる。

 それでは、早速、開発環境の構築からやっていきましょう。

2019年秋 WiZ非常勤講師(C/C++担当) 山ノ井靖