Wayland(ディスプレイサーバープロトコル)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ウェイランド
Wayland Logo.svg
Wayland-weston 8.0.0-2-2020-08-04.png
WestonWaylandサーバーのリファレンス実装。
原作者KristianHøgsberg
開発者freedesktop.org etal。
初回リリース2008年9月30日; 13年前[1] (2008-09-30)
安定リリース
ウェイランド:1.19、[2]ウェストン:8.0 [3] / 2021年1月27日; 12ヶ月前 (2021-01-27)
リポジトリ
で書かれているC
オペレーティング・システム公式:Linux
非公式:NetBSDFreeBSDDragonFly BSD [4]
タイプ
ライセンスMITライセンス[5] [6] [7]
Webサイトwayland .freedesktop .org

Waylandは、ディスプレイサーバーとそのクライアント間の通信、およびそのプロトコルのCライブラリ実装を指定する通信プロトコルです。[8] Waylandプロトコルを使用するディスプレイサーバーは、コンポジットウィンドウマネージャーのタスクを追加で実行するため、 Waylandコンポジターと呼ばれます。

Waylandは、 X WindowSystemを最新の安全なものに置き換えることを目的とした無料オープンソースコミュニティ主導プロジェクトとしてKristianHøgsbergが最初に主導したボランティアのグループによって開発されました[9] [10] [11] [12] Linuxおよびその他のUnixライクなオペレーティングシステムより単純なウィンドウシステム。 [8] [13]プロジェクトのソースコードは、パーミッシブフリーソフトウェアライセンスであるMITライセンスの条件の下で公開されています。[13] [5]

その取り組みの一環として、Waylandプロジェクトは、Westonと呼ばれるWaylandコンポジターのリファレンス実装も開発しています。[8]

概要

  1. Linuxカーネルevdevモジュールはイベントを取得し、それをWaylandコンポジターに送信します。
  2. Waylandコンポジターは、シーングラフを調べて、イベントを受信するウィンドウを決定します。シーングラフは画面に表示されているものに対応し、Waylandコンポジターはシーングラフの要素に適用された可能性のある変換を理解します。したがって、Waylandコンポジターは、逆変換を適用することにより、適切なウィンドウを選択し、画面座標をウィンドウローカル座標に変換できます。ウィンドウに適用できる変換のタイプは、入力イベントの逆変換を計算できる限り、コンポジターが実行できることだけに制限されます。
  3. Xの場合と同様に、クライアントはイベントを受信すると、それに応じてUIを更新します。ただし、Waylandの場合、レンダリングはEGLを介してクライアントによって行われ、クライアントは更新された領域を示す要求をコンポジターに送信するだけです。
  4. Waylandコンポジターは、クライアントからのダメージリクエストを収集し、画面を再合成します。次に、コンポジターはioctlを直接発行して、 KMSでページフリップをスケジュールできます。

Wayland Display Serverプロジェクトは、2008年にRedHat開発者のKristianHøgsbergによって開始されました。 [14]

2010年頃から、Linuxデスクトップグラフィックスは、「レンダリングインターフェイスの山...すべてが宇宙の中心にあるXサーバーと通信する」状態から、Linuxカーネルとそのコンポーネント(つまり、ダイレクトレンダリングインフラストラクチャ(ダイレクトレンダリングインフラストラクチャ))に移行しました。 DRI)ダイレクトレンダリングマネージャー(DRM))「真ん中」、「XやWaylandなどのウィンドウシステム...コーナーでオフ」。これは「より柔軟性とパフォーマンスを提供する非常に単純化されたグラフィックシステム」になります。[15]

Høgsbergは最近の多くのプロジェクトが行ったようにXに拡張機能を追加できたかもしれませんが、プロジェクトのFAQで説明されている理由から、「クライアントとハードウェア間のホットパスからXを[プッシュ]する」ことを好みました

現在の違いは、多くのインフラストラクチャがXサーバーからカーネル(メモリ管理、コマンドスケジューリング、モード設定)またはライブラリ(cairo、pixman、freetypefontconfigpangoなど)に移動し、ほとんどないことです。中央サーバープロセスで発生する必要があります。... [Xサーバーには] Xプロトコルを話すと主張するためにサポートしなければならない膨大な量の機能がありますが、誰もこれを使用することはありません。...これには、コードテーブル、グリフラスタライズとキャッシング、XLFDが含まれます(真剣に、XLFD!)、および点刻線、ポリゴン、幅の広い円弧、その他多くの1980年代のスタイルのグラフィックスプリミティブを描画できるコアレンダリングAPI全体。多くの点で、 XRandRXRenderCOMPOSITEなどの拡張機能を追加することでX.orgサーバーを最新の状態に保つことができました... Waylandを使用すると、Xサーバーとそのすべてのレガシーテクノロジーをオプションのコードパスに移動できます。 Xサーバーがコアレンダリングシステムではなく互換性オプションになるまでにはしばらく時間がかかりますが、それを計画していなければ、そこに到達することはできません。

Waylandは、プロトコルとWestonという名前のリファレンス実装で構成されています。このプロジェクトでは、XではなくWaylandにレンダリングするバージョンのGTKQtも開発しています。ほとんどのアプリケーションは、アプリケーションを変更せずに、これらのライブラリの1つを介してWaylandのサポートを取得することが期待されています。

Waylandの初期バージョンはネットワークの透過性を提供していませんが、Høgsbergは2010年にネットワークの透過性が可能であると述べています。[16] 2011年にGoogleSummer of Codeプロジェクト として試みられましたが、成功しませんでした。[17] Adam Jacksonは、「ピクセルスクレイピング」(VNCなど)またはネットワーク経由で「レンダリングコマンドストリーム」(RDPSPICEX11など)を送信することにより、Waylandアプリケーションへのリモートアクセスを提供することを想定しています。[18] 2013年の初めの時点で、Høgsbergは、圧縮された画像を実際のコンポジターに送信するプロキシWaylandサーバーを使用してネットワークの透過性を実験しています。[19] [20] 2017年8月、GNOMEは、Waylandの下で最初のそのようなピクセルスクレイピングVNCサーバーの実装を見ました。[21]

ソフトウェアアーキテクチャ

プロトコルアーキテクチャ

Waylandプロトコルアーキテクチャでは、クライアントとコンポジターは、リファレンス実装ライブラリを使用してWaylandプロトコルを介して通信します。

Waylandプロトコルは、クライアントが画面上のピクセルバッファーの表示を要求するグラフィカルアプリケーションであり、サーバー(コンポジター)がこれらのバッファーの表示を制御するサービスプロバイダーであるクライアント サーバーモデルに従います。

Waylandリファレンス実装は2層プロトコルとして設計されています:[22]

低レベルのレイヤーはCで手動で作成されましたが、高レベルのレイヤーはXML形式で保存されたプロトコルの要素の記述から自動的に生成されます。[24]このXMLファイルのプロトコル記述が変更されるたびに、そのようなプロトコルを実装するCソースコードを再生成して新しい変更を含めることができるため、非常に柔軟で拡張性があり、エラーのないプロトコルが可能になります。

Waylandプロトコルのリファレンス実装は、2つのライブラリに分割されています。Waylandクライアントによって使用されるlibwayland-clientライブラリと呼ばれるWaylandコンポジターによって使用されるライブラリlibwayland-serverです。[23] :57 

プロトコルの概要

Waylandプロトコルは、「非同期オブジェクト指向プロトコル」として説明されています。[23] :9  オブジェクト指向とは、コンポジターによって提供されるサービスが、同じコンポジター上に存在する一連のオブジェクトとして提示されることを意味します。各オブジェクトは、名前、いくつかのメソッド(リクエストと呼ばれる)、およびいくつかの関連するイベントを持つインターフェイスを実装します。すべてのリクエストとイベントには0個以上の引数があり、それぞれに名前とデータ型があります。プロトコルは、要求が同期された応答またはACKを待つ必要がないという意味で非同期であり、回避します。ラウンドトリップ遅延時間とパフォーマンスの向上を実現します。

