アマゾンよりも面白い?「Mongoose OS」がIoT開発のハードルを下げる:IoT観測所(43)(2/3 ページ)
「Mongoose OS」は、IoT機器開発のハードルを下げることを売りにしている開発環境だ。組み込み技術者にもその利点は分かりやすく、Armの「Mbed OS」やアマゾンの「Amazon FreeRTOS」と比べても面白い存在になるかもしれない。
ランタイムに非依存でJavaScriptに対応
4つ目の特徴になるのが、ランタイムへの非依存である。一般にMCUの場合、当然搭載される周辺回路とか、場合によってはドライバ類はそれぞれのベンダーから提供される形になる。OSベンダーの中には、このドライバ類を完全に自前で提供するところもあるが、当然これは対応負荷が非常に大きくなる。
Mongoose OSは図1のように、ベンダーから提供されるネイディブSDK(ソフトウェア開発キット)の上にラッパーとして提供される。つまり、この範囲でアプリケーションを記述する限りは、仮にハードウェアを変更しても再プログラミングの必要がない。もちろん、これで足りない部分は、ネイティブSDKを直接たたく必要があるが、Mongoose OS自身のAPIがかなりの範囲をカバーしているので、アプリケーションによっては一切ネイディブSDKを触らなくて済む。
5つ目はC/C++とJavaScriptへの対応。最終的なアプリケーションはC/C++で記述することになるが、それとは別に(先ほどもちょっと出てきた)mJSというJavaScriptエンジンが用意されており、これを利用してJavaScriptによるラピッドプログラミングも可能である。CesantaはPrototypingにはJavaScriptを、実際のアプリケーション開発にはC/C++を、という形を推奨しているが、別にJavaScriptのまま製品開発をしてしまっても構わない
6つ目がArduinoとの互換性だ。完全というわけではないが、Arduinoと互換のライブラリが提供されており、既存のArduinoのスケッチがそのまま動作する。少なくともGPIO、Wire、OneWireなどは互換性が保たれている。さらにArduino用のシールドも利用できる(もちろんこちらはそもそも評価ボードがArduinoのShieldに対応しているか、自分で接続する必要があるが)。
既に、アダフルーツ(Adafruit)のグラフィックライブラリ「Adafruit_GFX」、温度/湿度センサー「BME280」と「DHT」、有機ELディスプレイ「SSD1306」などの対応が発表されている。
7つ目がセキュリティ対応である。Armの「Mbed TLS」互換の暗号化/認証に対応しており、マイクロチップ(Microchip、旧Atmel)の「ATECC508A」という暗号化チップにも対応しており、ここに秘密鍵を格納したり、暗号化/復号を行わせたりすることができる。ATECC508Aは安価(マイクロチップの直販サイト「microchip Direct」だと、例えば1個だけ買っても70セント)なので、組み込みも難しくない。
ちなみに統合開発環境については、よくあえうりがちなEclipseベースのものではなく、「Visual Studio Code」へのプラグインという形で「Mongoose OS IDE」が提供されているのはちょっと珍しいが、別にこれで何か問題があるわけではない。
Copyright © ITmedia, Inc. All Rights Reserved.