Wayland

Wikipediasta
Siirry navigaatioon Siirry hakuun

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[muokkaa | muokkaa wikitekstiä]

X-ikkunointia on yritetty yksinkertaistaa ja tehostaa useita kertoja.[1] X-ikkunointiin on sen historian aikana lisätty paljon toimintoja joille nykyään ei ole tarvetta.[2] Wayland käyttää tekniikoita, joita on jo aiemmin kehitetty kuten Direct Rendering Infrastructure (DRI) ajureita ja Direct Rendering Managerin ominaisuuksia.[2] 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.[3][4] Laitteiden näyttötilan hallinta siirtyi käyttöjärjestelmän ytimeen ja näyttömuistin hallinta ytimessä mahdollisti myös muuta kehitystä.[5][4]

X-ikkunoinnin X11-protokollan seuraajalle X12 on olemassa suunnitelmia mutta ei toteutusta.[6][7]

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

Käyttökohteet[muokkaa | muokkaa wikitekstiä]

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.[4] Graafisia sovelluksia käytetään kulkuneuvoissa ja useissa muissa sulautetuissa järjestelmissä.[4] Useat näistä käyttökohteista eivät tarvitse X-ikkunoinnin ominaisuuksia.[4]

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

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

Raspberry Pi alustan Raspbian on korvannut X-ikkunoinnin Waylandilla.[10][11]

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

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

Arkkitehtuuri[muokkaa | muokkaa wikitekstiä]

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).[16]

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

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.[16]

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.[16]

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

Erot X-ikkunointiin[muokkaa | muokkaa wikitekstiä]

Wayland ei tee renderöintiä asiakasohjelmien puolesta, vaan asiakasohjelmat käyttävät valitsemaansa menetelmää jaettuun puskuriin ja ilmoittavat palvelimelle kun se on valmis.[2] X11-palvelinta voi käyttää Wayland-asiakasohjelmana.[2] Ratkaisussa X-ikkunointi siirtyy pois "kuumalta polulta" asiakasohjelman ja laitteiston välissä.[2] 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).[2][4] X-ikkunointiin on ajan myötä kehitetty osia, jotka ovat käyttäneet välissään monimutkaisia protokollia, joita ei enää tarvita.[4] X-ikkunoinnin kehitysaikana jaettujen kirjastojen käyttö ei ollut mahdollista ja muistirajoituksien vuoksi tehtiin X-palvelin: myöhemmin jaettujen kirjastojen tuki on kehittynyt.[4]

Protokolla[muokkaa | muokkaa wikitekstiä]

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

Esimerkki[muokkaa | muokkaa wikitekstiä]

Esimerkki asiakassovelluksesta, joka ottaa yhteyden Wayland-palvelimeen:[18]

#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;
}

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Byfield, Bruce: Is Wayland the New X? Linux Magazine. Viitattu 13.2.2017.
  2. a b c d e f g Wayland FAQ wayland.freedesktop.org. Viitattu 17.9.2017.
  3. a b c Koen Vervloesem: FOSDEM: The Wayland display server lwn.net. 15.2.2012. Viitattu 14.10.2021. (englanniksi)
  4. a b c d e f g h 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. Larabel, Michael: Jolla's First Smartphone Powered By Wayland Phoronix. Viitattu 10.2.2017.
  9. Fedora 25: With Wayland, Linux has never been easier (or more handsome) Ars Technica. Viitattu 12.2.2017.
  10. Raspberry Pi Gains Graphics Speed as Wayland Replaces X linux.com. Viitattu 13.2.2017.
  11. WAYLAND PREVIEW raspberrypi.org. Viitattu 13.2.2017.
  12. 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)
  13. Introducing GNOME 3.20: Delhi help.gnome.org. Viitattu 30.10.2019. (englanniksi)
  14. Martin Flöser: Plasma Wayland and Qt 5.9 and beyond blog.martin-graesslin.com. 15.7.2017. Viitattu 3.10.2019. (englanniksi)
  15. Christian Fredrik Schaller: PipeWire: the new audio and video daemon in Fedora Linux 34 fedoramagazine.org. 14.5.2021. Viitattu 21.5.2021. (englanniksi)
  16. a b c d Wayland Architecture wayland.freedesktop.org. Viitattu 13.2.2017.
  17. a b Chapter 4. Wayland Protocol and Model of Operation wayland.freedesktop.org. Viitattu 3.10.2019. (englanniksi) 
  18. Creating a display wayland-book.com. Viitattu 2.12.2020. (englanniksi) 

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.
Käännös suomeksi
Tämä artikkeli tai sen osa on käännetty tai siihen on haettu tietoja muunkielisen Wikipedian artikkelista.
Alkuperäinen artikkeli: en:Wayland (display server protocol)