Waylandクライアントは、オブジェクトのインターフェイスがその要求をサポートしている場合、そのオブジェクトに対して要求(メソッド呼び出し)を行うことができます。クライアントは、そのような要求の引数に必要なデータも提供する必要があります。これは、クライアントがコンポジターにサービスを要求する方法です。次に、コンポジターは、オブジェクトにイベントを発行させることにより、情報をクライアントに送り返します(おそらく引数も使用します)。これらのイベントは、特定の要求への応答としてコンポジターによって発行されるか、内部イベント(入力デバイスからのイベントなど)または状態の変化の発生に応じて非同期的に発行されます。エラー状態は、コンポジターによってイベントとしても通知されます。[23] :9 

クライアントがオブジェクトにリクエストを送信できるようにするには、最初に、そのオブジェクトを識別するために使用するID番号をサーバーに通知する必要があります。[23] :9 コンポジターには、グローバルオブジェクトと非グローバルオブジェクトの2種類のオブジェクトがあります。グローバルオブジェクトは、作成時(および破棄時)にコンポジターによってクライアントにアドバタイズされますが、非グローバルオブジェクトは通常、機能の一部として既に存在する他のオブジェクトによって作成されます。[25]

インターフェイスとそのリクエストおよびイベントは、Waylandプロトコルを定義するコア要素です。プロトコルの各バージョンには、Waylandコンポジターにあると予想される要求とイベントとともに、一連のインターフェースが含まれています。オプションで、Waylandコンポジターは、新しい要求とイベントをサポートする独自のインターフェースを定義および実装し、それによってコアプロトコルを超えて機能を拡張することができます。[23] :10 プロトコルの変更を容易にするために、各インターフェースには、その名前に加えて「バージョン番号」属性が含まれています。この属性により、同じインターフェースのバリアントを区別できます。各Waylandコンポジターは、使用可能なインターフェースだけでなく、それらのインターフェースのサポートされているバージョンも公開します。[23] :12 

Waylandコアインターフェース

Waylandプロトコルの現在のバージョンのインターフェースは、Waylandソースコードのファイルprotocol /wayland.xmlで定義されています。[24]これは、現在のバージョンの既存のインターフェースを、それらの要求、イベント、およびその他の属性とともにリストするXMLファイルです。このインターフェイスのセットは、Waylandコンポジターで実装するために最低限必要なものです。

Waylandプロトコルの最も基本的なインターフェースのいくつかは次のとおりです。[23] :10–12 

  • wl_display  –コアグローバルオブジェクト、Waylandプロトコル自体をカプセル化するための特別なオブジェクト
  • wl_registry  –グローバルレジストリオブジェクト。コンポジターは、すべてのクライアントが利用できるようにしたいすべてのグローバルオブジェクトを登録します。
  • wl_compositor  –コンポジターを表すオブジェクトであり、さまざまなサーフェスを1つの出力に結合する役割を果たします。
  • wl_surface  –場所、サイズ、ピクセルコンテンツによって定義される、画面上の長方形の領域を表すオブジェクト
  • wl_buffer  – wl_surfaceオブジェクトにアタッチされると、表示可能なコンテンツを提供するオブジェクト
  • wl_output  –画面の表示可能領域を表すオブジェクト
  • wl_pointerwl_keyboardwl_touch –ポインタキーボード などのさまざまな入力デバイスを表すオブジェクト
  • wl_seat –マルチシート構成 のシート(入力/出力デバイスのセット)を表すオブジェクト

典型的なWaylandクライアントセッションは、wl_displayオブジェクトを使用してコンポジターへの接続を開くことから始まります。これは、接続を表す特別なローカルオブジェクトであり、サーバー内には存在しません。クライアントは、そのインターフェイスを使用して、すべてのグローバルオブジェクト名が存在するコンポジターからwl_registryグローバルオブジェクトを要求し、クライアントが関心のあるオブジェクトをバインドできます。通常、クライアントは、少なくともwl_compositorオブジェクトをバインドします。より多くのwl_surfaceオブジェクトを使用して、アプリケーションの出力をディスプレイに表示します。[25]

Wayland拡張インターフェース

Waylandコンポジターは、独自の追加インターフェースを定義およびエクスポートできます。[23] :10 この機能は、コアインターフェイスによって提供される基本機能を超えてプロトコルを拡張するために使用され、Waylandプロトコル拡張を実装するための標準的な方法になりました。特定のコンポジターは、カスタムインターフェイスを追加して、特殊な機能または独自の機能を提供することを選択できます。WaylandリファレンスコンポジターであるWestonは、それらを使用して、新しい概念やアイデアのテストベッドとして新しい実験インターフェイスを実装しました。そのうちのいくつかは、後でコアプロトコルの一部になりました(Wayland 1.4 [26]で追加されたwl_subsurfaceインターフェイスなど)。

コアプロトコルへの拡張プロトコル

XDG-シェルプロトコル

XDG-Shellプロトコル( XDGについてはfreedesktop.orgを参照)は、Waylandコンポジター(Westonだけでなく)の下でサーフェスを管理するための拡張された方法です。サーフェスを操作(最大化、最小化、フルスクリーンなど)する従来の方法は、コアWaylandプロトコルの一部でありlibwayland-clientにあるwl_shell _ *()関数を使用することですそれどころか、xdg-shellプロトコルの実装は、Waylandコンポジターによって提供されることになっています。したがって、Westonソースツリーにxdg-shell-client-protocol.hヘッダーがあります。各Waylandコンポジターは、独自の実装を提供することになっています。

2014年6月の時点で、XDG-Shellプロトコルはバージョン管理されておらず、変更される可能性があります。

xdg_shellは、長期的にwl_shellを置き換えることを目的としたプロトコルですが、Waylandコアプロトコルの一部にはなりません。これは、最初は開発場所として使用することを目的とした非安定APIとして開始され、複数のデスクトップシェルで必要とされる機能が定義されると、最終的に安定にすることができます。これは主に、xdg_surfaceとxdg_popupの2つの新しいインターフェイスを提供します。xdg_surfaceインターフェイスは、移動、サイズ変更、最大化などが可能なデスクトップスタイルのウィンドウを実装します。子/親の関係を作成するためのリクエストを提供します。xdg_popupインターフェースは、デスクトップスタイルのポップアップ/メニューを実装します。xdg_popupは、別のサーフェスでは常に一時的であり、暗黙的なグラブもあります。[27]

IVI-シェルプロトコル

IVI-Shellは、Waylandコアプロトコルの拡張機能であり、車載インフォテインメント(IVI)デバイスを対象としています。[28]

レンダリングモデル

Waylandコンポジターとそのクライアントは、EGLを使用してフレームバッファーに直接描画します。XWaylandGlamourを備えたX.Orgサーバー

WaylandプロトコルにはレンダリングAPIは含まれていません。[23] :7  [13] [29] [30] :2 代わりに、Waylandは直接レンダリングモデルに従います。このモデルでは、クライアントはウィンドウの内容をコンポジターと共有可能なバッファーにレンダリングする必要があります。[23] :7 その目的のために、クライアントはすべてのレンダリングを自分で行うか、CairoOpenGLなどのレンダリングライブラリを使用するか、 QtなどのWaylandをサポートする高レベルのウィジェットライブラリのレンダリングエンジンに依存するかを選択できます。 GTKクライアントは、オプションで他の専用ライブラリを使用して、Freetypeなどの特定のタスクを実行することもできます。フォントレンダリング

レンダリングされたウィンドウの内容を含む結果のバッファは、wl_bufferオブジェクトに格納されます。このオブジェクトの内部タイプは、実装に依存します。唯一の要件は、コンテンツデータがクライアントとコンポジターの間で共有可能でなければならないということです。クライアントがソフトウェア(CPU)レンダラーを使用し、結果がシステムメモリに保存されている場合、クライアントとコンポジターは共有メモリを使用して、余分なコピーなしでバッファー通信を実装できます。Waylandプロトコルは、 wl_shmおよびwl_shm_poolインターフェイスを介してこの種の共有メモリバッファをすでにネイティブに提供しています。[23] :11、20-21 この方法の欠点は、コンポジターが表示するために追加の作業(通常は共有データをGPUにコピーするため)を行う必要がある場合があり、グラフィックパフォーマンスが低下することです。

