GNU/Linux >> Linux の 問題 >  >> Linux

Xorg、X11、Wayland? Linuxディスプレイサーバーとプロトコルの説明

Xサーバー、Xorg、X11、Wayland、およびそのようなものが何をするのか疑問に思ったことはありますか? Wayland対Xorg、何が良いですか?このガイドはあなたのためです

あなたはいつもそれらの用語に出くわし、それらがグラフィックスに関係していることを知っていますが、もっと学びたいと思っています。

Linuxのディスプレイサーバーとは何ですか?

ディスプレイサーバーは、クライアントの入出力を他のオペレーティングシステム、ハードウェア、および相互に調整することを主なタスクとするプログラムです。ディスプレイサーバーは、ディスプレイサーバープロトコルを介してクライアントと通信します。

ディスプレイサーバーは、グラフィカルユーザーインターフェイス、特にウィンドウシステムで非常に重要です。グラフィカルユーザーインターフェイス(GUI)の基本コンポーネントは、グラフィカルインターフェイスとカーネルの間にあります。

したがって、ディスプレイサーバーのおかげで、GUIを使用してコンピューターを使用できます。これがないと、コマンドラインインターフェイスのみに制限されます。

ディスプレイサーバーをデスクトップ環境と混同しないことが重要です。デスクトップ環境(Gnome、KDE、Xfce、MATEなど)はディスプレイサーバーを使用します。

ディスプレイサーバーは、ディスプレイサーバープロトコルを介してクライアントと通信します。 Linuxで利用できるディスプレイサーバープロトコルは3つあります。 X11とWaylandはその2つです。 3番目のMirは、このチュートリアルの範囲を超えています。

X Window System、Xorg、X11、説明

Xウィンドウシステム

X Window Systemは、単にXと呼ばれることもあり、古いものです。 1984年に最初に開発され、Linuxを含むほとんどのUNIXライクなオペレーティングシステムのデフォルトのウィンドウシステムでした。

X.Org

X.Orgサーバーは、X.OrgFoundationが管理するXWindowSystemディスプレイサーバーの無料のオープンソース実装です。これは、X11プロトコルを介してクライアントアプリケーションと対話し、ディスプレイに物を描画したり、マウスの動き、クリック、キーストロークなどの入力イベントを送信したりするアプリケーションです。

通常、クライアントのアプリケーションが接続するのを待つXサーバーを起動します。ただし、Xorgはクライアント/サーバーモデルに基づいているため、クライアントはローカルまたはリモートで別のマシンで実行できます。

明らかでない場合、X11の設計では、アプリケーションとディスプレイが同じコンピューター上にある必要はないことが暗黙のうちに示されています。 Xが開発されたとき、Xサーバーはワークステーションで実行され、ユーザーはより多くの処理能力を備えたリモートコンピューターでアプリケーションを実行することが広く知られていました。

X11

X11はネットワークプロトコルです。クライアント(アプリケーション)とディスプレイ(サーバー)の間でメッセージがどのように交換されるかを説明します。これらのメッセージには通常、「ボックスを描画する」、「この位置にこれらの文字を書き込む」、「マウスの左ボタンがクリックされた」などの基本的な描画コマンドが含まれています。

しかし、X11は古く、30年以上にわたってオーバーホールされていないプロトコルの上に、まだハックの山がありました。 XServerプロトコルの機能のほとんどは使用されなくなりました。

X11が行ったすべての作業は、個々のアプリケーションとウィンドウマネージャーに再委任されました。それでも、これらの古い機能はすべてまだ存在しており、これらすべてのアプリケーションを圧迫し、パフォーマンスとセキュリティを損なっています。

次世代ディスプレイサーバー、Wayland

ウェイランド X.Orgの開発者であるKristianHogsbergによって、2008年に個人的なプロジェクトとして開始されました。これは、ディスプレイサーバーとそのクライアント間の通信を指定する通信プロトコルです。

Waylandは、X Window System(X11またはXorgとも呼ばれます)を最新の安全でよりわかりやすいウィンドウシステムに置き換える、無料のオープンソースコミュニティ主導のプロジェクトとして開発されました。

Waylandでは、コンポジターはディスプレイサーバーです。 コンポジター は、ウィンドウごとにオフスクリーンバッファをアプリケーションに提供するウィンドウマネージャです。ウィンドウマネージャは、ウィンドウバッファを画面を表す画像に合成し、その結果をディスプレイメモリに書き込みます。

Waylandプロトコルを使用すると、コンポジターは入力イベントをクライアントに直接送信でき、クライアントはダメージイベントをコンポジターに直接送信できます。

Xの場合と同様に、クライアントはイベントを受信すると、ユーザーインターフェイス(UI)を更新します。ただし、Waylandではレンダリングはクライアントで行われるため、クライアントはコンポジターにリクエストを送信して、更新されたリージョンを示します。

Xに対するWaylandの主な利点は、ゼロから開始することです。 Xの複雑さの主な理由の1つは、何年にもわたってXの役割が変化したことです。その結果、今日、X11は主にクライアントとウィンドウマネージャー間の「本当にひどい」通信プロトコルとして機能します。

Waylandは、セキュリティに関しても優れています。 X11では、任意のプログラムをバックグラウンドで存在させ、X11領域で開いている他のウィンドウで何が起こっているかを読み取ることで、「キーロガー」と呼ばれる処理を実行できます。

各プログラムは独立して機能するため、これはWaylandでは発生しません。

結論

ただし、XWindowSystemにはWaylandに比べて多くの利点があります。 WaylandはXorgの設計上の欠陥のほとんどを排除していますが、問題があります。 Waylandプロジェクトは10年以上続いていますが、物事は100%安定しているわけではありません。

2022年の時点で、Linux用のほとんどのビデオゲームとグラフィックスを多用するアプリケーションは、X11用に作成されています。また、NVIDIA GPU用のドライバーなど、多くのクローズドソースグラフィックスドライバーは、Waylandの完全なサポートをまだ提供していません。

Xは長続きせず、Waylandは多くの点で改善されています。しかし今のところ、ネイティブアプリケーションの大部分はXorg用に作成されています。これらのアプリがすべて移植されるまで、Xorgを維持する必要があります。 Xorgと比較すると、Waylandはまだあまり安定していません。


Linux
  1. Linuxでのプロセス間通信:ソケットとシグナル

  2. Linux – X11 / xorgでミドルクリックして貼り付けることを無効/変更しますか?

  3. GlusterFSサーバーを追加および削除します

  1. Linuxのヘッドコマンドとテールコマンドを例で説明

  2. LinuxディストリビューションはWayland(X11なし)で完全に実行されていますか?

  3. Nova-agent(Linux)およびRackspaceエージェント(Windows)

  1. LinuxでOBSとWaylandを使用した画面記録

  2. Linux のパイプとリダイレクト - 解説!

  3. Linux に RabbitMQ サーバーと Erlang をインストールする方法