*Tämä artikkeli kertoo näyttöprotokollasta. Mytologian hahmosta kertoo Wayland.*
KDE Plasma 5.24 Waylandin kanssa (helmikuu 2022).
**Wayland** on näytönhallintajärjestelmä, joka on suunniteltu korvaamaan X Window System (*X-Windows*).

Waylandiin kuuluu protokollamäärittely sekä referenssitoteutus protokollasta.

Ikkunointisovelluksen referenssitoteutuksen nimi on **Weston**.

**XWayland** välisovellus on X-palvelinsovelluksen versio, joka renderöi Wayland-rajapinnalle sallien taaksepäin yhteensopivuuden olemassa olevien sovelluksien kanssa.

XWayland-työpöytä ja useita X11-sovelluksia
Projektin lähdekoodit on julkaistu avoimen MIT-lisenssin alaisuudessa.

Historia
--------

X-ikkunointia on yritetty yksinkertaistaa ja tehostaa useita kertoja. X-ikkunointiin on sen historian aikana lisätty paljon toimintoja joille nykyään ei ole tarvetta. Wayland käyttää tekniikoita, joita on jo aiemmin kehitetty kuten Direct Rendering Infrastructure (DRI) ajureita ja Direct Rendering Managerin ominaisuuksia. Kompositoivan ikkunanhallinnan kanssa sovellukset piirsivät jo ikkunansa piilossa olevaan puskuriin eikä suoraan näytölle, jolloin X-ikkunointi oli vain välikerros käyttäjän syötteille. Laitteiden näyttötilan hallinta siirtyi käyttöjärjestelmän ytimeen ja näyttömuistin hallinta ytimessä mahdollisti myös muuta kehitystä.

X-ikkunoinnin X11-protokollan seuraajalle X12 on olemassa suunnitelmia mutta ei toteutusta. X12 ei ollut vakavasti otettava X11:n seuraaja, mutta se auttoi tunnistamaan X11:sta ongelmakohdat.

Waylandin kehityksen aloitti Kristian Høgsberg vuonna 2008 vapaa-ajallaan työskennellessään Red Hatille. Høgsberg oli työskennellyt X-ikkunoinnin parissa vuodesta 2004 lähtien.

### Käyttökohteet

Graafisten sovellusten käyttö on laajentunut alkuperäisestä työpöytäkäytöstä johon X-ikkunointi kehitettiin: nykyisin on mobiililaitteita sekä mediakohtaisia laitteita, joilla on omat vaatimuksensa. Graafisia sovelluksia käytetään kulkuneuvoissa ja useissa muissa sulautetuissa järjestelmissä. Useat näistä käyttökohteista eivät tarvitse X-ikkunoinnin ominaisuuksia.

Sailfish OS on ottanut Waylandin käyttöön varhain ensimmäiseen versioon.

Fedora Linux on ottanut Waylandin käyttöön versiossa 25.

Raspberry Pi alustan Raspbian on korvannut X-ikkunoinnin Waylandilla.

Debian versio 10 *Buster* käyttää oletuksena Waylandia, mutta X.org on yhä asennettuna.

Laajalti käytetyt Gnome- ja KDE-työpöytäympäristöt ovat lisänneet tuen Waylandille. Gnome käyttää PipeWire-ohjelmistoa näytön jakamiseen.

Arkkitehtuuri
-------------

Wayland ohjelmien ja rajapintojen liitynnät
Wayland-arkkitehtuuri yksinkertaistaa ikkunointijärjestelmää X-ikkunointiin verrattuna. Sen sijaan että asiakassovellukset antaisivat useita piirtokomentoja näyttöä hallitsevalle sovellukselle (*X Server*) asiakassovellukset renderöivät ikkunansa valmiiksi ja välittävät tämän näyttöä hallitsevalle sovellukselle (*compositor*).

Tarvittavat piirtotoiminnot sijaitsevat ohjelmakirjastossa jota asiakasovellukset käyttävät sen sijaan että ne olisivat yhden sovelluksen sisäisiä toimintoja.

