Dlaczego Wayland jest lepszy?

177

Jak niedawno ogłosił Mark Shuttleworth, Ubuntu będzie dążyć do wykorzystania Waylanda jako menedżera wyświetlania.

Jakie są największe różnice między X11 a Waylandem? Dlaczego Wayland ulepszy system Ubuntu?

Hillar
źródło
5
W grudniu 2013 r. Wygląda na to, że Ubuntu oparty na Unity będzie używał serwera wyświetlającego Mir zamiast kompozytu opartego na Wayland od Ubuntu 14.10: link link Inne warianty Ubuntu prawdopodobnie przeniosą się do Wayland: link
Diego
4
Oto świetny film wyjaśniający X i dlaczego ludzie chcą go zastąpić: youtube.com/watch?v=cQoQE_HDG8g
Jason
Ubuntu 18 (Bionic) będzie teraz domyślnie używał xorga, ale wayland nadal jest opcją na ekranie logowania: blog.ubuntu.com/2018/01/26/…
Kris
Powiedziałbym, że X jest lepszy. Nie wchodziłbym w sprawy techniczne. Ale powiem tylko, że upuszczam ramki na YouTube z Waylandem, jeśli zmienię rozmiar okna lub przejdę / wyjdę z trybu pełnoekranowego. Z X nie ma problemów. Mimo że prędkość jest taka sama. Również na Wayland kursor myszy jest luźniejszy niż na X. X wciąż jest moim numerem 1
Luka

Odpowiedzi:

136

Możesz zobaczyć stronę architektury Wayland, aby zobaczyć, jak różni się ona wyglądem. Ma uprościć cały stos grafiki, zmuszając wszystko przez standardowy stos GEM / DRM bezpośrednio do jądra i zarządzając samym komponowaniem.

Porównaj to do stosu X, w którym wszędzie są bity. Niektóre z bałaganu X przeszły przez elastyczny projekt, niektóre narastają. Wszystkie kompozytory (Compiz / Metacity / Mutter / KWin / etc) zostały dodane w późniejszym terminie. U ich podstaw leży hackowanie tego, co X powinien robić sam. Jeśli sprawy będą się rozszerzać na zewnątrz, tak jak były, dojdziemy do punktu, w którym projekt stanie się niemożliwy do utrzymania.

Podsumowując, gdy dostępna jest obsługa sprzętowa, powinno to uczynić cały stos bardziej wydajnym i mniej bolesnym w użyciu w standardowych konfiguracjach.

Istnieje jednak kilka problemów, na które nie widziałem dotychczas środków zaradczych:

  • X jest dość świadomy sieci. Możesz wysyłać okna do innych komputerów, możesz mieć wiele ekranów ze zdalnymi loginami i wszelkiego rodzaju funky. To może wydawać się dość specjalistyczne, ale jest to powszechnie stosowana technologia. W porównaniu z tym Wayland wydaje się dość lokalny i statyczny.

  • Istnieje również obsługa sterowników. Sterowniki o zamkniętym źródle jeszcze nie obsługują technologii KMS / Shared-GEM / Shared-DRM, na których rozwija się Wayland. Purysta może być w porządku z Nouveau, ale ktoś, kto płaci 100-400 funtów za wysokowydajną kartę graficzną 3D, nie będzie zadowolony z słabej wydajności 3D, którą uzyskaliby przy obecnym otwartym sterowniku.

    Aktualizacja: Nvidia pracuje zarówno nad Waylandem, jak i Mirem .


2018 aktualizacja . 17.10 używał Waylanda jako domyślnego serwera wyświetlania (chyba że masz zamknięty sterownik lub sterownik, który go nie obsługuje lub nie potrzebujesz X). Zarówno 18.04, jak i 18.10 używają X jako globalnej wartości domyślnej (chociaż można zainstalować Wayland).

Nie jestem odpowiedzialny za nic poza tą pozycją, wygląda na to, że wciąż jesteśmy metryczną miarą Nvidii od uzyskania prawdziwej przyczepności. Do tego momentu nie sądzę, że zobaczymy wystarczającą ilość umysłu i rozwijającej się mocy za Waylandem. Rynek gier / wydajności korzysta z X. Rynek MCE korzysta z X (i bezpośrednich buforów ramki). Nie jestem pewien, czy Wayland kiedykolwiek będzie miał prawdziwą szansę.

