Help us understand the problem. What is going on with this article?

Waylandとは?

More than 1 year has passed since last update.

X11に替わるものとして、いよいよGnomeやKDEの対応も完了し実用段階に入ったと言えるWaylandですが、「Wayland」という語が表すものが複数あるため混乱を招きやすいようです。
ここでは簡単に「Wayland」が持つ3つの意味を解説したいと思います。

ライブラリとしてのWayland

Waylandのリポジトリはここに有りますが、ビルドしてもいくつかのツールと、ライブラリが出来上がるのみで、これだけでX11サーバの代わりをしてくれるようなものではありません。

では、この「ライブラリとしてのWayland」は何者かというと、一言で表すと「プロトコル作成フレームワーク」です。

ビルドしてできるwayland-scannerコマンドはXMLファイルに書かれたプロトコルの定義を読み取り、サーバー/クライアント双方のソースを生成します。ユーザーは生成されたソースとWaylandのライブラリを用いれば、エンディアンやアライメントに悩まされること無く通信するサーバー/クライアントアプリが作成できるというわけです。

なおWaylandリポジトリにはprotocol/wayland.xmlというプロトコルが定義されておりこれは「Waylandプロトコル」と呼ばれています。

プロトコルとしてのWayland

「Waylandプロトコル」といったとき前述のwayland.xmlで定義された狭義の「Waylandプロトコル」と、Waylandにより生成されたプロトコル全体を指す広義の「Waylandプロトコル」を表す場合の2通りの場合があります。

wayland.xmlで定義されたWaylandプロトコルは、Waylandコンポジタに対してクライアントアプリから、ウィンドウの作成や描画の要求。逆にWaylandコンポジタからクライアントアプリに対してマウス、キーボード、タッチなどのイベントの通知などが定義されています。

WaylandリポジトリにはWaylandプロトコル1種類しか定義されていませんが、例えばWaylandコンポジタのリファレンス実装であるwestonでは10種類を超えるプロトコル(xdg-shellプロトコル、desktop-shellプロトコル等)が定義されています。

アーキテクチャとしてのWayland

記事の冒頭でも書きましたが、Waylandはよく「X11を置き換えるもの」という説明がなされることが有ります。
その場合はこのアーキテクチャとしてのWaylandを指しています。

waylandアーキテクチャ

上図はWaylandのサイトにあるアーキテクチャ図です。②、③でWaylandプロトコルが使用されます。
この図のWaylandコンポジタが各アプリケーションの描画をコンポジションして実際の画面に描画する役割を果たします。

Waylandコンポジタには様々な実装があり、Waylandプロジェクトによるリファレンス実装がwestonです。

また最近はGnomeやKDEもWayland対応しており、それぞれMutter, KWinがWaylandコンポジタの役割を果たしています。

より学ぶために

実際に手を動かしてWaylandを学ぶための入門記事を書きました。参考にしてください。

作って学ぶWayland

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away