最も一般的なケースは、クライアントがOpenGLOpenGL ESVulkanなどのハードウェア(GPU)アクセラレーションAPIを使用してビデオメモリバッファーに直接レンダリングする場合です。クライアントとコンポジターは、特別なハンドラーを使用してこのGPUスペースバッファーを共有し、それを参照できます。[31]この方法により、コンポジターは、メインメモリバッファーのクライアントからコンポジター、GPUの方法を介して余分なデータのコピーを回避できるため、グラフィックスのパフォーマンスが向上するため、推奨されます。コンポジターは、APIクライアントと同じハードウェアアクセラレーションAPIを使用して、ディスプレイに表示される最終シーンの構成をさらに最適化できます。

共有バッファーでレンダリングが完了すると、Waylandクライアントは、レンダリングされたバッファーの内容をディスプレイに表示するようにコンポジターに指示する必要があります。この目的のために、クライアントは、レンダリングされたコンテンツを格納するバッファーオブジェクトをサーフェスオブジェクトにバインドし、「コミット」要求をサーフェスに送信して、バッファーの効果的な制御をコンポジターに転送します。[22]次に、クライアントは、バッファーを再利用して別のフレームをレンダリングする場合、または別のバッファーを使用して新しいフレームをレンダリングする場合、コンポジターがバッファーを解放するのを待ちます(イベントによって通知されます)。終了したら、この新しいバッファをサーフェスにバインドし、その内容をコミットします。[23] :7 関係するバッファーの数とその管理を含む、レンダリングに使用される手順は、完全にクライアントの制御下にあります。[23] :7 

他のウィンドウシステムとの比較

WaylandとXの違い

WaylandとXの間には、パフォーマンス、コードの保守性、およびセキュリティに関していくつかの違いがあります。[32]

建築
コンポジションマネージャーはXの独立した追加機能ですが、Waylandはディスプレイサーバーとコンポジターを単一の機能として統合します。[33] [29]また、ウィンドウマネージャーのタスクの一部が組み込まれています。これはXでは別個のクライアント側プロセスです。[34]
合成
Xでは合成はオプションですが、Waylandでは必須です。Xでの合成は「アクティブ」です。つまり、コンポジターはすべてのピクセルデータをフェッチする必要があるため、レイテンシが発生します。Waylandでは、合成は「パッシブ」です。つまり、合成者はクライアントから直接ピクセルデータを受信します。[35] :8–11 
レンダリング
Xサーバー自体はレンダリングを実行できますが、クライアントから送信されたレンダリングされたウィンドウを表示するように指示することもできます。対照的に、Waylandはレンダリング用のAPIを公開していませんが、そのようなタスク(フォント、ウィジェットなどのレンダリングを含む)をクライアントに委任します。[33] [29]ウィンドウの装飾は、クライアント側(たとえば、グラフィックツールキットによる)またはサーバー側(コンポジターによる)でレンダリングできます。[36]
安全
Waylandは、すべてのウィンドウの入力と出力を分離し、両方の機密性、整合性、および可用性を実現します。元のX設計には、これらの重要なセキュリティ機能が欠けていました[10] [11] [12]が、それを軽減するためにいくつかの拡張機能が開発されました。[37] [38] [39]また、コードの大部分がクライアントで実行されているため、root権限で実行する必要のあるコードが少なくなり、セキュリティが向上します[10]。 root権限。[40] [41] [42] [43]
プロセス間通信
Xサーバーは、Xクライアント間の基本的な通信方法を提供し、後でICCCM規則によって拡張されます。このXクライアント間通信は、ウィンドウマネージャーによって使用され、Xセッション選択、ドラッグアンドドロップ、およびその他の機能を実装するためにも使用されます。WaylandコアプロトコルはWaylandクライアント間の通信をまったくサポートしていません。対応する機能(必要な場合)は、デスクトップ環境(KDEやGNOMEなど)またはサードパーティ(たとえば、基盤となるオペレーティングシステム)。
ネットワーキング
X Window Systemは、ネットワーク上で実行するためにコアで設計されたアーキテクチャです。Waylandは、それ自体ではネットワークの透過性を提供しません。[13]ただし、コンポジターは、リモート表示を実現するために任意のリモートデスクトッププロトコルを実装できます。さらに、VNCと同様のリモートフレームバッファアクセスを提供するWayland画像ストリーミングと圧縮に関する研究があります。[20]

Xとの互換性

XWaylandは、 Waylandクライアントとして実行されるXサーバーであるため、Waylandコンポジター環境でネイティブX11クライアントアプリケーションを表示できます。[44]これは、 XQuartzがmacOSのネイティブウィンドウシステムでXアプリケーションを実行する方法に似ています。XWaylandの目標は、X Window SystemからWayland環境への移行を容易にし、その間に移植されていないアプリケーションを実行する方法を提供することです。XWaylandはX.OrgServerバージョン1.16にメインライン化されまし[45]

Qt5GTK3などのウィジェットツールキットは、実行時にグラフィカルバックエンドを切り替えることができ[46]、ユーザーはロード時にアプリケーションをXまたはWaylandのどちらで実行するかを選択できます。Qt 5はその効果をもたらす-platformコマンドラインオプション[47]を提供しますが、GTK 3ではユーザーがUnix環境変数を設定することで目的のGDKバックエンドを選択できます[46] [48]GDK_BACKEND

Waylandコンポジター

ウィンドウの典型的な要素WaylandもX11も、ウィンドウ装飾のレンダリングを担当するソフトウェアを指定していません。Westonは、それらがクライアントによって描画されることを要求しますが、KWinはサーバー側の装飾を実装します。[36]
Arch Linuxkwin_waylandでのWayland(コンポジター)上のPlasma 5.23.4(2021年12月)

Waylandディスプレイサーバープロトコルを実装するディスプレイサーバーは、コンポジットウィンドウマネージャーのタスクを追加で実行するため、Waylandコンポジターとも呼ばれます

ウェストン

Westonは、Waylandプロジェクトによって開発されたWaylandコンポジター[59]のリファレンス実装です。これはCで書かれており、 MITライセンスの下で公開されています。 Westonはカーネルモード設定Graphics Execution Manager(GEM)、udevなど、他のUnixのようなオペレーティングでは実装されていないLinuxカーネルの特定の機能に依存しているため、 Linuxオペレーティングシステムのみを公式にサポートしています。システム。[60] Linuxで実行している場合、入力ハードウェアの処理はevdevに依存しますが、バッファーの処理はに依存します汎用バッファ管理(GBM)。しかし、2013年にWestonからFreeBSDへのプロトタイプ移植が発表されました。[61]

Westonは、高帯域幅デジタルコンテンツ保護(HDCP)をサポートしています。[62]

Westonは、GEMを使用して、コンポジターとアプリケーション間でアプリケーションバッファーを共有しています。ドックやパネルなどの一般的なデスクトップ機能用の「シェル」のプラグインシステムが含まれています。[20]クライアントは、ウィンドウの境界線と装飾の描画に責任があります。レンダリングの場合、WestonはOpenGL ES [63]またはpixmanライブラリを使用してソフトウェアレンダリングを実行できます。[64]現在のほとんどのシステムでは、完全なOpenGLライブラリをインストールすると、依存関係としてGLXおよびその他のX Window Systemサポートライブラリもインストールされるため、完全なOpenGL実装は使用されません。 [65]

Westonのリモートアクセスインターフェイスは、2013年10月にRealVNCの従業員によって提案されました[66]

メイナード

メイナード(2017年1月)

Maynardグラフィカルシェルであり、 GNOME ShellがMutterのプラグインとして記述されているのと同様に、Westonのプラグインとしてます。[67]