Menetelmä vähentää tarvetta prosessien väliselle kommunikaatiolle (engl. *Inter-Process Communication, IPC*), yksinkertaistaa näyttöä hallitsevaa komponenttia ja sallii sovelluksille laajemman kontrollin ikkunan piirtotoiminnoista.

Wayland käyttää hyväkseen Linux-ytimen rajapintoja kuten Kernel Mode-Setting (KMS) ja Direct Rendering Manager (DRM) näyttölaitteiden kanssa, eikä siksi ole suoraan käytettävissä muilla alustoilla jotka eivät näitä rajapintoja toteuta. Wayland käyttää EGL-rajapintaa.

Wayland ei toteuta verkkoläpinäkyvyyttä X-ikkunoinnin tapaan vaan jättää tämän toiminnon erilliselle protokollalle kuten VNC tai RDP.

* Wayland-arkkitehtuuriWayland-arkkitehtuuri
* X-ikkunoinnin arkkitehtuuriX-ikkunoinnin arkkitehtuuri

Erot X-ikkunointiin
-------------------

Wayland ei tee renderöintiä asiakasohjelmien puolesta, vaan asiakasohjelmat käyttävät valitsemaansa menetelmää jaettuun puskuriin ja ilmoittavat palvelimelle kun se on valmis. X11-palvelinta voi käyttää Wayland-asiakasohjelmana.
Ratkaisussa X-ikkunointi siirtyy pois "kuumalta polulta" asiakasohjelman ja laitteiston välissä. Suuri osa toiminnoista on jo aiemmin siirtynyt joko käyttöjärjestelmän ytimeen (näyttömuistin hallinta, komentojen vuoronnus, moodiasetus) tai ohjelmakirjastoihin (FreeType, fontconfig, Cairo ja niin edelleen).
X-ikkunointiin on ajan myötä kehitetty osia, jotka ovat käyttäneet välissään monimutkaisia protokollia, joita ei enää tarvita. X-ikkunoinnin kehitysaikana jaettujen kirjastojen käyttö ei ollut mahdollista ja muistirajoituksien vuoksi tehtiin X-palvelin: myöhemmin jaettujen kirjastojen tuki on kehittynyt.

Waylandia on sanottu "kuvailevaksi" (engl. *descriptive*) "ohjaavan" (engl. *prescriptive*) sijaan. Tämä on merkittävä ero X-ikkunointiin, jossa ikkunat ja näytönsäästäjät vaativat tiettyä asettelua ja kaappaavat syöttölaitteet. Waylandin kanssa sovellus kertoo minkä tyyppisen kuvan se haluaa näyttää ja antaa kompositoijan asetella sen. Wayland käyttää tapahtumapohjaista mallia, joka yksinkertaistaa muun muassa syöttölaitteiden käsittelyä.

Protokolla
----------

Wayland-protokolla on asynkroninen oliopohjainen protokolla, joka perustuu viesteihin. Viestiä palvelin- ja asiakasohjelman välillä kutsutaan tapahtumaksi (engl. *event*).

Esimerkki
---------

Esimerkki asiakassovelluksesta, joka ottaa yhteyden Wayland-palvelimeen:

```
#include <stdio.h>
#include <wayland-client.h>

int main(int argc, char \*argv[])
{
 struct wl\_display \*display = wl\_display\_connect(NULL);
 if (!display) {
 fprintf(stderr, "Failed to connect to Wayland display.\n");
 return 1;
 }
 fprintf(stderr, "Connection established!\n");

 wl\_display\_disconnect(display);
 return 0;
}

```

Ohjelmistoja
------------

libwayland-client ja libwayland-server ovat kirjastoja, jotka sisältävät toteutuksen Wayland-protokollalle yhteyden molempiin päihin.

Wayland-kompositoijan toteuttamiseen on useita ohjelmistokehyksiä, joita ovat wlroots, wlc, Smithay ja libweston. Syötteiden käsittelyyn käytetään esimerkiksi libinput-kirjastoa.

