web-dev-qa-db-ja.com

Waylandの方が良いのはなぜですか?

最近発表された Mark Shuttleworthによると、UbuntuはディスプレイマネージャーとしてWaylandを使用する方向に進んでいます。

X11とWaylandの最大の違いは何ですか? WaylandがUbuntuを改善する理由は何ですか?

173
Hillar

Waylandアーキテクチャページ を見ると、デザインの違いがわかります。標準のGEM/DRMスタックを介してすべてをカーネルに強制し、合成自体を管理することにより、グラフィックスタック全体を簡素化することになっています。

それをあちこちにビットとボブがあるXスタックと比較してください。 X混乱の一部は柔軟な設計によるものであり、一部は痛みを増してきました。すべてのコンポジター(Compiz/Metacity/Mutter/KWin/etc)が後付けとして追加されました。彼らは、中核として、Xがおそらくそれ自体を行うべきことを行うためのハッキングです。物事が以前のように外側に拡大し続けると、プロジェクトが維持できなくなるポイントに到達します。

全体として、ハードウェアサポートがある場合、スタック全体がより効率的になり、標準セットアップで使用する際の苦痛が少なくなります。

ただし、これまでのところ対処法が確認されていない問題がいくつかあります。

  • Xはかなりネットワークに対応しています。他のコンピューターにウィンドウを送信したり、リモートログインやそのようなあらゆる種類のファンキーなものを備えた複数の画面を作成したりできます。これはかなり専門的に見えるかもしれませんが、広く使用されている技術です。ウェイランドは、比較的ローカルで静的に見えます。

  • ドライバーのサポートもあります。クローズドソースドライバーは、Waylandが成功を収めているKMS/shared-GEM/shared-DRMテクノロジーをまだサポートしていません。純粋主義者はNouveauで大丈夫かもしれませんが、高性能3Dグラフィックカードで£100-400を支払う人は、現在のオープンドライバーで得られる不安定な3Dパフォーマンスに満足しません。

    更新:NvidiaはWaylandとMirの両方をサポートするために取り組んでいます


2018 update。 17.10は、デフォルトのディスプレイサーバーとしてWaylandを使用しました(閉じたドライバー、またはそれをサポートしていないドライバー、またはXが必要なドライバーがない場合)。 18.04と18.10は両方ともグローバルデフォルトとしてXを使用します(ただし、Waylandをインストールできます)。

私は何も担当していませんが、このポジションからは、実際のトラクションを得るためのメトリックNvidiaであるようです。その時点まで、ウェイランドの背後に十分なマインドシェアと開発力が見られるとは思わない。ゲーム/パフォーマンス市場はXを使用しています。MCE市場はX(およびダイレクトフレームバッファ)を使用しています。 Waylandが本当にチャンスを得るかどうかはわかりません。

133
Oli

XとWaylandにはlotsの違いがあります。おそらくグラフィックス側の最大のものは、Wayland 描画を行わないです。

Xには2つの描画APIがあります。これらの1つはコアX11プロトコルの一部であり、これは古く、役に立たず、誰も使用していません。もう1つは、勾配などの最新の複合操作を提供するXRender拡張機能です。これは、たとえばカイロが使用するものです。 Xにはフォント描画APIもあります。

Waylandには描画APIはありません。 Waylandクライアントは、基本的にグラフィックメモリへのポインターであるDRMバッファーハンドルを取得します。 Waylandは、クライアントがそのバッファーにどのように描画するかを知りません。 Xの用語では、これはすべてのアプリケーションがダイレクトレンダリングを取得することを意味します-描画要求はサーバーを経由する必要はありません。

Waylandが行う唯一のレンダリングは、クライアントのバッファーを画面にコピーすることです。

利点の点では、WaylandはXよりもはるかに複雑ではないため、保守が容易になりますが、この単純さの一部は複雑さの推進に由来します(例:実際にバッファー、ネットワークに描画する方法)透明度)スタックの他のレイヤーに。クライアントがすべてのレンダリングを担当するようにすることで、クライアントはダブルバッファリングなどのことについて賢くなります。

グラフィックス以外にも他の利点があります。たとえば、アプリケーションをサンドボックス化する方がはるかに簡単です。

55
RAOF

私の目での大きな違いは、WaylandはX-Serverよりもカーネルに近いということです。 Xからカーネル(カーネルモード設定、KMSとして知られている)へのグラフィックドライバーの移動により、Waylandはこの新しい機能を使用してXを置き換えることを計画しています。

Xよりもフットプリントが小さい-ディスプレイはカーネルによって処理されるため、Waylandは使用可能になるためにそれほど実装する必要はありません。 X転送(別のPCで1つの画面を見る)がXでなくなる可能性があると思うので、これは双方向に行われます。

KMS機能:Xサーバーを再起動せずに画面解像度を変更できる(少なくともnvidiaの場合、これはXで修正されたと思いますが)そのようなこと。

私が間違っている場合、これについて誰でも私を修正できますか?

18
TGM

他のすべての投稿はWaylandの利点を強調していますが、それだけではすべてが良いわけではありません。 Waylandに対するXの最大の利点は、Xがネットワーク上で機能することです。 Xはネットワークに透過的であり、実際のプログラムが通常より強力な別のマシンで実行されている間に、ウィンドウでウィンドウを表示したり、XDMCPで完全なセッションを端末で表示したりできます。 Waylandのようなものでは、ネットワークの透明性のアイデアはなくなりました。たぶん、最近の高速ネットワークやVNCやRDPなどの他のプロトコルではそれほど必要ではないかもしれません。

14
Christian Hujer

簡単に言えば、希望はグラフィックスの改善です(バグが少なく、高速で、使いやすい)。前日ではなかったことが、いつか可能になるかもしれません。競争が常にそうであるように、私は個人的にこれは少なくとも物事を盛り上げると思います。

7
ido

誰もが日常業務でかなり早く気付く2つの小さなこと:

  • Waylandは、X11で修正するのが難しすぎると思われたペーパーカットを廃止しました。有名な例:メニューが開いているとき、またはロック画面がオンになっているときに、ファンクションキー(スピーカーの音量、ディスプレイの明るさなど)を使用する。
  • Waylandは入力デバイスの方が優れています。 1つには、永続的なタップからクリックの設定など、タッチパッドを構成するための多くのオプションがあります。
3
Nico Schlömer