Raspberry Pi FoundationCollaboraと共同でMaynardをリリースし、パフォーマンスとメモリ消費の改善に取り組んでいます。[68] [69]

libinput

libinputは、複数のWaylandコンポジター間で入力スタックを統合するために作成されました。

入力デバイス(キーボード、ポインター、タッチスクリーンなど)を処理するためのWestonコードは、 libinputと呼ばれる独自の別個のライブラリに分割されました。このライブラリのサポートはWeston1.5で最初に統合されました。[70] [71]

Libinputは、複数のWaylandコンポジターの入力デバイスを処理し、汎用のX.OrgServer入力ドライバーも提供しますこれは、複数のWaylandコンポジターに1つの実装を提供し、カスタム入力コードコンポジターに含める必要のある量を最小限に抑えながら、入力イベントを処理する共通の方法を提供することを目的としています。libinputは、デバイスの検出[必要な説明] ( udevを介して)、デバイスの処理、入力デバイスのイベント処理および抽象化を提供します。[72] [73]

libinputのバージョン1.0はバージョン0.21に続き、タブレット、ボタンセット、タッチパッドジェスチャのサポートが含まれていました。このバージョンは、安定したAPI / ABIを維持します。[74]

GNOME / GTKおよびKDEFrameworks 5 [75]が必要な変更をメインライン化したため、Fedora22はX.OrgのevdevおよびSynapticsドライバーをlibinputに置き換えます。[76]

バージョン1.16では、X.Orgサーバーはxf86 -input-libinputと呼ばれるラッパーの形式でlibinputライブラリのサポートを取得しました[77] [78]

Waylandセキュリティモジュール

Wayland Security Moduleは、 LinuxカーネルにあるLinux SecurityModuleインターフェイスに似た提案です[79]

一部のアプリケーション(特にアクセシビリティに関連するアプリケーション)には、さまざまなWaylandコンポジター間で機能する特権機能が必要です。現在、[いつ?] Waylandのアプリケーションは、通常、スクリーンショットの撮影や入力イベントの挿入などの機密性の高いタスクを実行できません。Wayland開発者は、特権クライアントを安全に処理し、それらの特権インターフェイスを設計するための実行可能な方法を積極的に探しています。

Wayland Security Moduleは、コンポジター内のセキュリティ決定を一元化されたセキュリティ決定エンジンに委任する方法です。[79]

採用

Waylandプロトコルは単純になるように設計されているため、全体的なウィンドウシステムを実現するには、追加のプロトコルとインターフェイスを定義して実装する必要があります。2014年7月の時点で、これらの追加のインターフェースが開発されていました。そのため、ツールキットはすでにWaylandを完全にサポートしていますが、グラフィカルシェルの開発者はWayland開発者と協力して、必要な追加のインターフェイスを作成しています。

デスクトップLinuxディストリビューション

2020年の時点で、ほとんどのLinuxディストリビューションはWaylandをすぐにサポートしますが、注目すべき例は次のとおりです。

  • バージョン25(2016年11月22日リリース)以降のFedoraは、デフォルトのGNOME 3.22デスクトップセッションにWaylandを使用し、グラフィックスドライバーがWaylandをサポートできない場合のフォールバックとしてX.Orgを使用します。[80] Fedoraは、バージョン34(2021年4月27日リリース)以降のKDEデスクトップセッションのデフォルトとしてWaylandを使用します。
  • Ubuntuは、Ubuntu 17.10(Artful Aardvark)のデフォルトとしてWaylandを出荷しています。[81] Waylandはまだ画面共有とリモートデスクトップアプリケーションに問題があり、ウィンドウマネージャーのクラッシュからも回復しないため、UbuntuはUbuntu 18.04LTSのX.Orgに戻りました。[82] [83] Ubuntuはデフォルトで21.04にWaylandを出荷します。[84]
  • Red Hat Enterprise Linuxは、2019年5月7日にリリースされたバージョン8のデフォルトセッションとしてWaylandを出荷しています。[85]
  • Debianは、2019年7月6日にリリースされたバージョン10以降のGNOMEのデフォルトセッションとしてWaylandを出荷しています。[86]
  • Slackware Linuxには、 2020年2月20日にWayland [87]が開発バージョン-currentに含まれ、最終的にはバージョン15.0になります。
  • Manjaroは、Manjaro 20.2(Nibia)のGnomeエディション(2020年11月22日リリース)のデフォルトとしてWaylandを出荷します。[88]

注目すべきアーリーアダプター:

  • RebeccaBlackOSは、ライブUSBDebianベースの[89] Linuxディストリビューションであり、コンピューターのメインオペレーティングシステムに変更を加えることなく、実際のWaylandデスクトップを試す便利な方法を提供します。[90]ウェイランドを紹介するために、早くも2012年から使用されています。[91] [92]

ツールキットのサポート

Waylandをサポートするツールキットには、次のものがあります。

  • ClutterはWaylandを完全にサポートしています。[93] [94] [95]
  • EFLは、選択を除いて、Waylandを完全にサポートしています。[96]
  • GTK3.20はWaylandを完全にサポートしています。[97]
  • Qt 5はWaylandを完全にサポートしており、WaylandコンポジターとWaylandクライアントの両方を作成するために使用できます。
  • WaylandのSDLサポートは2.0.2リリース[98]でデビューし、バージョン2.0.4以降デフォルトで有効になりました。[99]
  • GLFW3.2はWaylandをサポートしています。[100]
  • FreeGLUTは最初のWaylandをサポートしています。[101]

デスクトップ環境

XからWaylandに移植中のデスクトップ環境には、GNOME[102] KDE Plasma 5 [103]、およびEnlightenmentが含まれます。[104]

2015年11月、Waylandを完全にサポートするEnlightenmente20が発表されました。[105] [50] [106] GNOME 3.20は、完全なWaylandセッションを備えた最初のバージョンでした。[107] GNOME 3.22には、GTK、Mutter、およびGNOMEShell全体で大幅に改善されたWaylandサポートが含まれていました。[108] GNOME 3.24は、Waylandの下で独自のNVidiaドライバーのサポートを出荷しました。[109]

以前はKWin4.11が実験的なWaylandサポートを取得していましたが、KDEPlasmaのWaylandサポートはPlasma5のリリースまで延期されました[110] 。[111] Plasmaのバージョン5.4は、Waylandセッションを備えた最初のものでした。[112] 2020年に、KlipperはWaylandに移植され、2020年10月の次の5.20リリースでは、スクリーンキャストと録画を改善することを目標としています。[113]

その他のソフトウェア

Waylandをサポートするその他のソフトウェアには、次のものがあります。

  • Intelligent Input BusはWaylandのサポートに取り組んでおり、Fedora22に対応できる可能性があります。[114]
  • RealVNCは、2014年7月にWayland開発者プレビューを公開しました。[66] [115] [116]
  • Maliitは、Waylandで実行される入力メソッドフレームワークです。[117] [118] [119]
  • kmsconはwltermでWaylandをサポートしています。[120]
  • MesaにはWaylandサポートが統合されています。[121]
  • Eclipseは、2014年のGSoCプロジェクト中にWaylandで実行されるようになりました。 [122]
  • Vulkan WSI(ウィンドウシステムインターフェイス)は、EGLがOpenGLESまたはGLXforOpenGLに対して行うのと同様の目的を果たす一連のAPI呼び出しですVulkan WSIには、初日からWaylandのサポートが含まれています:VK_USE_PLATFORM_WAYLAND_KHR。Vulkanクライアントは、Weston、GENIVI LayerManager、Mutter / GNOME Shell、Enlightenmentなどの変更されていないWaylandサーバーで実行できます。WSIを使用すると、アプリケーションはシステム上のさまざまなGPUを検出し、GPUレンダリングの結果をウィンドウシステムに表示できます。[123]
  • SPURV、Waylandを使用してLinuxディストリビューションで実行するAndroidアプリケーションの互換性レイヤー

