IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第15回は、ASF(ソフトウェア財団)のインキュベーションを受けて、Linuxを用いるような大規模システムのサブシステム向けに開発されたRTOS「Apache Mynewt」を紹介する。
ASF(Apache Software Foundation:Apacheソフトウェア財団)のインキュベーションを受けたプロジェクトと言えば、連載第10回で紹介したリアルタイムOS(RTOS)「NuttX」がある。NuttXは自前でスタートし、途中からインキュベーションを受けた格好になるが、これに対し、当初からインキュベーションを受けた状態でスタートしたのが、今回紹介するRTOS「Apache Mynewt」である。
Apache Mynewtの生い立ちは少し複雑である。2014年、米国でruntime.ioというスタートアップが設立された。ここはConnecting Device向けオープンソースソフトウェアでビジネスをしようという少しニッチ狙いのビジネスをもくろんだ企業である。このruntime.ioそのものは2018年11月にJUUL Labsに買収されるが、このruntime.ioがASFに対してプロジェクトの提案を行うとともに、その核になる部分のコードを寄贈する形で2015年に立ち上がったのがApache Mynewtというわけだ。ASFのインキュベーションを受けた後も、runtime.ioのコアメンバーはApache Mynewtのプロジェクトをけん引し、これはJUUL Labsによる買収後も変わっていない。
このApache Mynewtの詳細なのだが、幸いにも2019年の「ApacheCon」で、“Apache Mynewt - ASF's Embedded OS Project”というセッションが開催されており、ここでまとまった説明が出てきているので、以降はこちらからご紹介したい。
まず、Apache Mynewtの開発目的を説明しているのが図2だ。例えば、ASICを作り、これをベースにシステムを開発する場合、メインとなるプロセッサはLinuxを移植して使うことが少なくない。ところがそのASICに含まれるサブシステムは、Linuxを動かすことはまずあり得ない。かといって、ベアメタルで開発しろというのも酷な話である。そこで、Linuxで動くシステム内に含まれるサブシステムに、Linuxそのものではないが、それに近いOS環境を提供することで、サブシステムの開発を容易にしたい、というのが開発の動機だそうだ。確かにこの動機は理解できる。
Copyright © ITmedia, Inc. All Rights Reserved.