オープンソースカンファレンス2009 Nagoyaに出展した

2009/08/24

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

8/22(土)に名古屋市立大学で開催された, オープンソースカンファレンス2009 Nagoyaに出展してきました.今回も単独ブースでの出展です.

前回の京都では,専門学校のロビーでやって いたのでそれなりに広々していてとなりのブースとくらいしかお話しできなかったの だけど,今回は大学の教室でやったので,いい意味での閉鎖空間というか, わりととなりどうしで和気あいあい,という感じで楽しかったです. (あと会社の同期もいたし)

ブースは会場に入ったらなんと日本 OpenSolaris ユーザーグループと日本Androidの会 という強力な2つにおもいっきりはさまれていて,KOZOSなんていうよくわからんものが 間にポツンとあるような感じであちゃーやべーなーと思ったのだけど,まあいろいろ 話せてよかった. 前回説明を聞いていただいたCSnagoyaの 展示がちょうど目の前だったと,あと隣の日本Androidの会の人といろいろ話を したのだけど,いやーためになるねえ.いろんなひとと話をするのはいいもんだ. (CSnagoyaは相変わらず面白い勉強会やってるなあ,と思った)

前回のように,会場に足を運んでくれた人にKOZOSをひとりひとり紹介して説明して いくのもいいけど,今回みたいに隣どうしでいろいろお話しして情報交換するのも いいもんです.(なので今回はあまり説明していなかったかも)

あとg新部さんの講演があって,ちょっと昔に若手技術者勉強会みたいなので (当時は私も若手だったのです)お世話になったので講演を聞いたのだけど, うーんすごいねえ. いや,こういうすごいひともいるもんだと刺激になるねえ.遊んでる場合じゃない ですな.(とかいいつつ,名古屋の帰りはドライブがてら丹沢で遊んできたのだけど. 当り前だけどファミリーキャンプ客が多かった)

で,KOZOSなのだけど,前回もちょっと書いたけど,もともとはユーザランドOSとして リアルタイム性とか考えていきたかったのだけど,現在H8ボードへの移植を進めて いる.というのは,リアルタイム性についてはμiTRONとかですでに考えられて いるので,後発のOSとしてはいまさら追求しても面白味が無いからだ. (単なる僕の勉強と,勉強した内容を紹介するだけのつまらんものになってしまう)

あと,僕自身,リアルタイム性がどうあるべきか考えがかなりいきづまってしまって いて,ほんとにやるのならこれ以上はやっぱし専門家にある程度は教わらないと, 僕のようなよくわからんどこぞの誰かがひとりで考えていてもあまり進展はない かなあ,という理由もある.

ということでリアルタイム性とかの難しい話はおいといて,安価なプラットホームに 移植を進めて,組み込みOSの勉強をしたい人が,低い敷居でパッと試せるようなものに していきたいなあ,と今は思っている.「KOZOSのウリ」ってやつですね.

パッと試せるためにはターゲットボードが安いだけではダメで,スタートアップガイド みたいな「とりあえずこうすれば動きます」的なドキュメントが整備されていることが 大切だ.なのでどうすればとりあえず試せるのかって情報をもっと流していきたい.

あと開発環境は特定のものにしばられないことも大切.まあ僕のように何が何でも FreeBSD上で開発したいって人は稀だとは思うけど,メーカとかが配布している特定の (概ね,Windows用の)コンパイラを使うというのではダメだ. ということで「binutilsとgccを自分でクロスビルドして使う」というのは, 僕的には必須だ.

最近はtoolchainが進化して,ビルド済みのクロスコンパイラとかが一式そろっていて, インストールするだけということも多いけど,やはり組み込みやるならば, まずはbinutilsとgccをクロスビルドするところからやらないと,という思いもある. (ビルド済みのtoolchainを否定するわけではないのだけど,全員がWindowsやLinuxを 必ず使っているわけではないので,それとは別にソース形態での配布もしてほしい なあ,と思うことは多々ある)

まあでも初心者の場合には,むしろ特定の開発環境にしばってしまって, 「この環境で開発しろ!」と言ってあげたほうがとっつきやすいのかもしれないけど. 人によりけりだとは思うけどね.

で,H8への移植なのだけど,現在ブートローダーを作成中です.

というのはほんとはRedBootをあてにしていたのだけど,RedBootがC++で書いてあって, C++のクロスコンパイラ(g++)がうまくビルドできなかったから.どうもライブラリ がらみでビルドエラーになっているらしく,newlib入れたりとかいろいろ試して みたのだけどダメで,ていうかこの様子だと,ぼくの環境で頑張ってg++をビルド できたとしても,ユーザの個々の環境できちんとビルドできるかとっても不安なので, いっそブートローダーも自作してしまおうと判断. ブートローダーも自前で用意すれば融通も効くし,それはそれでウリになるし.

まあ組み込みOS作るなら,ブートローダーくらい自作しないとねえ,って思いもある. ブートローダーも作ってしまえば,ほんとの意味で「最初から全部作ってます」って 言えるし.

今回も思ったことだけど,組み込みOSって,興味のある人はけっこういると思う. 作ってみたいという人もけっこういる.しかしたいていの場合,作ってみたいけど いったい何をすれば作れるのか,何を勉強すれば作れるようになるのかわからない, ということがほとんどだと思う.

KOZOSがそーいうためのサンプルというか雛型になれるようになればなあ,と思う.

実際,組み込みOSを自分で作ろうとするといろんな知識が必要だ. コンピュータのスタートアップの知識,CPUの知識,デバイス操作の知識, 割り込み,リンカスクリプト,アセンブラの読み書き,ELF形式,クロス開発環境, スタックとかのメモリまわり,テキスト領域とかデータ領域とかBSSとか, スレッドプログラミングなど,思いつくだけでもいっぱいある. 教科書が無いような分野もいっぱいある.

まあ極端に言ってしまうと,これらの知識がひとつでも欠けていたら,OSはひとりでは 作れない(別の言いかたをすると,グループでやるなら誰かひとりが知っていれば いいし,知らないならできあいのものをどっかから持ってきてもいいし, OS自作するとこれらの知識がすべて身についてとってもお得). しかしそれらの情報が一箇所にまとまっている場所は無い. このへんの現状をなんとかしていきたいなあ,と思う.


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