モバイルおよび組み込みハードウェア

postmarketOSで実行されているウェストン

Waylandをサポートするモバイルおよび組み込みハードウェアには、次のものが含まれます。

歴史

Waylandは、 EGL上で直接レンダリングを使用します。

以前にAIGLXDRI2に取り組んだLinuxグラフィックスおよびX.Org 開発者であるKristianHøgsbergは、 Red Hatで働いていたときに、2008年に余暇プロジェクトとしてWaylandを開始しました[131] [132] [133] [134]彼が述べた目標は、「すべてのフレームが完璧であるというシステムでした。つまり、アプリケーションがレンダリングを十分に制御できるため、ティアリング、ラグ、再描画またはちらつき。」根底にある概念が「結晶化」したとき、ホグスバーグはマサチューセッツ州ウェイランドの町を運転していたので、その名前が付けられました。 [133] [135]

2010年10月、Waylandはfreedesktop.orgプロジェクトになりました。[136] [137]移行の一環として、以前のGoogleグループは、プロジェクトの議論と開発の中心点として、 wayland-develメーリングリスト に置き換えられました。

Waylandクライアントおよびサーバーライブラリは当初MITライセンス[138]の下でリリースされましたが、リファレンスコンポジターのWestonおよび一部のサンプルクライアントはGNU General PublicLicenseバージョン2を使用していました。[139]その後、すべてのGPLコード、「リファレンス実装と実際のライブラリ間でコードを簡単に移動できるようにするために」MITライセンスの下で再ライセンスされました。[140] 2015年に、Waylandが使用するライセンステキストがわずかに異なる古いバージョンのMITライセンスであることが発見され、ライセンステキストがX.Orgプロジェクトで使用される現在のバージョン( MIT Expat Licenseとして知られる)に更新されました。 )。[5]

Waylandは、 DRI2をサポートするすべてのMesa互換ドライバー[121]と、 Hybrisプロジェクトを介したAndroidドライバーで動作します。[141] [142] [143]

リリース

ウェイランドとウェストンの主要なリリース[144]
バージョン 日にち 主な特徴
ウェイランド ウェストン
Old version, no longer maintained: 0.85 2012年2月9日[145] 最初のリリース。
Old version, no longer maintained: 0.95 2012年7月24日[146] APIの安定化を開始しました。
Old version, no longer maintained: 1.0 2012年10月22日[147] [148] 安定したwayland-clientAPI。
Old version, no longer maintained: 1.1 2013年4月15日[149] [150] ソフトウェアレンダリング。[64] FBDEV、RDPバックエンド。
Old version, no longer maintained: 1.2 2013年7月12日[151] [152] 安定したwayland-serverAPI。 カラーマネジメント。地下。RaspberryPiバックエンド。
Old version, no longer maintained:1.3 2013年10月11日[153] より多くのピクセルフォーマット。言語バインディングのサポート。 libhybrisを介したAndroidドライバーのサポート
Old version, no longer maintained:1.4 2014年1月23日[26] 新しいwl_subcompositorおよびwl_subsurfaceインターフェース。 複数のフレームバッファ形式。ルートレスウェストンのログインサポート。
Old version, no longer maintained:1.5 2014年5月20日[70] libinput。フルスクリーンシェル。
Old version, no longer maintained:1.6 2014年9月19日[154] デフォルトではlibinput。
Old version, no longer maintained:1.7 2015年2月14日[155] [156] Waylandプレゼンテーション拡張とサーフェスロールのサポート。IVIシェルプロトコル。
Old version, no longer maintained: 1.8 2015年6月2日[157] [158] コアプロトコルと生成されたプロトコルのヘッダーを分離しました。 スケジュールを再描画します。名前付き出力。出力変換。表面撮影API。
Old version, no longer maintained: 1.9 2015年9月21日[159] [160] ライセンスを更新しました。 ライセンスを更新しました。新しいテストフレームワーク。トリプルヘッドDRMコンポジター。linux_dmabuf拡張。
Old version, no longer maintained: 1.10 2016年2月17日[161] [162] ドラッグアンドドロップ機能、グループ化されたポインタイベント。[163] ビデオ4Linux 2、タッチ入力、デバッグの改善。[164]
Old version, no longer maintained: 1.11 2016年6月1日[165] [166] 新しいバックアップロードルーチン、新しいセットアップロジック。 プロキシラッパー、共有メモリの変更、Doxygenで生成されたHTMLドキュメント。
Old version, no longer maintained: 1.12 2016年9月21日[167] [168] デバッグサポートが改善されました。 libwestonおよびlibweston-デスクトップ。ポインタのロックと閉じ込め。相対ポインタのサポート。
Old version, no longer maintained:1.13 2017年2月24日[169] [170] WestonのABIが変更されたため、新しいバージョンの名前は1.13.0ではなく2.0.0になりました。
Old version, no longer maintained:1.14 2017年8月8日[171] [172] Weston3.0.0も同時にリリースされました。
Old version, no longer maintained:1.15 2018年4月9日[173] [174] Weston4.0.0も同時にリリースされました。
Old version, no longer maintained:1.16 2018年8月24日[175] [176] Weston5.0.0も同時にリリースされました。
Old version, no longer maintained:1.17 2019年3月20日[177] [178] Weston6.0.0も同時にリリースされました。
Old version, no longer maintained:1.18 2019年8月2日[179] [180] Weston7.0.0は1か月後にリリースされました。
Current stable version: 1.19 2021年1月27日[2]
ウェストン8 [181] 2020年1月24日
ウェストン9 [182] 2020年9月4日
Legend:
古いバージョン
古いバージョン、まだ維持されています
最新バージョン
Latest preview version
将来のリリース

も参照してください

