Wayland

Wayland on näytönhallintajärjestelmä, joka on suunniteltu korvaamaan X Window System (X-Windows).

Tämä artikkeli kertoo näyttöprotokollasta. Mytologian hahmosta kertoo Wayland.
Wayland
KDE Plasma 5.24 Waylandin kanssa (helmikuu 2022).

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.

Wayland
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 
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.

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). Rajapinta käyttää versiointia ja oliot toteuttavat jonkin tietyn version rajapinnastaan.

Tekniikkaa

Wayland-järjestelmässä pinta (engl. surface) on perusprimitiivi, jolla muodostetaan käyttäjälle näkyvä "ikkuna". Asiakasohjelmat liittävät puskurit pintoihin, jolloin puskurin sisältö näkyy pinnassa. Kun kompositoija aloittaa näytön päivityksen se ottaa viimeisimmän puskurin sisällön jokaiselle näkyvälle pinnalle. Tätä kutsutaan "postilaatikko-semantiikaksi", jossa puskurit ovat kuvaannollisesti "kirjeitä" postilaatikossa ja uusin näkyvä on päällimäisenä.

Esimerkki

Esimerkki asiakassovelluksesta, joka ottaa yhteyden Wayland-palvelimeen:

#include  #include   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

Aiheesta muualla

Wayland 
Kää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

Tags:

Wayland HistoriaWayland ArkkitehtuuriWayland Erot X-ikkunointiinWayland ProtokollaWayland TekniikkaaWayland EsimerkkiWayland OhjelmistojaWayland LähteetWayland Aiheesta muuallaWaylandX Window System

🔥 Trending searches on Wiki Suomi:

Jennifer EspositoJaakko ManniTeemu SelänneMika SalminenSam ElliottLauri KottonenBradley CooperArchie CruzPohjois-Pohjanmaan maakuntaLiljankukka (kappale)KarhuPelicansAspergerin oireyhtymäKauniit ja rohkeatTampereen Kannen areenaPaitsioAleksis KiviLähiöbotoxValtatiet SuomessaHelsinki-halliSuomen Valkoisen Ruusun ritarikuntaIndonesiaZendayaTauno PaloLarry BirdUrpiainenIlvesPeter FranzénElina KottonenTurkuLady GagaIrina ShaykAmazon.comSuomiPulmunenUmamiSysteeminen lupus erythematosusRiikaIsis-KAlkoElvis PresleyFortniteDeadshotEnni KoistinenAfganistanin sotaMarie CurieSäästöpankkiIsis (järjestö)SosiopatiaHämeenlinnaLordi (yhtye)Laila KinnunenMinna CanthCristiano RonaldoHeikki VihinenJulius CaesarTiktokHelatorstaiRipsa Koskinen-PapunenAustraliaYhdysvaltain osavaltiotSuomen kielen aakkosetJäätelökesäLego ElokuvaElastinenStephen HawkingCamilla (Yhdistyneen kuningaskunnan kuningatar)VetypommiArvosanaAuschwitzTom PöystiIhminenKatariina AragonialainenKolmen kappaleen probleema (kirja)PashaSirkka SipiläFrancisco FrancoKreatiini🡆 More