Oli
źródło
21
Przejrzystość sieci jest przesadzona z kilku powodów. 1. Przekazywanie Pure X jest wystarczająco szybkie tylko przez sieć LAN. Przez Internet surowe X nie nadaje się do użytku z powodu opóźnień. Aby uzyskać przyzwoitą wydajność, musisz użyć protokołów stron trzecich, takich jak NX lub VNC. 2. Zarówno NX, jak i VNC są ogromnym bólem w konfiguracji ze względu na architekturę X. Z Waylandem powinno być łatwiej. 3. Niewiele nowoczesnych zestawów narzędzi korzysta z kodu rysunkowego X. Po prostu rysują się na mapie bitowej i wysyłają ją do X. Jest to dokładnie to samo co Wayland i będzie miało te same cechy sieci.
Timmmm,
4
Zgadzam się z punktem 1, ale przez dobrą sieć LAN, przekazywanie X jest nietykalne ze względu na jakość lub wydajność. O wiele lepsze niż którakolwiek alternatywa z mojego doświadczenia.
Oli
1
Stan na 2013 r. Jest bardziej przejrzysty w odniesieniu do przejrzystości sieci: askubuntu.com/a/359870/203271
Diego
2
@poolie: Wygląda na to, że zmienili zdanie. ;-)
Peque
2
From BionicBeaver / ReleaseNotes : „X jest domyślnym serwerem wyświetlania. Wayland jest dostarczany jako podgląd techniczny i oczekuje się, że będzie domyślnym serwerem wyświetlania w 20.04 LTS . Aby go wypróbować, po prostu wybierz Ubuntu na Wayland z koła zębatego przy logowaniu screen. Dzienniki X.org można teraz znaleźć w ~ / .local / share / xorg "[moje podkreślenie]
Dennis Williamson
56

Istnieje wiele różnic między X i Wayland. Prawdopodobnie największym z nich jest to, że Wayland nie rysuje .

X ma dwa rysunkowe interfejsy API. Jeden z nich jest częścią podstawowego protokołu X11, który jest starożytny, bezużyteczny i nikt go nie używa. Drugim jest rozszerzenie XRender, które zapewnia nowoczesne operacje kompozytowe, między innymi takie jak gradienty. Tego właśnie używa Kair. X ma również interfejsy API do rysowania czcionek.

Wayland nie ma rysunkowych interfejsów API. Klient Wayland otrzymuje uchwyt bufora DRM, który jest w zasadzie wskaźnikiem do pewnej pamięci graficznej; Wayland nie wie ani nie obchodzi, w jaki sposób klient korzysta z tego bufora. W ujęciu X oznacza to, że wszystkie aplikacje są renderowane bezpośrednio - żądania rysowania nie muszą przechodzić przez serwer.

Jedyne renderowanie, które wykonuje Wayland, to kopiowanie buforów klienta na ekran.

Pod względem korzyści Wayland jest o wiele mniej skomplikowany niż X, co powinno ułatwić jego utrzymanie - chociaż część tej prostoty wynika z przesunięcia złożoności (np .: jak w rzeczywistości wykorzystać ten bufor, przezroczystość sieci) na inne warstwy stos. Uczyniając klientów odpowiedzialnymi za wszystkie ich renderowanie, klienci mogą być mądrzejsi w kwestiach takich jak podwójne buforowanie.

Istnieją inne korzyści poza grafiką. Na przykład znacznie łatwiej jest do piaskownicy.

RAOF
źródło
2
Brzmi jak Microsoft DirectX jak rzeczy?
Anwar
3
Używam podstawowego API do rysowania protokołu X11, ponieważ jest szybszy niż XRender.
étale-cohomology
3
Dostaję też Microsoft Wibes od Wayland i systemd. I nie, to nie jest dobra rzecz. Łamają podstawowe zasady tworzenia oprogramowania. W systemd tylko dlatego, że jest to łatwiejsze dla programistów systemd. W drodze, bo chcą szybszych gier (?) I renderowania, i rzucają przy tym wiele dobrych rzeczy.
Anders
18

Główną różnicą w moich oczach jest to, że Wayland jest bliżej jądra niż X-Server. Wraz z przeniesieniem sterowników graficznych z X do jądra (znane jako ustawienie trybu jądra, KMS), Wayland planuje wykorzystać tę nową funkcjonalność do zastąpienia X. Można się spodziewać, że ...