Näyttöpalvelimia eli Wayland-kompositoijia ovat muun muassa Weston (referenssitoteutus), Enlightenment, KWin (KDE), Mutter (Gnome), Sway ja Wayfire.

Lähteet
-------

1. ↑  Byfield, Bruce: Is Wayland the New X? Linux Magazine. Viitattu 13.2.2017.
2. 1 2 3 4 5 6 7  Wayland FAQ *wayland.freedesktop.org*. Viitattu 17.9.2017.
3. 1 2 3  Koen Vervloesem: FOSDEM: The Wayland display server *lwn.net*.  15.2.2012. Viitattu 14.10.2021. (englanniksi)
4. 1 2 3 4 5 6 7 8  Jonathan Corbet: LPC: Life after X *lwn.net*.  5.11.2010. Viitattu 14.10.2021. (englanniksi)
5. ↑  Joe 'Zonker' Brockmeier: The way to Wayland: Preparing for life After X *lwn.net*.  17.11.2010. Viitattu 14.10.2021. (englanniksi)
6. ↑  Griffith, Eric: The Wayland Situation: Facts About X vs. Wayland Phoronix. Viitattu 13.2.2017.
7. ↑  X12 *x.org*. Viitattu 13.2.2017.
8. ↑  Bruce Byfield: Is Wayland the New X? *linux-magazine.com*. Viitattu 18.10.2023. (englanniksi)
9. ↑  Larabel, Michael: Jolla's First Smartphone Powered By Wayland *Phoronix*. Viitattu 10.2.2017.
10. ↑  Fedora 25: With Wayland, Linux has never been easier (or more handsome) Ars Technica. Viitattu 12.2.2017.
11. ↑  Raspberry Pi Gains Graphics Speed as Wayland Replaces X *linux.com*. Viitattu 13.2.2017.
12. ↑  WAYLAND PREVIEW *raspberrypi.org*. Viitattu 13.2.2017.
13. ↑  Scott Gilbertson: Debian 10: Playing catch-up with the rest of the Linux world (that’s a good thing)  11.9.2019. Ars Technica. Viitattu 3.10.2019. (englanniksi)
14. ↑  Introducing GNOME 3.20: Delhi *help.gnome.org*. Viitattu 30.10.2019. (englanniksi)
15. ↑  Martin Flöser: Plasma Wayland and Qt 5.9 and beyond *blog.martin-graesslin.com*.  15.7.2017. Viitattu 3.10.2019. (englanniksi)
16. ↑  Christian Fredrik Schaller: PipeWire: the new audio and video daemon in Fedora Linux 34 *fedoramagazine.org*.  14.5.2021. Viitattu 21.5.2021. (englanniksi)
17. 1 2 3 4 5  Wayland Architecture *wayland.freedesktop.org*. Viitattu 13.2.2017.
18. ↑  Nathan Willis: LCA: The ways of Wayland *lwn.net*.  13.2.2013. Viitattu 20.10.2023. (englanniksi)
19. 1 2  Chapter 4. Wayland Protocol and Model of Operation *wayland.freedesktop.org*. Viitattu 3.10.2019. (englanniksi)
20. ↑  Creating a display *wayland-book.com*. Viitattu 2.12.2020. (englanniksi)
21. ↑  What's in the Wayland package *wayland-book.com*. Viitattu 21.10.2023. (englanniksi)
22. ↑  Introduction to wlroots *way-cooler.org*. Viitattu 21.10.2023. (englanniksi)

Aiheesta muualla
----------------

* Projektin kotisivut (englanniksi)
* Wayland GNOME-projektin sivuilla (englanniksi)
* The Wayland Protocol (englanniksi)

Käännös suomeksiKäännös suomeksi Tämä artikkeli tai sen osa on käännetty tai siihen on haettu tietoja muunkielisen Wikipedian artikkelista.   
Alkuperäiset artikkelit: en:Wayland (display server protocol) & en:List of display servers