このプロジェクトについて
Sophiaは、トランザクション駆動型エンジンを中心に構築された実験的なディスプレイサーバーおよびコンポジタであり、ネイティブX11フロントエンドを備えています。中心となるアイデアは、ウィンドウのジオメトリとピクセルが単一の視覚トランザクションとして一緒にコミットされることであり、クライアントが停止した場合、置き換えが準備されるまで最後にコミットされた状態が画面に残ります。
このプロジェクトは、Unixスタイルの責任分担に従います。エンジンは、物理入力、シーングラフ、フレームスケジューリング、視覚コミット、レンダリング、およびディスプレイ出力を所有します。X11フロントエンド(sophia-x-authorityでRustで記述)は、X11接続を受け入れ、リソースを管理し、プロトコルルールを適用し、クライアント状態をエンジントランザクションに変換します。ウィンドウ管理、シェルUI、およびアプリケーション間転送は、バージョン管理されたプロトコルを介して通信する別々のプロセスによって処理されます。
主要コンポーネント:
- Sophia Engine:入力、シーングラフ、ヒットテスト、ダメージトラッキング、フレームスケジューリング、アトミックな視覚コミット、およびスキャンアウトのためのコンポジタ権限。
- Sophia X Server Frontend:X11リソース、セレクション、グラブ、およびプロトコルチェック。ネームスペースチェック済みのサーフェストランザクションを発行します。
- Sophia WM:不透明なレイアウトノードとサーフェスハンドルを使用してsophia_wm_v1を介してレイアウトとフォーカスを提案します。XID、タイトル、PID、またはクリップボードコンテンツへのアクセスはありません。Hagiaはリファレンスウィンドウマネージャです。
- Sophia Shell:sophia_shell_v1を介してパネル、ランチャー、およびスイッチャーを提供し、画面の端に沿ってスペースを要求し、ブローカーを介してサニタイズされたメタデータを受け取ります。Narthexはディスクリプタシェルのリファレンスです。
- Sophia Portals:ネームスペース間でクリップボード共有、ドラッグアンドドロップ、およびスクリーンキャプチャを仲介し、特定の受信者ごとに認証を要求します。
ネームスペース分離は中核的な設計ポイントです。信頼されたアプリケーションはネームスペースを共有し、従来のX11オブジェクトモデルを使用できますが、分離が必要なアプリケーションは別々のネームスペースで実行され、クロスネームスペースのリソースルックアップはフェイルクローズします。ポータルは、いずれかのネームスペースを一般的なアクセスに開放することなく、特定の転送を認証します。
ドキュメントには、Sophia上でウィンドウマネージャ、シェル、またはデスクトップ環境を構築するためのガイド、アーキテクチャ、プロトコル、構成、およびセキュリティ仕様のインデックス、および調査と設計決定の開発ノートが含まれています。現在の作業はtodo.mdで追跡されています。
ステータス:Sophiaは研究プロトタイプです。X11は現在のアプリケーションプロトコルであり、Rustフロントエンドはそのサブセットを実装しています。アプリケーションの互換性とエンドツーエンドの検証はまだ進行中です。Waylandを含む他のプロトコルフロントエンドは将来の作業です。プロジェクトはBSD 3-Clauseライセンスの下で提供されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.