IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第13回は、生い立ちがちょっと面白い、イタリア生まれのRTOS「ChibiOS/RT」を取り上げる。
今回ご紹介する「ChibiOS/RT」は、イタリアで生まれたオープンソースのリアルタイムOS(RTOS)だが、その生い立ちはちょっと面白い。これを立ち上げたのは、現在STMicroelectronics(STマイクロ)でソフトウェアアーキテクトのポジションにあるGiovanni Di Sirio氏なのだが、ChibiOS/RTはSTマイクロとは「あんまり」関係がない。
“ChibiOS/RT - The Ultimate Guide”によれば、Sirio氏が、コンピュータサイエンス分野の研究で広く知られるパデュー大学 教授のDouglas Comer氏の著書「Operating System Design: The Xinu Approach」を読んでいろいろと触発されたことがきっかけになっているらしい。ちなみに「Xinu」は教育目的の組み込み向けOSであり、“Xinu Is Not Unix”の略かつ“UNIX”の逆さ読みだったりする。XINUのWebサイトはまだ健在だが(図1)、広く使われたかというとちょっと微妙(同じくコンピュータサイエンス分野で知られるAndrew S. Tanenbaum氏の「MINIX」と目的は近いが、こちらは組み込み向けというよりは汎用UNIXの小型版という意味でちょっと異なる)というか、特に日本ではいまひとつだった気がする。
Xinuの話はともかくとして、これに触発されたSirio氏は1989年から自分でOSを書き始める。ちなみにターゲットは当時氏が所有していた「Atari ST」だったとか。数年後、このOSはある程度完成し「BDP」という名前が付けられた。小さいながらもemacsやgcc、主要なUNIX風コマンドが動作したそうだ。この頃になると、Linuxが一般的に使われるようになってきたこともあり、Sirio氏は作業を一時中断する。ただ完全プリエンプティブで、リアルタイムに動くco-routine(今で言うところのThread)をサポートしているという、なかなかよくできたOSだったらしい。
1992年、Sirio氏はMT SYSという会社でソフトウェアエンジニアの職を得るが、ここで非常にコンパクトなマルチタスクカーネルが仕事で必要になった。そこで氏はBDPのコードを流用するのではなく、BDPの経験を生かしつつ最小限のコードを一から起こす形でこれを実装した。ただし、「MK」と呼ばれたこのRTOSはそのプロジェクトでしか利用されず、Sirio氏もほとんどそのことを忘れていたようだ。
Sirio氏は2000年にIncard s.p.aという会社に転職したが、このIncardがSTマイクロに買収されたことで、STマイクロに籍を置くことになった。そして2006年にあるプロジェクトでRTOSが必要になったという。Sirio氏は、この時点で入手できるさまざまなRTOSを検討したらしいが、そこでMKのことを思い出したらしい。
確認してみるとMKはSirio氏が想像していたより良いものだったこともあり、このプロジェクトでのMKの採用を決めた。まず、時代遅れのコードスタイルを改善し、ドキュメントを書き、さらに拡張機能を追加するといった作業を行った。おそらくはプロジェクトにはこれで間に合ったのだろうが、その後Sirio氏はこのMKをまたお蔵入りにする代わりに、オープンソースとして公開することを思い付く。2007年、MKはChibiOS/RTという名前で、SourceForgeで公開された(ちなみに名前の理由については“give it a silly name”とだけ記されている。漫画/アニメの「ちょびっツ」とは関係ない……と思う)。
Copyright © ITmedia, Inc. All Rights Reserved.