- Da biste utvrdili da li je vaša sesija X11 ili Wayland, kombinujte naredbe kao što su loginctl, echo $XDG_SESSION_TYPE i inspekcija procesa.
- Xwayland djeluje kao most između starijih X11 aplikacija i Wayland kompozitora, što objašnjava zašto mnogi aplikacije Nastavite gledati "x11".
- Distribucije poput Fedore, Pop!_OS-a ili Manjara nude i Xorg i Wayland sesije, a odabir jedne ili druge utiče na kompatibilnost, sigurnost i ponašanje aplikacije.
Ako svakodnevno koristite Linux , vrlo je vjerovatno da ste se u nekom trenutku zapitali da li vaš sistem koristi X11 ili Wayland kao svoj Windows server . To nije samo stvar radoznalosti: utiče na ponašanje vaših grafičkih aplikacija, njihove performanse, kompatibilnost sa starijim programima, pa čak i naizgled trivijalne (ali dosadne) detalje poput kombinacije tipki daljinskog upravljača koja mijenja prozore na vašoj radnoj površini.
Mnogi korisnici doživljavaju situaciju sličnu onoj s Pop!_OS-om ili Fedorom: otvore Firefox, provjere about :support i vide "x11 ", ali su u sesiji koja je, teoretski, Wayland. Nadalje, programi poput xeyes prestaju pratiti miš unutar određenih prozora, što dovodi do sumnje da se nešto drugo događa "ispod haube". Hajde da smireno analiziramo zašto se to događa, kako funkcionira sloj kompatibilnosti s Xwaylandom i, što je najvažnije, kako sa sigurnošću znati da li koristite X ili Wayland na svojoj omiljenoj distribuciji.
Šta su Xorg/X11 i Wayland i zašto bi vas to trebalo zanimati?
Kada govorimo o Xorg-u ili X11, mislimo na klasični Unix i Linux sistem za rad na prozorima , onaj koji je decenijama dominirao desktop računarima. Xorg je besplatna implementacija X Window System protokola verzije 11 (otuda i X11) i postao je de facto standard za aplikacije grafičkog korisničkog interfejsa (GUI). Većina starijih programa očekuje da će naići na X server i povezati se s njim kako bi crtali prozore, primali događaje tastature i miša i tako dalje.
Ova sveprisutnost je godinama učinila Xorg gotovo obaveznim zahtjevom za desktop distribucije. Kao rezultat toga, veliki dio Linux ekosistema je dizajniran imajući X11 na umu: od laganih upravitelja prozora poput Openboxa do kompletnih desktopa poput KDE Plasme ili GNOME-a u njihovim starijim verzijama. Čak i danas, mnogi interni alati i dalje pretpostavljaju da je X server dostupan.
S druge strane, Wayland je mnogo modernija arhitektura koja pokušava pojednostaviti cijelu ovu postavku. Umjesto održavanja gigantskog servera s decenijama zakrpa i proširenja, predlaže direktniji protokol između kompozitora (GNOME Shell, KWin, Sway, itd.) i aplikacija. Ideja je smanjiti složenost, poboljšati sigurnost (sprečavajući jednu aplikaciju da špijunira šta druge rade) i ponuditi čistiju osnovu za animacije, skaliranje na HiDPI ekrane i druge moderne grafičke funkcije.
Uprkos tome što postoji već nekoliko godina, Wayland još uvijek nije toliko rasprostranjen kao X11. Distribucije poput Fedore su ga usvojile kao podrazumijevano rješenje u GNOME-u, dok je Ubuntu prešao na njega, nakratko se povukao, a zatim se postepeno vratio na Wayland. Drugi sistemi, poput mnogih Manjaro izdanja ili konzervativnijih distribucija, i dalje daju prioritet Xorg-u ili istovremeno održavaju obje opcije.
Postoje čak i vrlo specifične distribucije, poput Rebecca Black Linuxa, koje su se gotovo u potpunosti fokusirale na istraživanje i predstavljanje mogućnosti Waylanda . One su dobar dokaz koncepta, ali u našem svakodnevnom iskustvu s računarom i dalje koegzistiramo s oba svijeta, te je stoga poznavanje koji koristite u bilo kojem trenutku prilično relevantno.
Zašto se ponekad čini kao da koristiš X11 iako si na Waylandu?
Vrlo čest slučaj je pokretanje Wayland sesije (na primjer, GNOME u Waylandu na Fedori ili Pop!_OS-u sa specifičnom Wayland sesijom) i otkrivanje da se, prilikom otvaranja Firefoxa ili prilikom konsultovanja određenih tehničkih informacija, spominje X11. Ili da stari grafički alat radi kao da ništa nije u redu, iako bi trebao znati samo X protokol.
Trik leži u Xwaylandu, koji djeluje kao sloj kompatibilnosti za naslijeđene X11 aplikacije . U GNOME Shell-u na Waylandu, Xwayland se automatski pokreće na početku sesije. Ova komponenta se istovremeno ponaša kao X11 server za naslijeđene aplikacije i kao Wayland klijent za moderni kompozitor. Drugim riječima, prevodi sve što X aplikacije zahtijevaju (prozore, događaje, ubrzanje grafike) na jezik koji Wayland razumije i obrnuto.
Dakle, kada se pokrene starija aplikacija, kao što je stari CAD program, klasični upravitelj prozora ili čak uslužni programi poput xeyes, xterm ili određene verzije Firefoxa , ona misli da komunicira s tradicionalnim X serverom. U stvarnosti, povezuje se s Xwaylandom, koji zauzvrat komunicira s Wayland kompozitorom vaše radne površine. Zbog toga mnogi interni dijagnostički alati i dalje prijavljuju "x11": to je ono što vide, iako sistem koristi Wayland ispod.
Ovaj mehanizam objašnjava zanimljive stvari poput toga zašto Xeyesove oči ne prate vaš kursor unutar izvorne Wayland aplikacije, iako to rade u X11 Windowsima. Wayland namjerno ograničava mogućnost aplikacije da špijunira globalni pokazivač, dok pod Xorg-om bilo koji klijent može lako vidjeti šta radite na ekranu. Sa stanovišta sigurnosti i privatnosti, ovo je značajno poboljšanje.
Međutim, to nisu sve prednosti: neki programi se oslanjaju na vrlo specifične X11 funkcije (na primjer, određene globalne prečice ili duboke integracije s upraviteljem prozora) koje se mogu ponašati nepravilno pod Xwaylandom. U takvim slučajevima, mnogi vodiči preporučuju eksplicitno prijavljivanje na puni Xorg server umjesto korištenja Waylanda, barem dok aplikacija ne dobije izvornu podršku za Wayland.
Kako saznati koju vrstu sesije koristite pomoću loginctl-a
Osim onoga što bi preglednik ili određeni alat mogli reći, ako želite prilično pouzdan način da saznate Koji se protokol koristi u vašoj grafičkoj sesiji?Jedna od najpraktičnijih opcija je povlačenje loginctlOvaj uslužni program je dio systemd ekosistema i omogućava, između ostalog, pregled detaljnih informacija o aktivnim korisničkim sesijama.
loginctl Ovo je početna naredba za listanje sesija
Opća metoda je vrlo jednostavna: prvo saznajte ID vaše sesije a onda pitaš loginctl to vam pokazuje tip. U terminalMožete uraditi nešto poput:
loginctl
Ovo će vam dati listu aktivnih sesija , nešto poput ovoga:
SESSION UID USER SEAT TTY
2 1000 cr0n0s seat0 tty2
sessions listed.
Pogledajte prvu kolonu: tu se pojavljuje broj sesije.
U ovom primjeru, identifikator sesije je 2. S tim informacijama možete upitati tip sesije pomoću:
S tim informacijama pri ruci, možete provjeriti parametar Type pomoću:
loginctl show-session 2 -p Type Izvršava upit i vraća parametar
Tipičan izlaz će biti nešto poput:
Type=x11 označava upotrebu X11
Type=wayland ukazuje na upotrebu Waylanda
Na ovaj način sigurno znate da li trenutno koristite Xorg (X11) server ili čistu Wayland sesiju . Ovaj trik je veoma koristan na desktop računarima poput GNOME-a ili KDE Plasme, gdje možete odabrati tip sesije na ekranu za prijavu, ali je lako zaboraviti koji ste odabrali prošli put.
Provjerite varijablu okruženja XDG_SESSION_TYPE
Drugi prilično direktan način je pogledati varijablu okruženja XDG_SESSION_TYPE, što mnoge distribucije konfigurišu da naznače ako je trenutna sesija grafikona "x11" ili "wayland"Jednostavno otvorite terminal i pokrenite:
Jednostavno otvorite terminal i pokrenite: provjerite varijablu okruženja
echo $XDG_SESSION_TYPE prikazuje definiranu vrijednost
U mnogim slučajevima, odgovor će jednostavno biti:
x11
o:
wayland
Na primjer, korisnik Manjaro KDE-a je komentirao da je primjena ove metode rezultirala "x11" , što potvrđuje da njihova radna površina i dalje koristi X server uprkos njihovoj znatiželji da isprobaju Wayland. Iako bi bili uzbuđeni da vide "wayland", priznali su da, barem za sada, ne planiraju posvetiti vrijeme instaliranju i konfigurisanju svega u tom novom okruženju.
Međutim, postoji jedna stvar koju treba imati na umu: Ne postavljaju sve konfiguracije ovu varijablu Slično tome, oni ga ili ispravno ažuriraju ili ne. U nekim neobičnim sistemima, visoko prilagođenim sesijama ili laganim upraviteljima prozora, vrijednost možda nije pouzdana ili možda čak nije ni definirana. Stoga je dobra ideja kombinirati ovu metodu s drugima, kao što je korištenje... loginctl ili inspekciju procesa.
Dodatne provjere s varijablama i procesima WAYLAND_DISPLAY
Pored toga XDG_SESSION_TYPEPostoji nekoliko varijabli i brzih testova koji vam mogu pomoći da potvrdite da li ste na Waylandu ili X11, ili barem Postoji aktivan Wayland server u vašoj okolini. Jedan od najzanimljivijih je WAYLAND_DISPLAYšto se obično postavlja kada je pokrenut Wayland kompozitor.
U terminalu možete pokrenuti: check if there a Wayland compositor
echo $WAYLAND_DISPLAY prikazuje Wayland utičnicu
Ako ste u Wayland sesiji ili imate aktivnog Wayland kompozitora, vjerovatno ćete vidjeti nešto slično ovome:
wayland-0 primjer aktivnog socketa
ili sličan identifikator. Ovo ukazuje na to da je dostupan Wayland socket na koji se povezuju izvorne Wayland aplikacije. Međutim, ako je rezultat prazan, najvjerovatnije se nalazite u čisto X11 sesiji bez glavnog Wayland kompozitora (iako biste mogli pokretati Wayland aplikacije na vrlo specifičan način unutar kontejnera ili slično, ali to je druga tema).
Još jedna klasična taktika, koju mnogi korisnici primjenjuju s alatima kao što su htop, ps ili pgrepSastoji se od direktnog pretraživanja procesa kao što su Xorg, Xwayland ili samog kompozitora Waylanda (na primjer, gnome-shell u Wayland modu, kwin_wayland, swayitd.). Ako vidite da postoji proces Xorg U režimu cijelog ekrana, vaša primarna sesija je obično X11. Međutim, ako otkrijete Xwayland Ali ne Xorg, to je prilično jasan pokazatelj da Sistem radi na Waylandu i održava samo X sloj radi kompatibilnosti..
Ovaj način pregleda procesa može biti malo tehnički složeniji, ali je vrlo ilustrativan, posebno kada želite razumjeti tačno šta se podiže prilikom prijave s različitim opcijama u upravitelju prikaza (GDM, SDDM, LightDM, itd.).
Ograničenja, nijanse i važnost kombinovanja metoda
Jedna stvar koju uvijek treba imati na umu je da nijedna metoda nije nepogrešiva u svim scenarijima. Čitanje about:support U Firefoxu, može ukazivati na X11 čak i ako koristite Wayland sa Xwaylandom. Varijabla XDG_SESSION_TYPE Možda neće biti ispravno definirano u visoko prilagođenim okruženjima. Čak i rezultat loginctl show-session Ovo može dovesti do zabune ako radite sa udaljenim sesijama, kontejnerima sa vlastitim grafičkim serverom ili neobičnim konfiguracijama.
Stoga je najrazumnija stvar kombinuju nekoliko indikatora: provjerite vrstu sesije sa loginctl, proverite $XDG_SESSION_TYPE, provjerite da li postoji $WAYLAND_DISPLAY aktivni, pregledaju procese kao što su Xorg, Xwayland ili odgovarajući Wayland kompozitor i, ako je potrebno, oslonite se na specifičnu dokumentaciju za vašu distribuciju ili desktop okruženje.
Također je korisno znati koje opcije birate u upravitelju prijave: GDM, SDDM i drugi vam obično omogućavaju da birate između "Plasma (Wayland)" i "Plasma (X11)", ili između "GNOME" i "GNOME na Xorg-u". Kada znate šta ste odabrali, bit će mnogo lakše interpretirati informacije koje pružaju varijable i naredbe kada istražujete šta se dešava na vašem sistemu.
Kao što korisnici Fedore, Pop!_OS-a, Manjaro KDE-a i drugih distribucija mogu potvrditi, ovi detalji nisu samo teorija iz udžbenika: oni utiču na ponašanje alata za udaljenu radnu površinu, pretraživača, starijih aplikacija i prečica na tastaturi . Razumijevanje kako se Xorg, Wayland i Xwayland uklapaju štedi vam vrijeme kada nešto ne funkcioniše kako se očekuje.
Ako znate kako koristiti komande poput loginctl, Konsultujte se $XDG_SESSION_TYPE, recenzija $WAYLAND_DISPLAY I posmatrajte koji grafički procesi rade, imat ćete ga u ruci prilično jasnu sliku o tome koji sistem prozora upravlja vašim Linuxom u bilo kojem trenutku. S tim informacijama postaje mnogo lakše odlučiti da li se isplati isprobati Wayland, ostati malo duže na X11 ili preći na drugi u zavisnosti od potreba vaših zahtjevnijih aplikacija.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje kroz pisanje, a to je ono što ću raditi na ovom blogu, pokazivati vam sve najzanimljivije stvari o gadžetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se krećete u digitalnom svijetu na jednostavan i zabavan način.