Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
45
Help us understand the problem. What is going on with this article?
@maueki

Waylandとは?

X11に替わるものとして、いよいよGnomeやKDEの対応も完了し実用段階に入ったと言えるWaylandですが、「Wayland」という語が表すものが複数あるため混乱を招きやすいようです。
ここでは簡単に「Wayland」が持つ3つの意味を解説したいと思います。
(なおこの3つというのは公式が謳っているわけではなく筆者が観測した範囲で「Wayland」という語がどのように使われているかを独自にカテゴライズしたものであることをご了承ください)

ライブラリとしての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

45
Help us understand the problem. What is going on with this article?
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
itage
ITAGEは「IT」のAGENCYになることを夢、目標として進化、変化していきます。「It’s It Agency」

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
45
Help us understand the problem. What is going on with this article?