Wayland (serwer wyświetlania)

Wayland
Logo Wayland
Logo programu
Ilustracja
Demonstracja działania
AutorKristian Høgsberg
Pierwsze wydanie2008
Aktualna wersja stabilna1.12 / 21 września 2016; ponad 6 lat temu[1]
Język programowaniaC
System operacyjnyUniksopodobny
Rodzajzarządzanie grafiką
LicencjaLicencja MIT, LGPLv2, GPLv2
Strona internetowa
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Serwer wyświetlania Wayland opiera się na EGL

Waylandprotokół systemu okien wraz z towarzyszącą mu biblioteką go implementującą stworzoną dla systemu Linux w języku C. Umożliwia uproszczenie procesu wyświetlania grafiki w systemach uniksowych poprzez połączenie w jednej aplikacji menedżera kompozycji oraz systemu okien. Projekt zapoczątkował w roku 2008 Kristian Høgsberg (w czasie gdy pracował w firmie Red Hat). Głównym powodem jego powstania było niezadowolenie z niedostosowanej do współczesnych wymagań architektury systemu X, obecnie najpopularniejszego rozwiązania tego typu. Høgsberg wyraził swój cel słowami „każda klatka będzie doskonała, przez co rozumiem, że aplikacje będą w stanie kontrolować renderowanie wystarczająco (dobrze), że nigdy nie zobaczymy przycinania się, lagów, przerysowywania, lub migotania“[2][3].

Wayland jest wolnym oprogramowaniem. Kristian Høgsberg zadeklarował, że źródła bibliotek libwayland-server i libwayland-client będą docelowo miały licencję LGPLv2 (pierwotnie były dostępne na licencji MIT), a źródła demo kompozytora i klientów również będą docelowo miały licencję LGPLv2 (pierwotnie były na licencji GPLv2)[4][5].

Budowa

Prezentacja działania serwera Wayland

W klasycznym podejściu uniksowym system okien oraz menedżer okien były niezależnymi aplikacjami, przy czym ta pierwsza stanowiła warstwę pośredniczącą między menedżerem (oraz pracującymi pod jego kontrolą aplikacjami), a sprzętem. Wraz z rozwojem aplikacji multimedialnych oraz pojawieniem się menedżerów kompozycji wykorzystujących do rysowania interfejsu zaawansowane efekty graficzne, taka architektura zaczęła stanowić wąskie gardło. Aby obejść te ograniczenia, coraz więcej funkcji serwera X zaczęło przejmować jądro oraz poszczególne menedżery.

Podstawowym założeniem architektury projektu Wayland jest uproszczenie procesu zarządzania oknami poprzez usunięcie serwera X jako warstwy pośredniczącej, poprzez:

  • połączenie menedżera okien oraz systemu okien w jednej aplikacji — menedżer może renderować obraz bezpośrednio do pamięci wideo,
  • wykorzystanie istniejących funkcji jądra systemu takich, jak Direct Rendering Manager (DRM), Kernel Mode-Setting (KMS) i systemem zarządzania pamięcią Graphics Execution Manager (GEM)[6][7].

Od czerwca 2010 roku kompozytor Waylanda używa tylko OpenGL ES (przedtem OpenGL)[8].

Wayland może także gościć serwer X, zapewniając tym samym wsteczną kompatybilność.

Zainteresowanie mediów

Wayland pierwotnie ukazał się jako nowy projekt w serwisie Phoronix roku 2008, w artykule zatytułowanym "Wayland: A New X Server For Linux". Kristian w odpowiedzi na zainteresowanie mediów stwierdził, że nie jest to nowy X-serwer, lecz nowy serwer wyświetlania, zaznaczając jednocześnie, że projekt jest jeszcze młody i niedojrzały[9].

Zastosowania

