組込みOSを作ってみませんか?

2010/05/12

あなたは 人目のお客様です.

「組込み」「組込みシステム」「エンベデッド」という言葉が一般でもよく聞かれるようになってきました。組込み分野に興味のある人の潜在数はなかなか多いと思うのですが、それと同時に「とっつきにくい」「よくわからない」という話もちらほらと聞くことがあります。なぜ「とっつきにくい」のでしょうか?

組込みシステムの勉強をしたいと思ったとき、いちばん手っ取り早いのは適当なボードコンピュータを入手して、LinuxなりITRONなりといったOSをインストールして、自分でいじってみることです。さらにそのOSを読んで内部動作を理解したり、OSに手を入れて改造したりしていければバッチリでしょう。

しかしLinuxのソースコード量をOS初心者が独力で読み解いていくのは、相当な根気が必要でしょう。動作の中核だけ読むとしても、それがどこなのかを判別するだけで一苦労です。それはITRONの実装であるTOPPERSやHOSについても同様でしょう。これは多CPU対応、多機能化のために階層化して抽象度を高くしていった結果なので実用OSとしては正しい姿だと思うのですが、そのために関数呼び出しやマクロ定義などの階層が深く読みにくくなっていることは事実で、OS初心者が独力でパッと読み解けるようなものではなくなっています。

ではもっと手軽なOSをベースにして学習すればいいのでしょうか?世の中にはオープンソースで手軽な組込みOSは多数あります。しかしここでもうひとつ問題になるのは、そのOSが動作するボードです。これらの独自OSの多くはCPUの評価ボードなどでの動作を前提にしています。評価ボードはOS移植という点だけで見ると最適な題材なのですが、個人利用という点で見ると、致命的な欠陥があります。それはなんといっても「お高い」のです。数万円〜十数万円するのがザラです。研究目的や業務のために研究室や会社で購入するならば、どうということはないのでしょう。しかしOS勉強のために個人で購入するには、ちょっと気軽には買えない金額です。

組込みOSの書籍も様々ありますが、初心者が個人レベルで学習できるということを真剣に考えて書かれたものは本当に少なく思います。対象とするOSが有料で数万円もしたり、有償の開発環境を利用していたり、自作した特殊なボードを対象にしているものもあります。これでは現実として、個人レベルで試せません。ほんとうに混沌とした世界です。このあたりが「組込みは難しい」と思われている理由のように思います。またこれらの書籍はOSを「使う」ためのものであって、OSを「作る」ための説明がなされているものはほとんどありません。

中学生や高校生でもお小遣いの範囲で買えるような金額のボードで動作して、初心者でも十分に読解できて気軽に改造できるような単純なソースコード構成で、ビルドに特殊なスクリプト実行などを必要とせず、開発環境が無償で入手できて、特定の環境にしばられないためつぶしが利く学習ができて、オープンソースであること。個人の学習用には、このような条件が必須です。しかしそのようなOS自作の学習用のサンプルになる組込みOSが無いのです。ていうか、私自身がそういうものがすごく欲しかったのです。

実用OSとして設計されたOSでは、これらの条件を全て満たすことは不可能です。なぜならば、設計思想が初めから異なっているからです。初めから学習目的として設計された組込みOSが必要なのです。

KOZOSはそのような考えで作られています。PCさえあれば、あとは5000円くらいでひととおりの設備はそろって、初心者でも読みきれるコード量。誰でも簡単に改造できて、パッといろいろ試すことができる。そんなポリシーで作られています。もちろんオープンソース、フリーソフトです。

H8用のKOZOSではブートローダーが1000行程度、OSの本体が2000行程度です。これならば、自分でも読みきれるような気がしてきませんか? ちょっと頑張れば自分にも作れるのではないか、という気になるのではないでしょうか。しかもボードは4000円弱、完成品ボードなので半田付けいらず、シリアル経由でフラッシュROMの書き換え可能なのでROMライタ不要だしROMの内容を壊しても安心、通販で誰でも購入可能です。開発環境はFreeBSD、GNU/Linux、CygwinのいずれかでGNU開発環境を想定しているので応用範囲も広く、後々につぶしが利く学習ができます。国産ボード/国産CPUなので日本語資料も充実。ほんとに誰でも試せます。

この機会に組込みOSを勉強してみるのはどうでしょうか。一歩進んで、OSを自作してみるのはどうでしょうか?OS自作は勉強になるし、とても面白いですよ!


メールは kozos(アットマーク)kozos.jp まで