参考文献

  1. ^ Høgsberg、クリスチャン(2008年9月30日)。「初期コミット」2020年1月3日取得
  2. ^ a b Ser、Simon(2021年1月27日)。「[ANNOUNCE] wayland1.19.0」(メーリングリスト)2021年1月27日取得
  3. ^ Ser、Simon(2020年1月24日)。"[ANNOUNCE] weston 8.0.0"(メーリングリスト)2020年2月12日取得
  4. ^ 「DragonFlyBSDに移植されたWayland&Westonコンポジター-Phoronix」www.phoronix.com
  5. ^ a b c ハリントン、ブライス(2015年9月15日)。"[ANNOUNCE]ウェイランド1.8.93"freedesktop.org(メーリングリスト)。
  6. ^ "wayland / wayland:root / COPYING"freedesktop.org 2015年6月14日取得
  7. ^ Larabel、Michael(2015年6月10日)。「WaylandのMITライセンスは更新/修正される」Phoronix.com 2016年4月17日取得
  8. ^ a bc 「ウェイランドウェイランドプロジェクト2016年5月9日取得
  9. ^ Sengar、Shivam Singh(2018年6月16日)。「Waylandv / s Xorg:それらはどのように類似していてどのように異なっているか」secjuice 2020年9月10日取得
  10. ^ a b c ケリスク、マイケル(2012年9月25日)。「XDC2012:グラフィックスタックセキュリティ」LWN.net 2016年4月13日取得
  11. ^ a b ペレス、マーティン(2014年2月21日)。「Waylandコンポジター-特権クライアントを処理する理由と方法!」2016年4月17日取得
  12. ^ a b Graesslin、Martin(2015年11月23日)。「プラズマ/ウェイランドのセキュリティを見て」2016年4月18日取得
  13. ^ a b c de 「ウェイランド FAQ ウェイランドプロジェクト2016年5月9日取得
  14. ^ Michael Larabel(2009年5月20日)。「Waylandディスプレイサーバーの状態」マイケル・ララベル
  15. ^ コーベット、ジョナサン(2010年11月5日)。「LPC:X後の生活」LWN.net 2016年4月17日取得
  16. ^ Høgsberg、クリスチャン(2010年11月9日)。「ネットワーク透過性の議論」WaylandはXのようなリモートレンダリングAPIではありませんが、ネットワークの透過性を排除するものではありません。クライアントは共有バッファーにレンダリングしてから、コンポジター(...)に何を変更したかを通知する必要があります。コンポジターは、その領域の新しいピクセルをネットワーク経由で送信できます。 Waylandプロトコルはすでに激しく非同期であるため、少しのネットワークラグを適切に処理できるはずです。リモートのフルスクリーンビデオ表示やゲームはうまく機能しませんが、[しかし]それをうまく透過的に処理する他のディスプレイシステムは知りません。
  17. ^ Larabel、Michael(2011年8月18日)。「リモートWaylandサーバープロジェクト:それはまだ機能しますか?」Phoronix.com 2016年4月17日取得
  18. ^ ジャクソン、アダム(2010年11月9日)。「[Re:] UbuntuがWaylandに向かって移動しています」
  19. ^ ストーン、ダニエル(2013年1月28日)。ウェイランドとX (スピーチ)の背後にある実話。linux.conf.au2013。キャンベラ2016年4月13日取得
  20. ^ a b c ウィリス、ネイサン(2013年2月13日)。「LCA:ウェイランドの道」LWN.net 2016年5月19日取得
  21. ^ アレクサンダーセン、ダニエル。「WaylandのGNOMEでカムバックするように設定されたリモートデスクトップ機能」Ctrl.blog 2017年8月29日取得
  22. ^ a b "The HelloWaylandチュートリアル"2014年7月8日2014年7月25日取得
  23. ^ a b c d e f g h i j k l mnoHøgsberg クリスチャン 「WaylandDocumentation1.3」(PDF)2016年3月16日取得
  24. ^ abHøgsberg クリスチャン。"protocol /wayland.xml"FreeDesktop.org 2014年7月25日取得
  25. ^ a b Paalanen、Pekka(2014年7月25日)。「Waylandプロトコル設計:オブジェクトの寿命」2016年4月6日取得
  26. ^ abHøgsberg クリスチャン(2014年1月24日)。「WaylandandWeston1.4がリリースされました」wayland-develメーリングリスト
  27. ^ "xdg_shell:新しいシェルプロトコルの追加"freedesktop.org2013年12月3日2014年6月14日取得
  28. ^ 「GENIVI / wayland-ivi-extension」GitHub2021年11月17日。
  29. ^ a b c Vervloesem、Koen(2012年2月15日)。「FOSDEM:Waylandディスプレイサーバー」LWN.net 2016年5月9日取得
  30. ^ バーンズ、ジェシー。「ウェイランド入門」(PDF)インテルオープンソーステクノロジーセンター2016年4月18日取得レンダリングAPIは含まれていません–クライアントは必要なものを使用し、サーバーにバッファーハンドルを送信します
  31. ^ Paalanen、Pekka(2012年11月21日)。「WaylandGLクライアントと独自の組み込みプラットフォームのサポートについて」2016年4月6日取得バッファー共有は、バッファーのハンドルを作成し、そのハンドルを別のプロセスに渡すことで機能します。別のプロセスは、そのハンドルを使用して、GPUが同じバッファーに再度アクセスできるようにします。
  32. ^ グリフィス、エリック(2013年6月7日)。「ウェイランドの状況:X対ウェイランドについての事実」Phoronix.comp。2 2016年4月17日取得
  33. ^ a b "ウェイランドアーキテクチャ"ウェイランドプロジェクト2016年5月9日取得
  34. ^ エッジ、ジェイク(2012年4月11日)。「LFCS2012:X andWayland」LWN.net 2016年4月17日取得
  35. ^ 「例によるWayland / Xコンポジターアーキテクチャ:EnlightenmentDR19」(PDF)2016年4月18日取得
  36. ^ a b Graesslin、Martin(2013年2月7日)。「クライアントサイドウィンドウの装飾とウェイランド」2016年4月17日取得
  37. ^ 「X.Orgセキュリティ」X.OrgFoundation 2017年7月2日取得Xサーバーには、単純な信頼できる/信頼できない接続モデルのサポートを提供する拡張機能SECURITYが長い間含まれています。
  38. ^ Wiggins、David P.(1996年11月15日)。「セキュリティ拡張仕様」Xコンソーシアムスタンダード2017年7月2日取得
  39. ^ Walsh、Eamon F.(2009)。「Xアクセス制御拡張仕様」2017年7月2日取得
  40. ^ 「Debianはデフォルトで非ルートX.Orgサーバーに移動します-Phoronix」www.phoronix.com
  41. ^ 「非ルートXorg-GentooWiki」wiki.gentoo.org
  42. ^ 「X / Rootless-UbuntuWiki」wiki.ubuntu.com
  43. ^ 「1078902–ルート権限のないXorg」bugzilla.redhat.com
  44. ^ 「Wayland(XWayland)の下のXクライアント」ウェイランドプロジェクト2014年7月18日取得
  45. ^ 「発表:xorg-server1.16.0」freedesktop.org2014年7月17日。
  46. ^ abHøgsberg クリスチャン(2011年1月3日)。「GTKの複数のバックエンド」2016年3月10日取得
  47. ^ 「QtWayland」QtWiki 2016年3月9日取得
  48. ^ 「GTKでの完全なWaylandサポート」GNOMEwiki 2016年3月10日取得
  49. ^ エッジ、ジェイク(2013年7月31日)。「Jolla:Sailfish OS、Qt、およびオープンソース」LWN.net 2016年4月17日取得
  50. ^ a b Larabel、Michael(2015年11月30日)。「Enlightenment0.20は完全なWaylandサポートとより良いFreeBSDサポートで到着します」Phoronix.com 2016年4月17日取得
  51. ^ 「ウェイランド」www.enlightenment.org
  52. ^ 「プラズマ5.21」KDEコミュニティ2021年2月16日2021年3月9日取得
  53. ^ 「/ sources / mutter-waylandのインデックス」download.gnome.org
  54. ^ 「WesterosGithubミラー」GitHub2016年9月19日取得
  55. ^ "swaywm / wlroots"GitHub 2018年10月28日取得
  56. ^ "swaywm / sway"GitHub 2018年10月28日取得
  57. ^ 「揺れる」swaywm.org 2018年12月20日取得
  58. ^ 「gamescope」GitHub 2021年7月26日取得
  59. ^ 「README」cgit.freedesktop.org
  60. ^ 「WaylandソースコードリポジトリからのREADMEファイル」freedesktop.org
  61. ^ Larabel、Michael(2013年2月16日)。「WaylandがFreeBSDへの移植プロセスを開始しました」Phoronix.com 2016年4月17日取得
  62. ^ 「drm-backend(!48)にコンテンツ保護サポートを追加する・リクエストをマージする・wayland / weston」GitLab 2019年10月27日取得
  63. ^ Paalanen、Pekka(2012年3月10日)。「EGLはWaylandスタックで何をしますか」2016年5月19日取得
  64. ^ a b Larabel、Michael(2013年1月6日)。「WaylandのWeston用のソフトウェアベースのPixmanレンダラー」Phoronix.com 2016年4月17日取得
  65. ^ Høgsberg、クリスチャン(2010年12月9日)。「Blender3Dとカーソルクランプ」
  66. ^ a b "[RFCweston]リモートアクセスインターフェイスモジュール"freedesktop.org2013年10月18日。
  67. ^ 「メイナード発表」2014年4月16日2014年4月16日取得
  68. ^ ab 「ラズベリーパイケーススタディ」 。Collabora 2013年8月9日取得
  69. ^ a b "ウェイランドプレビュー"ラズベリーパイ2013年8月9日取得
  70. ^ abHøgsberg クリスチャン(2014年5月20日)。「WaylandandWeston1.5.0がリリースされました」wayland-develメーリングリスト
  71. ^ Ådahl、Jonas(2013年11月12日)。「[RFC]共通入力デバイスライブラリ」Waylandメーリングリスト。
  72. ^ "libinput"Freedesktop.org 2014年5月21日取得
  73. ^ Hutterer、Peter(2014年10月8日)。入力スタックをlibinput(Speech)で統合します。X.Org Developer Conference 2014.Bordeaux 2020年1月14日取得
  74. ^ Hutterer、Peter(2015年2月22日)。"libinput:1.0への道"
  75. ^ 「タッチパッドKCMに追加されたLibinputサポート」2015年2月22日。
  76. ^ Goede、Hans de(2015年2月23日)。「LibinputがF-22ワークステーションインストールのデフォルトのxorgドライバーとして有効になりました」
  77. ^ Hutterer、Peter(2014年9月24日)。「libinput-WaylandコンポジターとX.Orgドライバーの一般的な入力スタック」2016年4月17日取得
  78. ^ de Goede、ハンス(2015年2月1日)。「xorg入力の置き換え-libinputを使用したドライバー」(PDF)2016年4月18日取得
  79. ^ a b Dodier-Lazaro、Steve; ペレス、マーティン(2014年10月9日)。Waylandベースのデスクトップ環境のセキュリティ:特権クライアント、承認、認証、サンドボックス!(スピーチ)。X.Org Developer Conference 2014.Bordeaux 2016年4月18日取得
  80. ^ 「Changes / WaylandByDefault-Fedora ProjectWiki」fedoraproject.org 2020年11月9日取得
  81. ^ 「Ubuntu17.10のリリースノート」カノニカル。
  82. ^ 「Ubuntu18.04は歯の長いXorgに戻ります」
  83. ^ 「デフォルトでXorgを使用するBionicBeaver 18.04LTS」カノニカル。
  84. ^ 「Ubuntu21.04はここにあります」CanonicalUbuntuブログ2021年6月14日取得{{cite web}}: CS1 maint: url-status (link)
  85. ^ 「RedHatEnterprise Linux8.0のリリースノート」RedHatカスタマーポータル2020年12月25日取得
  86. ^ 「NewInBuster-DebianWiki」wiki.debian.org 2019年7月15日取得
  87. ^ 「SlackwareChangeLogs」SlackwareLinux 2020年2月26日取得
  88. ^ 「Manjaro20.2Nibiaがリリースされました」2020年12月3日2020年12月3日取得
  89. ^ 「WaylandLiveOSは現在Debianテストに基づいており、KDEWaylandサポートが機能しています」フォロニックス。
  90. ^ 「RebeccaBlackOS」Sourceforge。
  91. ^ 「レベッカブラックでウェイランドを試してみる」フォロニックス。
  92. ^ 「新しいWaylandLiveCDには多くの機能があります」フォロニックス。
  93. ^ Bassi、Emmanuele(2011年1月31日)。「発表:クラッター1.6.0(安定)」clutter-announce(メーリングリスト)。
  94. ^ ブラッドフォード、ロブ(2011年12月16日)。「Clutter&CoglWaylandアップデート」2016年3月9日取得Clutterクライアント側のサポートは基本的に完全です
  95. ^ Bassi、Emmanuele(2013年9月24日)。「発表:クラッター1.16.0(安定)」clutter-announce(メーリングリスト)。
  96. ^ 「ウェイランド–啓蒙主義」2013年3月29日にオリジナルからアーカイブされました2013年3月6日取得
  97. ^ 「GTKロードマップ」2016年3月8日取得
  98. ^ ランティンガ、サム(2014年3月8日)。「SDL2.0.2がリリースされました!」SDLプロジェクト2014年3月18日取得
  99. ^ Larabel、Michael(2016年1月9日)。「SDL2.0.4は先週、Wayland&Mirがデフォルトで静かにリリースされました」Phoronix.com 2016年4月17日取得
  100. ^ ベルグルンド、カミラ(2014年4月8日)。「Waylandの実装・Issue#106・glfw / glfw・GitHub」GitHub2014年8月14日取得
  101. ^ 「FreeGLUT:最初のWaylandサポートを実装する」GitHub
  102. ^ 「GNOMEイニシアチブ-ウェイランド」GNOMEWiki 2016年3月8日取得
  103. ^ 「KWin / Wayland」KDEコミュニティWiki 2016年3月8日取得
  104. ^ 「啓発-ウェイランド」Enlightenment.org 2016年3月8日取得
  105. ^ 「EnlightenmentDR0.20.0リリース」Enlightenment.org 2016年3月8日取得
  106. ^ 「ウェイランドの啓蒙」FOSDEM.org 2016年3月8日取得
  107. ^ 「ReleasePlanning / FeaturesPlans」GNOMEプロジェクト2015年5月31日取得
  108. ^ 「GNOME3.22のエキサイティングな機能/改善点を見てください」フォロニックス。
  109. ^ 「GNOMELandsMainline NVIDIA Wayland Support UsingEGLStreams」フォロニックス。
  110. ^ 「ウェイランドへのプラズマの道」2014年7月25日。
  111. ^ Larabel、Michael(2013年6月14日)。「KDE4.11ベータ版がリリースされ、Waylandで動作します」Phoronix.com 2016年4月17日取得
  112. ^ Graesslin、Martin(2015年6月29日)。「4年後」2016年4月17日取得
  113. ^ Dawe、Liam。「KDEPlasma5.20は、Waylandなどでの画面記録を適切にサポートします」gameonlinux.com 2020年9月10日取得
  114. ^ Schaller、クリスチャン(2014年7月3日)。「FedoraアップデートのWayland」blogs.gnome.org 2016年4月17日取得
  115. ^ 「VNC®Wayland開発者プレビュー」2014年7月8日。2014年7月14日のオリジナルからアーカイブ。
  116. ^ 「RealVNCWayland開発者プレビューメール」freedesktop.org2014年7月9日。
  117. ^ 「Maliitステータスアップデート」ポスタラス。2013年4月2日。2013年5月17日のオリジナルからアーカイブ2013年10月14日取得
  118. ^ 「その他のMaliitキーボードの改善:QtQuick2」マレーのブログ。2013年4月2日2013年10月14日取得
  119. ^ 「ウェイランドの下のマリット」2013年6月11日にオリジナルからアーカイブされました2013年9月14日取得
  120. ^ 「wlterm」Freedesktop.org 2014年7月8日取得
  121. ^ a b Hillesley、p。3.3。
  122. ^ 「EclipseはWaylandで実行されるようになりました」2014年8月18日。
  123. ^ ストーン、ダニエル(2016年2月16日)。「Waylandの初日サポートでリリースされたVulkan1.0仕様」
  124. ^ 「WaylandバックエンドDRM | IVIレイヤー管理」GENIVIアライアンス。2014年2月1日にオリジナルからアーカイブされました2013年7月15日取得
  125. ^ 「最初のJollaスマートフォンはWaylandで動作します」LinuxG.net。2013年7月14日2013年10月8日取得
  126. ^ VDVsx [@VDVsx](2013年7月13日)。「#sailfishosの主要コンポーネント図。#Qt5 #Wayland #JollaHQ #Akademy」(ツイート)–Twitter経由。
  127. ^ Jolla [@JollaHQ](2013年7月13日)。「@ faenil @ PeppeLaKappa @VDVsx私たちの最初のJollaはウェイランドで出荷されます、はい」(ツイート)–Twitter経由。
  128. ^ 「IVI / IVIセットアップ」TizenWiki 2013年4月8日取得
  129. ^ VanCutsem、Geoffroy(2013年7月10日)。「[IVI] Tizen IVI3.0-M1がリリースされました」IVI(メーリングリスト)。
  130. ^ アマデオ、ロン(2017年5月12日)。「SamsungZ4はTizenの新しいフラッグシップスマートフォンです」ArsTechnica2017年5月13日取得
  131. ^ Høgsberg、クリスチャン(2008年11月3日)。「時期尚早の宣伝は宣伝がないよりはましだ」2016年4月6日取得
  132. ^ 「インタビュー:KristianHøgsberg」FOSDEMアーカイブ2012年1月29日2016年3月8日取得
  133. ^ a b Hillesley、Richard(2012年2月13日)。「ウェイランド-Xを超えて」HオープンハイスメディアUK 2016年3月8日取得
  134. ^ Høgsberg、クリスチャン。「Wayland–Linux用の新しいディスプレイサーバー」Linux Plumbers Conference、2009年。2017年8月11日のオリジナルからアーカイブ。
  135. ^ Jenkins、Evan(2011年3月22日)。「XからWaylandへのLinuxグラフィックスタック」ArsTechnica 2016年4月17日取得
  136. ^ Larabel、Michael(2010年10月29日)。「WaylandはFreeDesktop.orgプロジェクトになります」Phoronix.com 2016年4月17日取得
  137. ^ Høgsberg、クリスチャン(2010年10月29日)。「freedesktop.orgへの移動」2013年7月31日取得
  138. ^ Høgsberg、クリスチャン(2008年12月3日)。「Waylandは現在MITライセンスの下にあります」wayland-display-server(メーリングリスト)。
  139. ^ Høgsberg、クリスチャン(2010年11月22日)。「ウェイランドライセンスの説明」wayland-devel(メーリングリスト)。
  140. ^ Høgsberg、クリスチャン(2011年9月19日)。「ライセンスの更新」wayland-devel(メーリングリスト)。
  141. ^ Munk、Carsten(2013年4月11日)。「GlibcベースのシステムでAndroidGPUドライバーを利用するWayland、パート1」Merプロジェクト2013年7月3日取得
  142. ^ Munk、Carsten(2013年6月8日)。「GlibcベースのシステムでAndroidGPUドライバーを利用するWayland、パート2」Merプロジェクト2013年7月3日取得
  143. ^ Larabel、Michael(2013年4月11日)。「JollaはAndroidGPUドライバーの上にWaylandをもたらします」Phoronix.com 2016年4月17日取得
  144. ^ 「ウェイランド」Wayland.freedesktop.org 2013年7月15日取得
  145. ^ Høgsberg、クリスチャン(2012年2月9日)。「[ANNOUNCE] WaylandとWeston0.85.0がリリースされました」wayland-develメーリングリスト
  146. ^ Høgsberg、クリスチャン(2012年7月24日)。「ウェイランドとウェストン0.95.0がリリースされました」wayland-develメーリングリスト
  147. ^ Høgsberg、クリスチャン(2012年10月22日)。「ウェイランドとウェストン1.0」wayland-develメーリングリスト
  148. ^ Scherschel、Fabian(2012年10月23日)。「ウェイランドの1.0マイルストーンはグラフィックプロトコルを修正します」HオープンハイスメディアUK 2016年4月17日取得
  149. ^ Larabel、Michael(2013年4月16日)。「Wayland1.1がWeston1.1で正式にリリースされました」Phoronix.com 2016年4月17日取得
  150. ^ Høgsberg、クリスチャン(2013年4月15日)。「1.1リリース済み」wayland-develメーリングリスト
  151. ^ Larabel、Michael(2013年7月13日)。「Wayland1.2.0がリリースされ、WestonCompositorが参加しました」Phoronix.com 2016年4月17日取得
  152. ^ Høgsberg、クリスチャン(2013年7月12日)。「ウェイランドとウェストン1.2.0がリリースされました」wayland-develメーリングリスト
  153. ^ Høgsberg、クリスチャン(2013年10月11日)。「WaylandとWeston1.3のリリースがリリースされました」wayland-develメーリングリスト
  154. ^ Paalanen、Pekka(2014年9月19日)。「ウェイランドとウェストン1.6.0がリリースされました」wayland-develメーリングリスト
  155. ^ ハリントン、ブライス(2015年2月14日)。"[ANNOUNCE]ウェイランド1.7.0"wayland-develメーリングリスト
  156. ^ ハリントン、ブライス(2015年2月14日)。"[ANNOUNCE] weston1.7.0"wayland-develメーリングリスト
  157. ^ ハリントン、ブライス(2015年6月2日)。"[ANNOUNCE]ウェイランド1.8.0"wayland-develメーリングリスト
  158. ^ ハリントン、ブライス(2015年6月2日)。"[ANNOUNCE] weston1.8.0"wayland-develメーリングリスト
  159. ^ ハリントン、ブライス(2015年9月21日)。"[ANNOUNCE]ウェイランド1.9.0"wayland-devel(メーリングリスト)。
  160. ^ ハリントン、ブライス(2015年9月21日)。"[ANNOUNCE] weston1.9.0"wayland-devel(メーリングリスト)。
  161. ^ ハリントン、ブライス(2016年2月17日)。"[ANNOUNCE]ウェイランド1.10.0"wayland-devel(メーリングリスト)。
  162. ^ ハリントン、ブライス(2016年2月17日)。"[ANNOUNCE] weston1.10.0"wayland-devel(メーリングリスト)。
  163. ^ Nestor、Marius(2016年2月18日)。「Wayland1.10ディスプレイサーバーが正式にリリースされました。Wayland1.11は2016年5月に到着します」ソフトペディア
  164. ^ Larabel、Michael(2016年2月16日)。「ウェイランド1.10が正式にリリースされました」Phoronix.com 2016年4月17日取得
  165. ^ ハリントン、ブライス(2016年6月1日)。"[ANNOUNCE]ウェイランド1.11.0"wayland-devel(メーリングリスト)2016年6月1日取得
  166. ^ ハリントン、ブライス(2016年6月1日)。"[ANNOUNCE] weston1.11.0"wayland-devel(メーリングリスト)2016年6月1日取得
  167. ^ ハリントン、ブライス(2016年9月21日)。"[ANNOUNCE]ウェイランド1.12.0"wayland-devel(メーリングリスト)2016年9月21日取得
  168. ^ ハリントン、ブライス(2016年9月21日)。"[ANNOUNCE] weston1.12.0"wayland-devel(メーリングリスト)2016年9月21日取得
  169. ^ ハリントン、ブライス(2017年2月21日)。"[ANNOUNCE]ウェイランド1.13.0"wayland-devel(メーリングリスト)2017年4月30日取得
  170. ^ ハリントン、ブライス(2017年2月25日)。"[ANNOUNCE] weston2.0.0"wayland-devel(メーリングリスト)2017年4月30日取得
  171. ^ ハリントン、ブライス(2017年8月8日)。"[ANNOUNCE]ウェイランド1.14.0"wayland-devel(メーリングリスト)2018年3月25日取得
  172. ^ ハリントン、ブライス(2017年8月8日)。"[ANNOUNCE] weston3.0.0"wayland-devel(メーリングリスト)2018年3月25日取得
  173. ^ フォアマン、デレク(2018年4月9日)。"[ANNOUNCE]ウェイランド1.15.0"wayland-devel(メーリングリスト)2018年4月15日取得
  174. ^ フォアマン、デレク(2018年4月9日)。"[ANNOUNCE] weston4.0.0"wayland-devel(メーリングリスト)2018年4月15日取得
  175. ^ フォアマン、デレク(2018年8月24日)。"[ANNOUNCE]ウェイランド1.16.0"wayland-devel(メーリングリスト)2018年11月30日取得
  176. ^ フォアマン、デレク(2018年8月24日)。"[ANNOUNCE] weston5.0.0"wayland-devel(メーリングリスト)2018年11月30日取得
  177. ^ フォアマン、デレク(2019年3月28日)。「[ANNOUNCE] wayland1.17.0」(メーリングリスト)2019年6月17日取得
  178. ^ フォアマン、デレク(2019年3月21日)。"[ANNOUNCE] weston 6.0.0"(メーリングリスト)2019年6月17日取得
  179. ^ Ser、Simon(2020年2月11日)。「[ANNOUNCE] wayland 1.18」(メーリングリスト)2020年2月12日取得
  180. ^ Ser、Simon(2019年8月23日)。"[ANNOUNCE] weston 7.0.0"(メーリングリスト)2019年10月22日取得
  181. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-January/041147.html
  182. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-September/041595.html

外部リンク