数日前、Google は大々的な宣伝もなく、現在 Fuchsia プロジェクトと呼ばれている新しいオペレーティング システムの開発者サイト、Fuchsia.dev を公開しました。
Fuchsiaとは何でしょうか?一般の人々が初めてFuchsiaを知ったのは、2016年8月にGitHubプロジェクトが登場した時でした(ただし、リポジトリはその後Google自身のgooglesource.comサイトに移行しました)。Googleはソースコードを公開した以外、Fuchsiaについてほとんど公に語っていません。これは技術的には多くのことを物語っていますが、その背後にある意図についてはほとんど語っていません。
GoogleのFuchsiaに関する公式発表がないため、Fuchsiaに関する計画はすべて憶測の域を出ません。このプロジェクトは、あらゆるデバイスに対応するGoogleの将来のOSとなる可能性があり(実際、その可能性は高いようです)、あるいは中止され、実際に使用されることは決してないかもしれません。
5月に開催されたGoogle IO開発者会議で、同社はFuchsiaについて控えめに言及しました。プラットフォーム&エコシステムチームのヒロシ・ロックハイマー氏は「炉辺談話」の中で次のように述べています。
しかし、まだいくつか手がかりがあります。まずは名前です。Googleは当初からFuchsiaを「ピンク + 紫 == Fuchsia(新しいオペレーティングシステム)」と表現していました。
ピンク + パープル ... GitHub 上の Fuchsia が Google がホストするコードのミラーになりました
Pink は、おそらく Apple の Pink プロジェクトを指していると思われます。Pink プロジェクトは 80 年代に開発されたオブジェクト指向のオペレーティング システムで、将来の Mac OS となることを目的とした IBM との共同プロジェクトである Taligent へと発展しました。
Project Purple は、iPhone の元となったプロジェクトの Apple のコードネームです。
フクシアへの回帰:Androidの次の10年
続きを読む
ロックハイマー氏の発言にもかかわらず、Fuchsiaは次世代Androidであり、現在AndroidやChrome OSが稼働しているデバイスを対象としながら、仮想化などの技術によって既存アプリケーションとの互換性を維持しているという含意がある。公開されたコードは、Google Pixelbook、Acer Switch Alpha 12、Intel NUCといった、典型的なIoTデバイスではなく、フルスペックのコンピューター上でビルド・デプロイしてテストすることができる。
能力ベースのオペレーティングシステム
GoogleはFuchsiaを「ケイパビリティベース」と表現しています。これは正確な意味を持つことが判明しました。Fuchsiaの用語集によると、「ケイパビリティとは、オブジェクト参照と一連の権限を組み合わせた値です。プログラムがケイパビリティを持つ場合、そのケイパビリティを使用して特定のアクションを実行する権限が付与されます。」
さらに、「機能ルーティング」と呼ばれる機能があります。これは、「コンポーネント インスタンス ツリーを介して 1 つのコンポーネントが別のインスタンスに機能を付与する方法」です。
したがって、「機能ベース」とは、各コンポーネントが実行に必要な最小限の権限のみを持つセキュリティ システムを表していると思われます。
FuchsiaはLinuxではない
Fuchsiaはマイクロカーネルベースのオペレーティングシステムで、そのマイクロカーネルはZirconと呼ばれています。サポートされているアーキテクチャはarm64とx64ですが、AMD CPUは現在サポートされていません。これは、AMD CPUが積極的にテストされていないことを意味します。
ドキュメントによれば、新しいオペレーティング システムはファイルシステムと緩く結合されているだけです。
ファイルシステムに対するこのサービスベースのアプローチのさらなる意味は、「チャネル経由でアクセス可能なすべてのリソースは、期待されるプロトコルを実装することによって、ファイルシステムのように見せることができる」ということです。
Fuchsia には、MemFS (メモリ内)、MinFS (従来型)、Blobfs (一度書き込み、その後は読み取り専用に最適化)、および Go 言語で FAT (レガシー ファイル システム) を実装する ThinFS など、多数のファイル システムのサポートが付属します。
FuchsiaグラフィックスとFlutter
FuchsiaはMagmaと呼ばれるGPUドライバアーキテクチャを備えています。このドライバはカーネル内ではなく、特権ユーザー空間プロセスで実行されます。Magmaは、Khronos Groupが管理する高速グラフィックAPIであるVulkan向けに設計されていますが、変換レイヤーを介してOpenGLもサポートする予定です。
Fuchsia には、Escher と呼ばれるレンダラーと、Scenic と呼ばれるシステム コンポジターも含まれています。
Googleに賭ける時が来た?アプリ開発フレームワークFlutterがスマートフォンだけでなくデスクトップにも対応
続きを読む
FuchsiaのUIツールキットは、Googleが開発したクロスプラットフォームライブラリであるFlutterです。AndroidとiOS向けのモバイルアプリケーション構築で既に人気を博しています。Flutterの言語はDartで、JavaScriptまたはネイティブマシンコードにコンパイルできます。
GoogleはFlutter開発に多大なエネルギーを注ぎ込んでおり、当初はクロスプラットフォームモバイル戦略と思われていたものが、今ではその枠を超えているようです。Flutterで構築されたアプリケーションはFuchsia向けに最適化されます。つまり、Flutterへの投資によって、GoogleはFuchsia向けのエコシステムを構築しているのです。
Google PixelbookはFuchsia開発のサポート対象です
フクシアとその応用
Fuchsiaは複数のプログラミング言語をサポートするように設計されています。既にC/C++、Dart、Go、Rust、Pythonをサポートしています。さらに、FIDL(Fuchsia Interface Definition Language)もサポートされています。これは、「チャネル上で一般的に使用されるプロトコルを定義するための言語です。FIDLはプログラミング言語に依存せず、C、C++、Dart、Go、Rustなど、多くの一般的な言語へのバインディングを備えています。このアプローチにより、様々な言語で記述されたシステムコンポーネントがシームレスに連携できるようになります」とドキュメントには記載されています。チャネルは、Zirconが提供するメッセージングトランスポートです。
Fuchsia SDK の FIDL 定義は、「システムのパブリック ABI [アプリケーション バイナリ インターフェース] として考慮される」必要があります。
Fuchsia APIはAPI Councilによって審査されます。Councilは存在しており、その目標とメンバーシップについてはこちらをご覧ください。
「ランナー」という概念もあります。ランナーとは、「他のコンポーネントにランタイム環境を提供するコンポーネント(ELFランナー、Dart AOTランナー、Chromiumウェブランナーなど)のことです。すべてのコンポーネントは起動するためにランナーを必要とします。」これは、FuchsiaがLinuxアプリケーションだけでなく、もちろんPWA(プログレッシブウェブアプリケーション)もサポートすることを示唆しています。ソースコードにはAndroidランタイムも含まれています。
Fuchsia SDKは低レベルであり、コードにはほとんどの開発者が直接使用しないことが記されています。「開発者は、例えば特定の言語ランタイムをサポートする開発環境やエコシステム内で、変換されたバージョンを使用することになります」と書かれています。「このSDKの主な対象者は、Fuchsiaのサポートを追加したい開発環境のメンテナーです。」
Fuchsia の次は何でしょうか?
GoogleがFuchsiaと比べて比較的進んでいることを示す兆候の一つは、ユーザー機能に関する詳細な情報が提供されていることです。その中には、ストーリーと呼ばれる機能も含まれます。ストーリーとは、「人間の活動をカプセル化した、ユーザー向けの論理的なコンテナであり、1つ以上の関連モジュールによって実現されます。ストーリーにより、ユーザーは自然な方法で活動を整理できます。」ストーリーは、ストーリーシェルと呼ばれる視覚的なもので表示されます。
Fuchsia の Web サイトが公開された今、Google は新しいオペレーティング システムについてすぐにさらに多くのことを発表するだろうと私たちは推測している。ただし、Android と Chrome OS の両方に明るい未来があると主張することで、依然として賭けに出ることはないだろう。
Fuchsiaは、Android、Linux、そしてウェブアプリケーションとの互換性に優れた、安全でモジュール化されたオペレーティングシステムとして期待されています。しかし同時に、新しいオペレーティングシステムの成功には多くの障害があり、多くの失敗例があります。Taligentはその好例です。AndroidやChrome OSと同様に、FuchsiaもユーザーをGoogleエコシステムに引き込むことを目指していることは間違いありません。®