ではそのZirconカーネルを利用することでFuchsiaはどんなOSになっているのだろうか。例えばセキュリティに関していえば、以下のように、なかなか徹底的な対策が施された構成になっている。
ただ、ここまで徹底的に分離(Isolation)を施したら、OSとしてどうやって動作するのか? という話だが、当然IPC(プロセス間通信)のスキームは用意されている。それがこちら(図7)だが、Fuchsiaではライブラリの呼び出しすらも広義のIPCとして捉えられており、FIDL(Fuchsia Interface Definition Language)を利用してこれを記述する格好である。
こういうものなので、いわゆるシステムライブラリに相当するものは一切なく、libCですら依存関係として表現されるので、ソフトウェアがそれを必要としない限り提供されないという徹底ぶりである。ただ逆にFIDLできちんと機能とデータ交換のプロトコルが一致した形で記述されていれば、あるコンポーネントを丸っきり別のものに入れ替えることも容易、というのは他のOSでは見ない特徴である(図8)。
ここまでいろいろ厳しいと、Fuchsiaを使ってのアプリケーション開発が結構面倒に思えるのだが、そこはGoogle。Fuchsiaは、モバイルアプリケーションフレームワークの「Flutter」によるアプリケーション開発が可能である。
Flutterは、Android/iOS/Windows/macOS/Linuxという複数のプラットフォームに対し、ソースコードの変更なくそれぞれのプラットフォーム向けのアプリケーションを構築できるツールであり、ここにFuchsiaも含まれているというわけだ。
さてこのFuchsia、先に紹介した記事にあるように、2019年にWebサイトが公開され、2020年12月には一般の開発者もここに参加できるようになっている。本当はその2020年12月以降の数字をお見せしたかったのだが、残念ながら資料が見つからず、2019年までの数字であるが、Commit数(図9)は月間2000回と比較的活発であり、Committerの数も次第に増えている(図10)。
2019年の段階では、やはりGoogleの中の人による開発がメインであるが、中には100以上のCommitを行った外部の開発者もいるようだ(図11)。
直近で言えば、2021年9月のFuchsia F4に加え、2022年1月にはFuchsia F4.1がリリースされたばかりである。今は、x86と64ビットArmのみがターゲット(ただし64ビットArmのサポートは“very limited and not recommended”とある)としてサポートされているが、そのx86も“AMD CPUs are not actively supported”なんてあるあたり、現時点で環境がちゃんとそろっているのはIntelのBroadwell以降のCPUと、後はFuchsiaのエミュレーターを使う(これはきちんと提供されている)しかない。
ただ逆に言えばこれからの伸びしろがある、という言い方もできる(ちなみにAMDとIntelで何が違うのかというと、周辺のドライバのサポートということになる)。ライセンスは、ZirconカーネルがMIT License、User space componentsはBSD LicenseないしApache 2.0 Licenseでの提供になっており、必要なら商用も可能(だからこそNest Hubに実装できたわけだ)である。どちらかといえば、RTOSというよりは組み込みLinuxの代替という扱いかもしれないが、なかなか面白いOSだと思う。
Copyright © ITmedia, Inc. All Rights Reserved.