Mniej miejsca niż X - ponieważ wyświetlacz jest obsługiwany przez jądro Wayland nie będzie musiał zaimplementować tyle, aby był użyteczny. Działa to w obie strony, ponieważ podejrzewam, że przekazywanie X (spójrz na jeden ekran na innym komputerze) może zniknąć z X.

Funkcje KMS: Możliwość zmiany rozdzielczości ekranu bez ponownego uruchamiania serwera X (chociaż uważam, że to zostało naprawione w X jakiś czas temu, przynajmniej dla NVIDII), debugowanie konsoli w panice jądra dla chipsetów Intel (przejście do Nouveau), jeśli lubisz coś w tym rodzaju.

Czy ktoś może mnie poprawić, jeśli się mylę?

TGM
źródło
4
KMS i GEM nie przenosi sterowników graficznych do jądra, tylko niektóre małe części są przenoszone do jądra (bity, które mówią bezpośrednio do sprzętu i muszą znajdować się w jądrze, aby różne sterowniki mogły współistnieć, np. zapisywanie do portów I / O i zarządzanie pamięcią). KMS i GEM są już używane przez X, przynajmniej w przypadku nowoczesnych sterowników open source (Intel, Radeon, Nouveau). BTW: Poważnie wątpię, że przeniesienie całego sterownika graficznego do jądra zostanie zaakceptowane przez Linusa ...;)
JanC
4
Aha, i KMS nigdy nie był potrzebny do zmiany rozdzielczości ekranu (było to możliwe, odkąd korzystałem z X ponad 10 lat temu), ale pozwala na różne sterowniki (np. Sterownik bufora ramki konsoli, sterowniki X, a teraz sterowniki Wayland) łatwiej współpracować. W przeszłości nie zawsze było oczywiste dla każdego z nich, w jakim „stanie” sprzęt graficzny jest w pewnym momencie, i zastosowano wiele domysłów lub zależnych od sterownika obejść.
JanC
1
Nie jest do końca prawdą, że przekazywanie X zniknie, ponieważ X może być nadal używany jako klient Wayland. wayland.freedesktop.org ma na to przykład. Ale X i tak jest dość okropnym sposobem na zrobienie czegoś takiego. Czas wymienić. W wielu przypadkach wydaje się, że takie rzeczy jak GTK z Broadwayem byłyby lepszym podejściem.
Jo-Erlend Schinstad
3
Rozszerzenie RandR umożliwia zmianę rozdzielczości ekranu bez ponownego uruchamiania serwera X.
Anonimowy
14

Wszystkie pozostałe posty podkreślają zalety Wayland, ale nie wszystko jest dobre. Największą przewagą X nad Waylandem jest to, że X działa w sieci. X jest przezroczysty dla sieci, możesz wyświetlić okno lub XDMCP całą sesję na terminalu, podczas gdy rzeczywisty program działa na innej, zwykle mocniejszej maszynie. W przypadku czegoś takiego jak Wayland zniknął pomysł na przezroczystość sieci. Może w dzisiejszych czasach nie jest to tak bardzo wymagane w przypadku szybkich sieci i innych protokołów, takich jak VNC i RDP, pomyślałem, że wspomnę o tym dla kompletności.

Christian Hujer
źródło
Właśnie to uważam za największą przewagę X nad proponowanym Waylandem.
Kris Jace
7

Krótko mówiąc, mamy nadzieję na lepszą grafikę (mniej błędów, szybszy, łatwiejszy w użyciu). Nawet rzeczy mogą być możliwe pewnego dnia, które nie były wcześniej. Osobiście uważam, że to przynajmniej urozmaici rzeczy, jak zawsze konkurencja.

ja robię
źródło
3

Dwie małe rzeczy, które każdy zauważy dość szybko w codziennej pracy:

  • Wayland eliminuje cięcia papieru, które zostały uznane za zbyt trudne do naprawienia w X11. Słynny przykład: używanie klawiszy funkcyjnych (głośność głośnika, jasność wyświetlacza itp.), Gdy menu jest otwarte lub ekran blokady jest włączony.
  • Wayland jest lepszy w urządzeniach wejściowych. Po pierwsze, istnieje wiele innych opcji konfiguracji touchpadów, w tym trwałe ustawienie dotknij-kliknij.
Nico Schlömer
źródło
1
Wayland jest gorszy, jeśli program jest zablokowany z jakiegoś powodu. Dobrze mieć różne wm. Regularnie korzystam z sieci X11 (każdego dnia). Niektóre programy przestały działać w Wayland (korzystam z Ubuntu 18.04)
Anders