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で書かれている。
プレゼンテーションを行ったのは、StanfordのPh.D. CandidateであるAmit Levy氏だ。Levy氏はSecure Internet of Things Projectのメンバーとして、開発に携わっているという。
TockがRustで書かれていることは前述したが、Rustを採用した理由はデータ保護(型安全性)にあるようだ。具体的には、変数の型宣言とメモリ管理機能によって意図しない領域のアクセスによる誤動作、異常終了を防ぐ機能だ。これはTockにとっては非常に重要なポイントであるようで、その背景には一つのIoTデバイスで複数のアプリケーションが実装されていることを想定していると思われる。つまりIoTデバイス上であるアプリケーションが異常終了した際に、他のアプリケーションに影響を及ぼさないということを重要視しているということだ。
Tock自体の特徴としては、「複数のタスクを実行できること」「サードパーティのアプリケーションが実行できること」「省電力のマイクロプロセッサで動くこと」、の3つを掲げている。ここで重要なのは、サードパーティのアプリケーションを安全に実行できることだ。一例として、家庭内のセンサーを複数のアプリケーションが利用することで応用が拡がるということを挙げていた。そのような場合にも、アプリケーション同士が干渉したり影響を及ぼすことがあってはならないというのがTockの理念のようである。型安全性に関してはTockのBlogの投稿で、Rustのコミュニティが運用しているパッケージリポジトリーであるcrates.ioに置かれているソフトウェアの多くが型安全ではない書かれ方をしているとして、このリポジトリーを使うことを断念したというブログの投稿があったぐらいである。
参考:Crates.io Ecosystem Not Ready for Embedded Rust
そして拡張性に関しては、サードパーティのドライバーとカーネルの拡張機能を使えることが重要なデザインポリシーであることを語った。
Tockのカーネルは、2つの部分に分けて実装されている。一つは「コアカーネル」というOSのコアの部分にあたるもの、そしてもう一つが「Capsule」と呼ばれる部分で、ドライバーなどはこちらに実装されている。Tockは、このCapsuleの部分をRustの型安全なコードで実装することにより信頼性を上げようしている。
だが実際には、コードリポジトリーには型安全を意識せずに書かれたアプリケーションも多数存在しており、結果としてOSとしての基本が揺らいでしまうことを意味しているのだろう。
次のスライドではCapsuleは「Rustで書かれたコードで、カーネルへリンクされた機能を果たすソフトウェア」として紹介されていた。
Tockのユースケースとしては、Signpostという太陽光発電を電源として稼働するサイネージシステムが紹介された。Signpostは8つのプラガブルなモジュールから構成されており、ここでも複数のアプリケーションがそれぞれのモジュールで実行されるために、アイソレーションと型安全な保護機能が必要だということを念頭に置いていると思われる。
Tockはまだ1.0をリリースしたばかりで、現状ではサポートするプロセッサもCoretex-Mベースのものに限られている。OSとしてはまだまだこれからという状況だが、IoTの高機能化に対応した新しいOSとして、今後はメジャーなITベンダーを巻き込んで大きく化けることができるのだろうか。IoTデバイスのコアとなるOSとして成長するためには、ITベンダー及びユースケースとしてユーザーサイドからも支持されることが必要だろう。引き続き注目していきたい。
Tockオフィシャルページ:https://www.tockos.org/
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- データ処理ライブラリーの並列化/高速化をRustによって実装したWeld
- RISC-Vを手がけるSiFiveのCTOがIoT時代のプロセッサーを語る!
- RustConfで見えてきたRustプロジェクトが最も大事にする価値とは?
- Rustで書かれたシステムのトレーシングを実装するtracing
- アジアの組込系ベンダーを対象に巻き返しを目指すSUSE。その戦略を担当者に訊いた
- ヨーロッパ発のIoTプラットフォームFIWARE、日本での啓蒙活動を開始
- レッドハット、グレープシステムと協同で地に足が着いたIoTソリューションを発表
- OpenIoT Summit開催。「IoTに最も重要なのはビッグデータと機械学習による価値の創造」
- DevRelとアウトプット活動
- ホームネットワーク向けセキュリティをアプライアンスで提供するBitdefender BOXとは