最近 Wayland1.18プロトコルの新しい安定バージョンのリリースが発表されました、この新しいバージョンは、バージョン1.xのAPIおよびABIレベルで以前のバージョンと互換性がありますが、改善の一部も含まれています。
ウェイランドを知らない人のために、彼らはそれを知っている必要があります これは、複合サーバーとそれと連携するアプリケーションの相互作用のためのプロトコルです。 クライアントはウィンドウを個別にレンダリングし、更新情報を複合サーバーに渡します。複合サーバーは、ウィンドウのオーバーラップや透明度などの考えられるニュアンスを考慮して、個々のアプリケーションウィンドウのコンテンツを組み合わせて最終出力を形成します。
言い換えれば、複合サーバーはAPIを提供しません 個々の要素をレンダリングするため すでに形成されたウィンドウでのみ動作します GTK +やQtなどの高レベルライブラリを使用して二重バッファリングを排除します。
ウェイランドについて
現在、サポート ウェイランドとの直接の仕事のため GTK3 +、Qt 5、SDL、Clutter、EFLにすでに実装されています (啓蒙財団図書館)。
ハードウェアとの相互作用 Wayland / Westonでは、たとえば、グラフィックカードの初期化、ビデオモードの変更(drmモード設定)、メモリ管理(i915の場合はGEM、radeonとnouveauの場合はTTM)、 カーネルレベルのモジュールを介して直接実行できます、これにより、スーパーユーザー特権をバイパスできます。
Weston複合サーバーは、LinuxカーネルDRMモジュールを使用するだけでなく、X11、他のWayland複合サーバー、フレームバッファー、およびRDPでも機能します。 さらに、Androidプラットフォームのグラフィックスタックの最上位で確実に機能するようにプロジェクトが開発されています。
Westonプロジェクトの一環として、複合サーバー展開のXNUMXつが開発されています。
Waylandプロトコルをサポートする他の製品も、複合サーバーとして機能できます。
例えば KWinでWaylandをサポートするための作業が現在進行中です。 現在の形式では、WestonはすでにWaylandプロトコルをテストするためのサンプルセットの範囲を超えており、プラグインを介して機能を取得できます。 さらに、Westonの外部のバックエンドの形でカスタムシェルと高度なウィンドウ管理機能を実装することが提案されています。
Waylandベースの環境で通常のX11アプリケーションを確実に実行するために、XWayland DDX(Device Dependent X)コンポーネントが使用されます。これは、Win32およびOSXプラットフォーム用のXwinおよびXquartzでの作業と組織的に類似しています。
X11アプリケーションの起動のサポートは、Weston複合サーバーに直接統合される予定です。完全なX11アプリケーションに関しては、Xサーバーおよび関連するXWaylandコンポーネントの起動が開始されます。
このアプローチにより、X11アプリケーションを起動するプロセスは、Waylandと直接連携するアプリケーションを起動するユーザーにとって、簡単で見分けがつかなくなります。
Wayland1.18の主な改善点
その目新しさの中で、発表は何に言及していますeMeson構築システムのサポートが追加されました、autotoolsを使用してビルドする機能は引き続き保持されますが、将来のリリースで削除される予定です。
Wayland 1.18のこの新しいバージョンで際立っているもうXNUMXつの変更は、 個別のプロキシオブジェクトに追加された新しいAPI タグベース。 これにより、アプリケーションとツールキットでWayland接続を共有できます。
さらに、 wl_global_remove()関数を追加しました これは、グローバルオブジェクト削除イベントをクリーンアップせずにディスパッチします。
この新機能により、グローバルオブジェクトを削除するときに「レース条件」の発生を排除できます。 排除イベントの受領を確認できなかったため、同様のレースコンディションが発生する可能性があります。 wl_global_remove()関数を使用すると、最初に削除イベントを送信でき、特定の遅延後にのみオブジェクトが削除されます。
さらに ウェイランドサーバータイマーの追跡が保証されました ユーザースペースで、あまりにも多くのファイル記述子の作成を排除します。
ホイールが再発明されなかった唯一のことは、最後のグラフィックマルチサーバーまで複雑すぎます。最後のストローのようには見えません。ここでは、可能な限りX11に満足します。
PS:Debianのすべてを不安定にすることなくSystemVに戻る方法を知っていますか? 前もって感謝します。