いよいよ今週末はOSCです。さっきやっと宅急便で荷物を送りました。
今回はセミナーも受け持たせてもらいますが、どんな話をするかいろいろ考えています。とりあえず1回やってみたかった「1枚の紙にOSの全ソースコードを印刷して配布」ってのをやろうかと。。。まあ字が小さくなりすぎて読めはしないのだけれど、インパクトはあるかなあと。これだけのコード量でいいなら、OSって自分でも書けるんじゃないの?って思っていただければなあと思います。
ちなみに16upで印刷したら、両面で1枚にだいたいちょうど入りきりました。ブートローダーは片面でOKだった。
あとは肝心の話す内容だけど、うーん、KOZOSがどんなものかってのをまず話すべきなんだけど、何でこのようなものを作ったのかって話がしたいなあ、と思う。
というのは、はじめて展示会に出たのがちょうど去年のOSCTokyu/Springなのでちょうど1年前なのだけど(その節は川合さんとはりぼて友の会にお世話になりました)、その後も京都、名古屋、大阪、秋の東京と1年間出展してきていろんな人と話ができたのだけど、やっぱり多いのは「何に使えるのか?」「実用性はあるのか?」という質問だ。
これについてはその都度きちんとKOZOSの趣旨やポリシーを説明して、多くの人には理解してもらえていると思うのだが、それでもいくら説明しても「でも実用性が無いならダメじゃん」「LinuxやITRONでいいのでは?」と言われてしまうこともある。
しかしここで考えてほしいのは、「実用でないなら意味がない」という実用一点張りの考え方はどうだろうか、ってことだ。
独自OSを自作するという活動はいくつかある。しかし思うのは、ほとんどのOSは「機能追加して、実用性を高めていく」という、機能増加の方向に向かうということだ。どんどん新機能を追加して、便利に発展させていく。まあこれはこれで面白そうだしいいと思うしべつにそういうOSを否定するわけではないのだけれど、KOZOSで今からそれをやろうとしても、先発のOSを追うだけになってしまい、なかなか追いつけないだろうし面白いものにはならないだろう。その方向性でKOZOSならではの魅力を出そうとしたら、ものすごく斬新な機能を実装するとか、ものすごく魅力的な機能を積むとか、ものすごい特徴的なつくりにするとかしかない。(まあそれも面白そうだけどね)
何より、そういう方向性のものばかりってのもつまらないだろう。いろんなものがあっていいと思う。
で、KOZOSでやりたいのは、「どんどん機能追加して」というおおかたの流れとは逆行して、「削って削ってOSとして必要なエッセンスだけを残して、1行1行の意味が重い、密度の濃いものにできないか?」ということだ。これだけあればOSといえるというコア機能(ぼくが考えるところでは、スレッド管理、メモリ管理、I/O管理の3機能)だけに限定して、そのかわり読みやすく理解しやすく改造しやすいものにする。
なのでKOZOSは、教材に向いていると思う。
そんなわけで学習向けとして作っていきたいのだけど、学習向けと謳うならばそれはそれでハンパなものにはせずにきちんと考えて、日本語のドキュメントを充実させて、誰でも購入できる価格帯のボードをターゲットにする、とかいったことは考えたい。というのは、「このOSは実用向けだけど学習にも使えます」とか言っておきながら、実際に動作するボードはン十万円、とか、開発環境はン万円、とか、ボードから自作する必要があります、とか、ボードには英語のマニュアルしかありません、とかってOSがけっこう多くてちょっとどうかと思ってるところがあるからだ。少なくともボード自体がン十万円とか開発環境がン万円もするようでは、現実的には個人で学習なんてできないじゃん!って思う。
とくにKOZOSは、教えてくれる人のいない状況での独学に向いているものにしたい。ただOSがシンプルなので学習に向いていますよっていうだけでなく、動作するボードの値段とか、CPUやボードやペリフェラルのドキュメントの充実さとか、日本語ドキュメントの充実さとか、開発環境の入手しやすさとか、ボード自体の入手しやすさとか扱いやすさとか、そういったもろもろのことを含めて、個人の学習に向いているというものにしたい。なぜなら、ぼく自身がそういう個人向けにまとまったものがすごくほしかったのだけど無かったので、OS自作のためにはいろんな分野をその都度その都度つまみ食いで勉強していくしかなかったから。
そして、そういうOSは未だに(KOZOS以外に)無い、と思う。
あとは「組込みOS利用の学習」というより、「組込みOSの内部動作や自作の学習」を考えたものにしたい。世の中の「組込みOS本」のほとんどは、「OS自作」や「OS理解」でなく「OS利用」のための本のように思う。自作のための資料やサンプルがないのです。
OS初心者が「これなら自分でも読めるかも」「これくらいでいいなら、頑張れば自分でも自作できるかも」って思えるものにしたい。OSのプロや専門家が、ではなく、初心者や学生さんや志ある若い人がそういうふうに思えて、一歩を踏み出すきっかけにできるものにしたい。
ってな話ができればいいなあ。