IoT向けOSの新顔、Tockの詳細

2018年4月16日(月)
松下 康之 - Yasuyuki Matsushita
IoT用途の新しいOS「Tock」について、開発者が解説する。

Embedded Linux Conference+OpenIoT Summitでは、新興ベンダーの製品や、まだこれからといったオープンソースプロジェクトも紹介されていた。今回紹介する「Tock」もそのひとつである。TockはStanford University、University of MichiganそしてUC Berkeleyの3つの大学が協力して開発を進めるIoT向けのOSである。Mozillaが開発をリードするRustと言う言語で書かれていることが特徴である。ちなみにChefが開発するHabitatも、Rustで書かれている。

Tockのプロジェクト概要

Tockのプロジェクト概要

プレゼンテーションを行ったのは、StanfordのPh.D. CandidateであるAmit Levy氏だ。Levy氏はSecure Internet of Things Projectのメンバーとして、開発に携わっているという。

プレゼンテーションを行うLevy氏

プレゼンテーションを行うLevy氏

TockがRustで書かれていることは前述したが、Rustを採用した理由はデータ保護(型安全性)にあるようだ。具体的には、変数の型宣言とメモリ管理機能によって意図しない領域のアクセスによる誤動作、異常終了を防ぐ機能だ。これはTockにとっては非常に重要なポイントであるようで、その背景には一つのIoTデバイスで複数のアプリケーションが実装されていることを想定していると思われる。つまりIoTデバイス上であるアプリケーションが異常終了した際に、他のアプリケーションに影響を及ぼさないということを重要視しているということだ。

Tockの特徴を示したスライド

Tockの特徴を示したスライド

Tock自体の特徴としては、「複数のタスクを実行できること」「サードパーティのアプリケーションが実行できること」「省電力のマイクロプロセッサで動くこと」、の3つを掲げている。ここで重要なのは、サードパーティのアプリケーションを安全に実行できることだ。一例として、家庭内のセンサーを複数のアプリケーションが利用することで応用が拡がるということを挙げていた。そのような場合にも、アプリケーション同士が干渉したり影響を及ぼすことがあってはならないというのがTockの理念のようである。型安全性に関してはTockのBlogの投稿で、Rustのコミュニティが運用しているパッケージリポジトリーであるcrates.ioに置かれているソフトウェアの多くが型安全ではない書かれ方をしているとして、このリポジトリーを使うことを断念したというブログの投稿があったぐらいである。

参考:Crates.io Ecosystem Not Ready for Embedded Rust

そして拡張性に関しては、サードパーティのドライバーとカーネルの拡張機能を使えることが重要なデザインポリシーであることを語った。

拡張性を持ちながらセキュアに実行できること

拡張性を持ちながらセキュアに実行できること

Tockのカーネルは、2つの部分に分けて実装されている。一つは「コアカーネル」というOSのコアの部分にあたるもの、そしてもう一つが「Capsule」と呼ばれる部分で、ドライバーなどはこちらに実装されている。Tockは、このCapsuleの部分をRustの型安全なコードで実装することにより信頼性を上げようしている。

だが実際には、コードリポジトリーには型安全を意識せずに書かれたアプリケーションも多数存在しており、結果としてOSとしての基本が揺らいでしまうことを意味しているのだろう。

Tockのアーキテクチャー。青い部分がCapsuleだ

Tockのアーキテクチャー。青い部分がCapsuleだ

次のスライドではCapsuleは「Rustで書かれたコードで、カーネルへリンクされた機能を果たすソフトウェア」として紹介されていた。

Capsuleの概要

Capsuleの概要

Tockのユースケースとしては、Signpostという太陽光発電を電源として稼働するサイネージシステムが紹介された。Signpostは8つのプラガブルなモジュールから構成されており、ここでも複数のアプリケーションがそれぞれのモジュールで実行されるために、アイソレーションと型安全な保護機能が必要だということを念頭に置いていると思われる。

TockのユースケースSignpostの紹介

TockのユースケースSignpostの紹介

Tockはまだ1.0をリリースしたばかりで、現状ではサポートするプロセッサもCoretex-Mベースのものに限られている。OSとしてはまだまだこれからという状況だが、IoTの高機能化に対応した新しいOSとして、今後はメジャーなITベンダーを巻き込んで大きく化けることができるのだろうか。IoTデバイスのコアとなるOSとして成長するためには、ITベンダー及びユースケースとしてユーザーサイドからも支持されることが必要だろう。引き続き注目していきたい。

Tockオフィシャルページ:https://www.tockos.org/

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

IoT/組み込みイベント
第5回

IoT向けOSの新顔、Tockの詳細

2018/4/16
IoT用途の新しいOS「Tock」について、開発者が解説する。
IoT/組み込みイベント
第4回

Arduino Createによって着実に進化を続けるArduinoの最新動向

2018/4/13
Arduino Projectの創始者が登壇し、クラウドサービスのArduino Createなどプロジェクトの動向について語った。
IoT/組み込みイベント
第3回

Intelが推進するEdgeの仮想化、ACRNとは?

2018/4/12
IntelはIoTデバイス上で稼働するハイパーバイザー「ACRN」を紹介した。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています