Co to jest Wayland w systemie Linux i czym różni się od X?

Co to jest Wayland w systemie Linux i czym różni się od X?

X11, czyli X Window System, umożliwia graficznemu środowisku pulpitu wyświetlanie i sterowanie oknami. Wayland jest następcą X11. Został zaprojektowany tak, aby był szybszy i bezpieczniejszy. Oto, co musisz o nich wiedzieć.

Co to jest Wayland?

Wayland to nowoczesny zamiennik X11, który od dziesięcioleci jest domyślnym systemem okienkowym w Linuksie. Wayland to protokół komunikacyjny, który definiuje przesyłanie wiadomości między serwerem wyświetlania X Window a aplikacjami klienckimi. Projekt Wayland udostępnia biblioteki klienckie i serwerowe, które umożliwiają aplikacjom korzystanie z protokołu.

Projekt Wayland został zapoczątkowany przez programistę Red Hata w 2008 roku.

Wiele imion X

X Window System to system okienkowy, po raz pierwszy wydany dla systemu Unix przez Massachusetts Institute of Technology w 1984 roku. Aplikacje mogą opierać się na funkcjonalności oferowanej przez system okienkowy w celu generowania interfejsów użytkownika.

Do 1987 roku system X Window osiągnął wersję 11 i stał się znany jako X11. Jest teraz zarządzany przez Fundację X.Org . Nadal jest w wersji 11, chociaż od 1987 roku pojawiło się wiele mniejszych wydań. W chwili pisania tego tekstu obecną stabilną wersją jest X11R7.7 .

„X” w nazwie nie oznacza dziesięciu cyframi rzymskimi, ani nie sugeruje „Xtra”, „Xtended” ani niczego podobnego. Poprzedni system okien nosił nazwę „W” od „okien” i po prostu przeszli do następnej litery alfabetu, kiedy rozpoczynali nowy projekt.

Usłyszysz system X Window określany jako „X”, „X11”, „Xorg”, „X Windows” i „X Window System”.

Jak działa X11

System X Window obsługuje zdarzenia i prymitywy niskiego poziomu, takie jak interakcja z myszą oraz rysowanie i przesuwanie okien. Aplikacje obsługują wizualizacje i projekt interfejsu. Wygląd okien, jakie mają przyciski i gdzie się one znajdują, to wybory, których dokonuje programista aplikacji. System X Window rysuje wynikowy projekt na ekranie.

X11 zawiera definicję komunikacji, która musi przechodzić pomiędzy różnymi komponentami działającego systemu X Window. Ta komunikacja jest wymagana, ponieważ kod, którego aplikacja obsługująca X-y używa do rysowania okien i elementów interfejsu, nie znajduje się wewnątrz aplikacji. Ta praca jest współdzielona między serwerem X a Menedżerem okien.

Aplikacje są klientami serwera X. Menedżer okien jest specjalnym typem klienta. Serwer X jest odpowiedzialny za zarządzanie zasobami, wykonywanie żądań rysowania i kierowanie zdarzeń, takich jak naciśnięcia klawiszy i kliknięcia myszą, do odpowiednich aplikacji.

Działa również jako pośrednik w komunikacji między Menedżerem okien a aplikacjami, pośrednicząc w przekazywaniu wiadomości między nimi. Menedżer okien przechowuje listę okien, które aplikacje mają otwarte, gdzie znajdują się na ekranie, jaki mają rozmiar, czy zachodzą na siebie i tak dalej.

Compositing Window Manager utrzymuje pozaekranowy bufor dla każdego okna. Łączy te bufory w pojedynczy obraz reprezentujący najwyższe okno — reprezentujące cały pulpit — który jest zapisywany na ekranie.

Wszystkie nowoczesne graficzne środowiska graficzne , w tym GNOME i KDE, używają menedżerów okien do tworzenia kompozycji.

Jak działa Wayland

Wayland ma rozwiązać problemy X11. Architektura X11 wymaga dużej ilości komunikatów. Serwer X znajduje się pomiędzy klientami a Menedżerem okien. Znajduje się również między wszystkim i — za pośrednictwem jądrasprzętem graficznym . Ilość wiadomości może prowadzić do opóźnień i opóźnień, skoków wizualnych.

Istnieje również duża baza kodów. Jest aplikacja serwerowa, aplikacja Window Manager i biblioteka X11, z której korzystają klienci. Im większa (i starsza) jest twoja baza kodu, tym trudniej jest ją utrzymać i tym bardziej będziesz zmagać się ze starszym kodem.

Zmieniając architekturę, Wayland zmodernizował i usprawnił bazę kodu, zapewniając korzyści w zakresie wydajności i zwiększone bezpieczeństwo.

W efekcie połączyli serwer i menedżera okien w jedną aplikację. Usunęli każdy kod, który wykonywał funkcje, które są teraz wykonywane przez jądro. Zamiast powielać wysiłek, wykorzystali funkcjonalność jądra.

Dzięki Wayland kompozytor i aplikacja kliencka komunikują się bezpośrednio. Kompozytor utrzymuje swoje wewnętrzne mapowanie, które okna znajdują się na pulpicie oraz jaki jest ich rozmiar i stan. Pośredniczy w zdarzeniach zmiany klawiatury, myszy i okien oraz wysyła je do aplikacji, które są właścicielami tych okien.

Aplikacje odpowiednio aktualizują interfejs użytkownika. Główną różnicą jest to, że renderowanie odbywa się wewnątrz samych aplikacji, przy użyciu połączonych bibliotek Wayland.

Aplikacja aktualizuje bufor używany do przechowywania okna lub tworzy nowy i odrzuca stary. Następnie aplikacja kliencka wysyła powiadomienie do kompozytora, informując go o zaktualizowaniu mapowania okien i użyciu nowego lub zaktualizowanego bufora wideo.

Ta uproszczona architektura i nowoczesny projekt kodu zapewniają poprawę wydajności, w szczególności zmiany rozmiaru i przeciąganie okien, które wydają się płynne i płynne.

Powolna adopcja Waylanda przez aplikacje

Wayland to domyślny system okienkowy w Debianie 10 i nowszych, Fedorze 34 lub nowszych, Ubuntu 18.04 lub nowszych oraz innych dystrybucjach, takich jak Arch Linux. Mimo to, najczęściej Wayland uruchamia aplikacje X11.

Istnieje warstwa kompatybilności o nazwie XWayland, która pozwala aplikacjom X11 działać pod Waylandem. Było to wymagane, ponieważ większość aplikacji X11 nie została zmodyfikowana i przeniesiona do Wayland.

W środowiskach komputerowych, które udostępniają kompozytorów Wayland, takich jak GNOME, oficjalne aplikacje, takie jak GNOME Text Editor i Maps, Files i Calendar, są natywnymi aplikacjami Wayland. Ale zdecydowana większość aplikacji X11 to wciąż nietknięte, natywne aplikacje X11.

Niektórzy autorzy aplikacji X11 prawdopodobnie mają nadzieję, że ich aplikacja działa dobrze z XWayland i mogą uniknąć konieczności przerabiania ich na aplikacje Wayland. Nie zdziw się, jeśli absorpcja i migracja do Wayland będzie długa i powolna, a nowe aplikacje ją zaadoptują, ale większość istniejących aplikacji X11 pozostanie niezmieniona, pokładając swoje nadzieje w XWayland.

Czy używasz Waylanda lub X11?

Jeśli używasz jednej z głównych dystrybucji Linuksa, prawdopodobnie korzystasz już z Wayland. Możesz to sprawdzić, wydając następujące polecenie.

echo $XDG_SESSION_TYPE

W systemie korzystającym z Wayland dane wyjściowe będą następujące:

A w systemie z systemem X Window zobaczysz:

Rzadko XDG_SESSION_TYPEzmienna środowiskowa nie jest ustawiona. W takim przypadku możesz zamiast tego użyć tego polecenia:

loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Type --value

Wewnętrzne, zagnieżdżone loginctlpolecenie używa show-userpolecenia do wyświetlenia właściwości nazwanego użytkownika. Polecenie whoamipodaje nam nazwę bieżącego użytkownika . Opcja -p(property) ogranicza wyjście z loginctldo informacji o ustawieniu „Display”, a my używamy tej --valueopcji, aby zwrócić tylko wartość. Nie chcemy, aby w odpowiedzi od loginctl. Wszystko to daje nam identyfikator sesji.

Przekazujemy identyfikator sesji do outside loginctli używamy show-sessionpolecenia do wyświetlenia atrybutów sesji. Używamy -popcji (właściwości), aby ograniczyć dane wyjściowe do informacji o typie sesji i używamy opcji, --valueaby wyświetlić wartość bez etykiety „Type=”.

Na komputerze korzystającym z Wayland zobaczysz:

Używając polecenia loginctl w Fedorze Linux, aby określić, czy używany jest Wayland lub X11

Jeśli korzystasz z systemu X Window, zobaczysz:

Używając polecenia loginctl w Manjaro inux, aby określić, czy używany jest Wayland lub X11

Czy powinieneś używać Waylanda lub X11?

Jeśli nie masz problemów, równie dobrze możesz trzymać się tego, czego już używasz. Ale jeśli zauważysz niestabilność lub gwałtowne aktualizacje ekranu, możesz spróbować przejść do dowolnego, którego nie używasz.

W GNOME, jeśli chcesz zamienić się i wypróbować inny system, na ekranie logowania kliknij swoją nazwę użytkownika, a następnie kliknij ikonę koła zębatego w prawym dolnym rogu ekranu.

Rozwijane menu w GNOME, które pozwala wybrać środowisko pulpitu oparte na Wayland lub X11

Menu oferuje różne wersje GNOME. Opcje, które wspominają o „Xorg”, używają systemu X Window, a te, które nie używają Waylanda.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *