IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第17回は、欧州の大学の共同研究に出自を持つフル機能のRTOS「RIOT-OS」を紹介する。
今回ご紹介するのはリアルタイムOS(RTOS)は「RIOT-OS」。OSの位置付けとしては、ある意味、第15回で取り上げた「Apache Mynewt」に近いかもしれない(どんな意味で? という話は後述)。
RIOT-OSはもともと、FU Berlin(ベルリン自由大学)、INRIA(フランス国立情報学自動制御研究所)、HAW Hamburg(ハンブルク応用科学大学)の共同研究の一環として開発されていた。RIOT-OSの基になるのは、FU Berlinで研究されていた「FireKernel」というWSN(Wireless Sensor Network)向けのリアルタイムカーネルである。FireKernelの論文が出たのは2009年のことであり、2009年の時点でOSの核となる部分の実装は一応終わっていた。論文を読むとこんな数字も出てきており(図1)、またタスク同期やタスク間通信、割り込みハンドリングなども実装されていた。
実際にこのFireKernelベースのプロトタイプOSを実装した際の性能がこちら(図2)。ARM7TDMIで割り込みレイテンシが50cycle/700ns、ISRの呼び出しまで72cycle/1μsというのは、プロセッサの性能を考えれば十分高速と思われる。
ただしこのFireKernelは、あくまでもカーネルの実装が主体であり、RTOSを名乗るにはいろいろと足りないものが多すぎた。恐らくは、と書くのはこのあたりの事情を記した資料を発見できなかったためなのだが、FU BerlinとINRIA、HAW Hamburgはこの頃にWSNに関する共同研究を行おうとしており、その際に手軽なWSN対応RTOSが必要で、そのためにはFireKernelをベースにするのが適切、といった判断があったのではないかと思う。2013年にプロジェクトというかOSの名前はRIOT-OSになったが、それ以前には「Feuerware」なる名前で開発されていたらしい。また2010年にはここから「μKleos」なる別の研究プロジェクトにフォークしたらしい※1)。
※1)uKleosを検索すると怪しいポルノサイトが山ほどヒットしてしまうあたりで、本来(?)のuKleosの内容がさっぱり不明になっているのは困ったものだ。
さてここからは、トーマス・アイヒンガー(Thomas Eichinger)氏(現在はMolekuleでFirmware Managerを務めているが、当時はRIOT e.V.の創業者兼取締役という立場にいた)が「OpenIoT Summit NA 2017」で公開したスライドをベースに紹介したい。研究プロジェクトの一環に近かったと思われるFeuerwareが、オープンソースのRTOSであるRIOT-OSに生まれ変わるに当たっての目標が図3である。
RTOSというよりもIoT(モノのインターネット)機器向けの汎用インフラを目指した、という動機が非常によく分かる構成になっている。そしてこれをオープンソースベースで実現した、というのがRIOT-OSというわけだ(図4)。“草の根コミュニティーで推進していく”というあたりも、これを明確に表現していると思う。
Copyright © ITmedia, Inc. All Rights Reserved.