4 listopada 2010 roku Mark Shuttleworth ogłosił, że bliżej nieokreślone przyszłe wersje Ubuntu (lecz nie 11.04) będą wykorzystywały Wayland jako ich system okien w interfejsie Unity[10] (plany te zostały porzucone na rzecz ich własnego rozwiązania Mir). Firmy Intel i Nokia zamierzały wykorzystywać go w systemie MeeGo[11][12], jednak prace nad nim zostały ostatecznie zawieszone. Kontynuacją MeeGo także opartą na Waylandzie jest od 2013 Sailfish OS fińskiej firmy Jolla, wydawany dla urządzeń przenośnych i wbudowanych.

Od wersji 25 system operacyjny Fedora wykorzystuje Wayland jako system wyświetlania w przypadku użycia domyślnego dla tej dystrybucji środowiska graficznego GNOME.

W sierpniu 2017 firma Canonical zapowiedziała, że w wersji 17.10 systemu operacyjnego Ubuntu domyślną sesją będzie środowisko graficzne GNOME z Waylandem jako systemem wyświetlania. W wersji 17.04 system wyświetlania Wayland był dostępny w repozytoriach jako element środowiska GNOME.

Wayland traktowany jest jako zamiennik serwera X.org, lecz ma także inne potencjalne zastosowania, jak choćby goszczenie innych serwerów X i sesji logowania GDM.

Zobacz też

Przypisy

  1. [ANNOUNCE] wayland 1.12.0. (ang.).
  2. Michael Larabel (03 listopada 2008) Wayland: A New X Server For Linux, Phoronix (ang.)
  3. DJ Walker-Morgan (6 listopada 2008) New Wayland X server looks to how a modern desktop works, The H (ang.)
  4. http://lists.freedesktop.org/archives/wayland-devel/2010-November/000249.html Kristian Høgsberg: Wayland license clarification 2010-11-22 (ang.)
  5. http://lists.freedesktop.org/archives/wayland-devel/2011-February/000764.html Florent Gallaire (FLOSS Engineer & Lawyer): Wayland license clarification 2011-02-27 (ang.)
  6. wayland google groups (ang.)
  7. Red Hat developer creates new X server, Wayland. freeculturenews.com. [zarchiwizowane z tego adresu (2012-06-10)]. (ang.)
  8. http://www.phoronix.com/scan.php?page=news_item&px=ODMyNA – Wayland Meets Some Summer Love w/ New Changes (Phoronix) (ang.)
  9. Casually Defiant (Kristians Blog) - Premature publicity is better than no publicity (ang.)
  10. http://www.markshuttleworth.com/archives/551 Unity on Wayland (ang.)
  11. http://www.phoronix.com/scan.php?page=news_item&px=ODYwMQ Where Wayland May First Appear In Use By A Distro (ang.)
  12. https://web.archive.org/web/20110718034332/http://permalink.gmane.org/gmane.comp.handhelds.meego.devel/6643 (ang.)

Linki zewnętrzne

Media użyte na tej stronie

Wayland Logo.svg
To jest logo: Wayland – computer display server protocol
Wayland display server protocol.svg
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
en:Wayland (display server protocol)
① The en:evdev module of the en:Linux kernel gets an event and sends it to the en:Wayland compositor. This is similar to the X case, which is great, since we get to reuse all the input drivers already in the kernel.
② The Wayland compositor looks through its scenegraph to determine which window should receive the event. The scenegraph corresponds to what's on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph. Thus, the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates, by applying the inverse transformations. The types of transformation that can be applied to a window is only restricted to what the compositor can do, as long as it can compute the inverse transformation for the input events.
③ As in the X case, when the client receives the event, it updates the UI in response. But in the Wayland case, the rendering happens in the client, and the client just sends a request to the compositor to indicate the region that was updated.
④ The en:Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an en:ioctl to schedule a pageflip with KMS
Wayland demo 2.png
Autor: Originally uploaded by Darxus (Transferred by Ivanics), Licencja: MIT
Screenshot of Wayland demo software. Applications running: dnd, terminal, eventdemo, image, gears, simple-client, smoke. http://wayland.freedesktop.org/