Wayland vs. Xorg – hvilken display server er bedst?
Wayland og Xorg er begge såkaldte display servere. Men hvad er egentlig en display server, hvad er forskellen på dem og hvilken er bedst. Det kigger vi på i denne artikel.
Hos nogle linuxdistributioner er jeg stødt på en diskussion om hvorvidt Wayland eller Xorg er bedst. For eksempel bliver Wayland erstattet med Xorg som standard display server fra Ubuntu 18.04, når den snart udkommer. For at kunne forstå den diskussion, begyndte jeg at læse lidt op på hvad de to teknologier er, og det er resultatet du her kan læse i denne artikel.
X, X11 og Xorg – hvad er forskellen?
Når man læser forskellige artikler om Linux, falder man ofte over begreberne X, X11 og Xorg. Men hvad dækker disse betegnelser egentlig over?
X er det man kalder for en display server. Den behandler altså forskellige anmodninger der kommer fra såkaldte X klienter, der kommunikerer til X via den såkaldte X protokol. Lidt ligesom når en browser (klient) kommunikerer til en webserver gennem en HTTP protokol. Når X får anmodninger fra klienter, behandler den dem og giver et svar tilbage igen. Behandlingen af anmodningerne omfatter blandt andet at display serveren kommunikerer med hardware, for eksempel et grafikkort, gennem linuxkernen. X11 er version 11 af X, som er den seneste og mest udbredte version af X.
Xorg eller X.org er en implementering af en X server, X libraries og klienter der alle følger X11 versionen. Der findes andre implementeringer, som for eksempel kaldes XFree86, Hummingbird Exceed eller XQuartz. Xorg er altså en implementering af den display server der hedder X – selvom mange til dagligt også kalder Xorg for en display server, er det altså ikke helt korrekt.
X har det der kaldes for drawing API’er. Den vigtigste hedder XRender, der gør det muligt at lave moderne grafiske elementer.
For en god ordens skyld vil jeg også lige nævne forskellen mellem display servere og et grafisk interface. Det grafiske udseende du ser på linux skyldes et grafisk interface, der har navne som GNOME, KDE plasma, Unity eller Cinnamon. Det er dem der kommunikerer til display serveren, for at få udført det grafiske arbejde. For at få et grafisk udseende skal man altså både have et grafisk interface og en display server.
Wayland – efterfølgeren til X
Wayland er en ny type display server, der blev udviklet tilbage i 2008. Formålet med Wayland er at erstatte X i fremtiden som display server. Nogle linuxdistributioner er begyndt at implementere Wayland, mens andre holder sig til X. Specielt fordi Wayland på nogle områder ikke har vist sig stabil nok.
Selve display serveren hedder egentlig Wayland Compositor, mens Wayland er selve protokollen. Ligesom X var display serveren og X protokol var protokollen. Ligesom ved X, kan klienter altså kommunikere til Wayland Compositor via Wayland, og så få et svar tilbage.
En af forskellene mellem Wayland og Xorg er at den ikke indeholder en drawing API, ligesom X. Her reserveres der bare en del af den grafiske hukommelse, og klienten udfører så selv det grafiske arbejde, hvilket fjerner noget af kompleksiteten ved display serveren.
Hvorfor skifter Ubuntu tilbage til Xorg?
Ubuntu skiftede i version 17.10 Xorg ud med Wayland som standard display server, og så var Xorg et tilvalg man kunne gøre under loginskærmen. I annonceringen af den kommende 18.04 kan man så læse, at nu vil Ubuntu skifte tilbage igen. Det betyder at Xorg vil være standard display server, og så vil Wayland være et tilvalg under loginskærmen.
Det undrede mig lidt. Fordi hvis Wayland er fremtidens display server, hvorfor vælger Ubuntu så at skifte tilbage igen, når de allerede har implementeret den nye display server?
Årsagen er at Ubuntu 18.04 vil være en LTS version. Altså en version som flere vil installere, og som man siger er så stabil, så alle bør opdatere. Det er ikke en version der må indeholde ustabile elementer i så høj grad som de andre versioner.
Det var også derfor Ubuntu valgte at indføre Wayland allerede i version 17.10. De var nødt til at afprøve hvor stabil Wayland var, før de skulle lancere den næste LTS version her til april. En evaluering af implementeringen af Wayland i version 17.10 har så åbenbart ført til, at de har valgt at skifte tilbage til Xorg som standard display server igen. Ubuntu nævner selv følgende grunde til at de skifter tilbage til Xorg:
- Skærmdeling som for eksempel anvendes i Skype og Google Hangouts virker godt i Xorg.
- Fjernstyring fungerer godt i Xorg.
- Når linux shells crasher, genvindes der hurtigere kontrol ved Xorg
Jeg har faktisk selv også haft lidt problemer med Wayland, da jeg installerede Ubuntu i VirtualBox. Her oplevede jeg at skærmen flimrede konstant, da Wayland blev anvendt som display server. Dette forsvandt fuldstændig, når jeg så loggede ind med Xorg i stedet.
Så nu kommer Xorg altså tilbage på Ubuntu, og Ubuntu har meldt ud at de inden Ubuntu 18.10 vil evaluere igen om Wayland skal tilbage.
Hvis du finder nogle fejl i forståelsen af de forskellige begreber i denne artikel, er du meget velkommen til at skrive en kommentar. Som sagt er display server ikke noget jeg har beskæftiget mig særlig meget med i Linux. Derfor kan der sagtens være misforståelser af de forskellige begreber.