RTOS以上組み込みLinux未満、Google第3のOS「Fuchsia」は大輪の花を咲かせるかリアルタイムOS列伝(20)(2/3 ページ)

» 2022年03月07日 11時00分 公開
[大原雄介MONOist]

スクラッチ開発のOSだが詳細は不明

 さて、スライドではスクリーンショットが幾つか公開されている(図3、4)が、こうした画面表示も標準でサポートしているというあたりは、やはり本連載で紹介してきたRTOSとはちょっと毛色が違う。

図3 図3 これは簡単なアプリケーションの動作中のものだろう。右上の“DEBUG”が分かりやすい[クリックで拡大]
図4 図4 左は設定画面、右はWebブラウザだろうか。左の画面がAndroidっぽいのは、やはりGoogleなのでAndroidにおけるGUIの知見がそのまま使われているといったあたりか?[クリックで拡大]

 主な特徴として示されているのがこちら(図5)。ただAndroidやChrome OSのエコシステムを利用できるとしつつも、OS自身はスクラッチから開発されているのが違うところだ。

図5 図5 アプリケーションとしてLinux VMをサポートしているというのがちょっと特徴的[クリックで拡大]

 ただし、そのスクラッチからの開発の詳細が全く明らかにされていないので、正直よく分からない部分ではある。基になるリアルタイムカーネルのMagentaは、Googleの20%ルール(業務の時間の20%を、直接目の前の業務とは無関係な、将来につながるかもしれない取り組みに費やす)から生まれたらしい。その一方でGoogleは、2016年6月にディープラーニングのGoogle Magentaという、このリアルタイムカーネルとは全く関係ないプロジェクトを立ち上げている。

 この名前の重複を嫌ってか、カーネルの方は2017年9月にZirconに名前を変更している。もっとも、変更されたのは名前だけで、中身は全く変わっていないようであるが。そのMagenta/Zirconの特徴は先に図2で説明したようにセキュリティ、信頼性、モジューを実現するための核である。

 そのZirconの特徴はこんな感じ(図6)。MMU(メモリ管理ユニット)がないということはつまりページング(Paging)はサポートしていないという話で、その意味では実記憶ベースのカーネルである。分類としてはマイクロカーネルの一種という扱いである。64ビットオンリーというあたりは昔のMPUや最近のものでもMCUをサポートするのはかなり厳しいところだが、新しいOSということでの割り切りだろうか。以前はC++に一部アセンブラで記述、となっていたがこのあたりはC++で書き直されたのかもしれない。

図6 図6 MMUがない、しかし64ビットオンリーというあたりがもう非常に珍しいというか、なんというか[クリックで拡大]

 コードは10万行弱で、これはOSのカーネルとしてはそう大きくないレベルである。MCUをターゲットにしたRTOSと比べるとかなり大きいかもしれないが、64ビットベースのCPUを使った機器(それこそGoogle Nestなどがこれに当たる)であればメモリも1G〜2GB程度搭載するのは普通だし、そうした機器であれば問題なくFuchsiaが利用できると考えてよいだろう。

Copyright © ITmedia, Inc. All Rights Reserved.