Cortex-Mシリーズ向けのOS、mbed OSの情報が更新
Linux上でmbed OS向けアプリが動作可に
Cortex-Mシリーズを想定したIoT向けのOS、mbed OSが用意されている。mbed OSは昨年の11月に発表され、今年11月には正式公開される予定だ。
豊富な通信スタックを持ち、イベント駆動型のスケジューラーを装備する。昨年11月の時点では、デバイスで動作するmbed OSと、mbed OSが動作するデバイスを管理するmbed Device Serverという組み合わせで発表されたが、今回のアップデートでは、既存のLinux上などで動作する「mbed Client」という製品も開発中であることがあきらかになった。
これは、LinuxやRTOS(リアルタイムOS)などの上にmbed OS同等の通信スタックやサービスを構築したもので、Linux上などでもmbed OSアプリケーションを動作させられるようになる。これには、Cortex-Mがカバーできないような規模の組み込みデバイスなどに対応するという狙いがあると思われる。
こうした構造なら、Cortex-A系列のプロセッサを使うシステムでもmbed OSアプリケーションが利用できる。組み込み系では、Cortex-M系列のような組み込み向けプロセッサが使われることが多いが、たとえば、HDDレコーダや、テレビ、カーナビといった家電関連機器では、より高性能なCortex-A系列のプロセッサが使われることがある。
さて、このmbed OSについてだが、今回は、セキュリティ関連の情報のアップデートがあった。mbed OSは、IoT向けの複数のプロトコル、物理層に対応しているが、安全な通信を可能にするため、フルセットのTLS(Transport Layer Security。SSLをベースに開発された安全な通信を行うためのプロトコル)を持つ。
これは、組み込み向けに開発されたもので、メモリサイズも小さく、簡易版ではないものだ。同じものをmbed Device Serverやmbed Clientも持っている。これにより、mbed OSアプリケーションが行う通信は、無線LANでもBluetoothでもGigBeeでも同じように保護される。
さらにデバイス内部のセキュリティだが、Cortex-Mプロセッサが持つ、特権アクセス制御(プログラムが持つ特権に応じてアクセスを制御)と、オプションのメモリ保護ユニットによるメモリの分割(パーティション)を使い、アプリケーション側からアクセスできない「プライベート」なプログラム、データ領域を作る。
このプライベートな領域に、サーバーから割り当てられたデバイス識別の情報などを格納することで、デバイスのデッドコピーの作成を防ぎ、外部からの攻撃からの防御を行う。こうした制御を行なう部分を「μvisor」といい、これがmbed OSには組み込まれている。このμvisorは、ハードウェアを制御して、プライベート領域などを作り、パブリック領域にあるプログラムのアクセスから保護する。
また、このほか、ファームウェアのアップデートに関しても、mbed OSにアップデートデータの認証などの仕組みがあり、mbed Device Serverを使って、管理している同種のデバイスのファームウェア管理などができるようだ。
そもそも大規模な組み込み系の機器にLinuxなどが入ったのは、実績のあるネットワークコードを導入するため。IoTでは、さらに規模の小さいデバイスが通信に参加するようになる。このとき、mbed OSは、通信スタックを持つ小規模なOSとして利用されることになると考えられる。