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

IoT用途の新しいOS「Tock」について、開発者が解説する。

松下 康之 - Yasuyuki Matsushita

2018年4月16日 11:00

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/

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30