Ce este Wayland pe Linux și prin ce este diferit de X?
Publicat: 2023-07-17X11, sau sistemul X Window, permite mediului desktop grafic să afișeze și să controleze ferestrele. Wayland este un înlocuitor pentru X11. Este conceput pentru a fi mai rapid și mai sigur. Iată ce trebuie să știi despre ele.
Ce este Wayland?
Multe nume ale lui X
Cum funcționează X11
Cum funcționează Wayland
Adopția lentă a lui Wayland de către aplicații
Folosiți Wayland sau X11?
Ar trebui să utilizați Wayland sau X11?
Ce este Wayland?
Wayland este un înlocuitor modern pentru X11, care a fost sistemul implicit de ferestre pe Linux de zeci de ani. Wayland este un protocol de comunicare și care definește mesajele dintre un server de afișare X Window și aplicațiile client. Proiectul Wayland oferă biblioteci client și server care permit aplicațiilor să utilizeze protocolul.
Proiectul Wayland a fost început de un dezvoltator Red Hat în 2008.
Multe nume ale lui X
Sistemul X Window este un sistem de ferestre, lansat pentru prima dată pentru Unix, care operează de către Massachusetts Institute of Technology în 1984. Aplicațiile se pot baza pe funcționalitatea oferită de sistemul de ferestre pentru a genera interfețe cu utilizatorul.
Până în 1987, sistemul X Window a ajuns la versiunea 11 și a devenit cunoscut sub numele de X11. Acum este gestionat de Fundația X.Org. Este încă la versiunea 11, deși au existat multe versiuni mai mici din 1987. În momentul scrierii, versiunea stabilă actuală este X11R7.7.
„X” din nume nu înseamnă zece în cifre romane și nici nu implică „Xtra”, „Xtended” sau ceva de genul acesta. Un sistem de ferestre anterior se numea „W”, pentru „ferestre”, și pur și simplu s-au mutat la următoarea literă din alfabet când au început noul proiect.
Veți auzi sistemul X Window denumit „X”, „X11”, „Xorg”, „X Windows” și „X Window System”.
Cum funcționează X11
Sistemul X Window gestionează evenimente și elemente primitive de nivel scăzut, cum ar fi interacțiunea cu mouse-ul și desenarea și mutarea ferestrelor. Aplicațiile se ocupă de elementele vizuale și de designul interfeței. Aspectul ferestrelor, ce butoane au și unde se află acele butoane sunt alegeri pe care le face programatorul aplicației. Sistemul X Window atrage designul rezultat pe ecran.
X11 oferă o definiție pentru comunicarea care trebuie să treacă între diferitele componente ale unui sistem X Window care funcționează. Această comunicare este necesară deoarece codul pe care o aplicație compatibilă X-l folosește pentru a-și desena ferestrele și elementele de interfață nu se află în interiorul aplicației. Lucrarea este partajată între un server X și Managerul de ferestre.
Aplicațiile sunt clienți ai serverului X. Window Manager este un tip special de client. Serverul X este responsabil de gestionarea resurselor, executarea cererilor de desen și organizarea evenimentelor, cum ar fi apăsarea tastelor și clicurile mouse-ului către aplicațiile corespunzătoare.
De asemenea, acționează ca intermediar în comunicarea dintre Managerul de ferestre și aplicații, intermediând mesajele înainte și înapoi între ele. Managerul de ferestre menține o listă a ferestrelor pe care aplicațiile le-au deschis, unde se află pe ecran, ce dimensiune au, dacă se suprapun și așa mai departe.
Un Window Manager de compoziție menține un buffer în afara ecranului pentru fiecare fereastră. Compune aceste buffere într-o singură imagine care reprezintă fereastra cea mai de sus - care reprezintă întregul desktop - care este scrisă pe ecran.
Toate mediile desktop grafice moderne, inclusiv GNOME și KDE, folosesc manageri de ferestre de compunere.
Cum funcționează Wayland
Wayland este destinat să rezolve problemele lui X11. Arhitectura X11 necesită multă mesagerie. Serverul X se află între clienți și Window Manager. De asemenea, se află între toate și, prin intermediul nucleului, hardware-ul grafic. Volumul mesajelor poate duce la latență și la o experiență vizuală întârziată.
Există și o bază mare de coduri. Există aplicația server, aplicația Window Manager și biblioteca X11 pe care o folosesc clienții. Cu cât baza de cod este mai mare (și mai veche), cu atât este mai greu de întreținut și cu atât te vei lupta mai mult cu codul moștenit.
Schimbând arhitectura, Wayland a modernizat și simplificat baza de cod, oferind beneficii de performanță și securitate îmbunătățită.
De fapt, au fuzionat serverul și managerul de ferestre într-o singură aplicație. Au eliminat orice cod care executa funcții care sunt acum efectuate de kernel. În loc să reproducă efortul, au valorificat funcționalitatea nucleului.
Cu Wayland, compozitorul și aplicația client comunică direct. Compozitorul își păstrează maparea internă a ferestrelor unde se află pe desktop și în ce dimensiune și stare se află. Intermediază evenimentele de schimbare a tastaturii, mouse-ului și ferestrelor și le trimite aplicațiilor care dețin acele ferestre.
Aplicațiile actualizează interfața cu utilizatorul în consecință. O diferență majoră este că randarea se realizează în interiorul aplicațiilor în sine, folosind bibliotecile Wayland legate.
Aplicația fie actualizează bufferul folosit pentru a menține fereastra, fie creează unul nou și îl elimină pe cel vechi. Aplicația client trimite apoi o notificare compozitorului, spunându-i să-și actualizeze maparea ferestrei și să folosească tamponul video nou sau actualizat.
Această arhitectură simplificată și designul modern al codului oferă îmbunătățiri ale performanței, cu redimensionări și trageri în special ale ferestrelor, arătând netede și fluide.
Adopția lentă a lui Wayland de către aplicații
Wayland este sistemul de ferestre implicit în Debian 10 și mai nou, Fedora 34 sau mai nou, Ubuntu 18.04 sau mai nou și alte distribuții precum Arch Linux. În ciuda acestui fapt, de cele mai multe ori, Wayland rulează aplicații X11.
Există un strat de compatibilitate numit XWayland care permite aplicațiilor X11 să ruleze sub Wayland. Acest lucru a fost necesar deoarece majoritatea aplicațiilor X11 nu au fost modificate și portate în Wayland.
Pe mediile desktop care oferă compozitori Wayland, cum ar fi GNOME, aplicațiile oficiale, cum ar fi Editorul de text GNOME și Hărți, Fișiere și Calendar sunt toate aplicații native Wayland. Dar marea majoritate a aplicațiilor X11 sunt încă neatinse, native, aplicații X11.
Middleware-ul XWayland funcționează de obicei bine, dar pot exista probleme cu unele aplicații X11 care efectuează funcții de nivel scăzut legate de ecran, cum ar fi înregistrarea ecranului. Utilizarea Wayland cu NVIDIA poate fi la fel de dificilă ca și cu X11, deși nu am avut probleme cu driverul meu zilnic, folosindu-l cu un GPU NVIDIA GeForce GT 1030.
Unii autori ai aplicațiilor X11 sunt probabil să spere că aplicația lor funcționează bine cu XWayland și pot evita nevoia să le reproceseze în aplicații Wayland. Nu fi surprins dacă adoptarea și migrarea către Wayland este lungă și lentă, cu aplicații noi adoptându-l, dar majoritatea aplicațiilor X11 existente rămânând așa cum sunt, punându-și speranțele în XWayland.
LEGATE: Ce este nou în Ubuntu 21.04 „Hirsute Hippo”
Folosiți Wayland sau X11?
Dacă utilizați una dintre cele mai importante distribuții Linux, sunt șanse să utilizați deja Wayland. Puteți verifica lansând următoarea comandă.
echo $XDG_SESSION_TYPE
Pe un sistem care utilizează Wayland, rezultatul va fi:
Și pe un sistem care rulează sistemul X Window, veți vedea:
Rareori, variabila de mediu XDG_SESSION_TYPE
nu este setată. În acest caz, puteți folosi această comandă:
loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Tip --value
Comanda internă, imbricată loginctl
, folosește comanda show-user
pentru a afișa proprietățile utilizatorului numit. Comanda whoami
ne oferă numele utilizatorului curent. Opțiunea -p
(proprietate) restricționează ieșirea de la loginctl
la informații despre setarea „Afișare” și folosim opțiunea --value
pentru a returna doar valoarea. Nu dorim să avem șirul „Display=" în răspunsul de la loginctl
. Toate acestea ne oferă un ID de sesiune.
Transmitem ID-ul sesiunii către loginctl
extern și folosim comanda show-session
pentru a afișa atributele sesiunii. Folosim opțiunea -p
(proprietate) pentru a restricționa ieșirea la informații despre tipul de sesiune și folosim opțiunea --value
pentru a afișa valoarea fără eticheta „Type=".
Pe un computer care folosește Wayland, veți vedea:
Dacă rulați sistemul X Window, veți vedea:
Ar trebui să utilizați Wayland sau X11?
Cu excepția cazului în care întâmpinați probleme, ați putea la fel de bine să rămâneți cu ceea ce utilizați deja. Dar dacă observați instabilități sau actualizări sacadate ale ecranului, puteți încerca să treceți la oricare pe care nu îl utilizați.
Pe GNOME, dacă doriți să schimbați și să încercați celălalt sistem, în ecranul de autentificare faceți clic pe numele dvs. de utilizator și apoi faceți clic pe pictograma roată dințată din colțul din dreapta jos al afișajului.
Un meniu vă va oferi diferite versiuni de GNOME. Opțiunile care menționează „Xorg” folosesc sistemul X Window și cele care nu folosesc Wayland.
LEGATE: Cum să enumerați variabilele de mediu pe Linux