Nadchodzi Wayland
Podczas jednego z ostatnich surfathlonów rzuciła mi się w oczy informacja o nowym kawałku uniksowego oprogramowania. Rozwijany bez wielkiego rozgłosu i dziś niemal nieznany, za kilka lat prawdopodobnie będzie jednym z kluczowych elementów absolutnie każdego biurkowego Linuksa. Mowa o serwerze wyświetlania Wayland, który ma wielką szansę stać się sensowną alternatywą dla X Window System.
X-y mają jedną kluczową zaletę. To wielki kawał oprogramowania bardzo
intensywnie testowanego od dziesiątków lat, który działa. A jednak
ilekroć uruchamiam ps ax lub top i widzę działający na moim
komputerze, zżerający kilka procent czasu procesora i kilkanaście
procent pamięci serwer X, mierzi mnie, gdy pomyślę, co tam się dzieje
pod spodem.
X Window System narodził się jako protokół wyświetlania, pomyślany z wielkim rozmachem na początku lat 80. tak, aby w pełni wykorzystać moc ówczesnych stacji roboczych z wielkimi, monochromatycznymi wyświetlaczami. Bezstanowy model wyświetlania X jest już na starcie bardzo skomplikowany. Żeby zrobić coś tak prostego jak narysowanie kreski na ekranie, trzeba kolejno: otworzyć połączenie do serwera X; utworzyć okienko; zamapować je; utworzyć maskę notyfikacji; zaczekać na zdarzenie powiadamiające, że można rysować; wywołać właściwą funkcję rysującą kreskę; wyczyścić bufor połączenia (jak to opisuje ten tutorial). System czcionek bitmapowych, wiele sposobów określania współrzędnych ekranowych, wielki zestaw prymitywów graficznych, biblioteki Athena czy Xt — wszystko to jest bagażem historycznym, z którego współczesne oprogramowanie już nie korzysta, a mimo to każdy Linux przychodzi z całym tym dobrodziejstwem inwentarza. Dwa wzajemnie niekompatybilne podsystemy renderowania tekstu? Taka jest rzeczywistość. A próbowaliście kiedyś zapanować nad tym w czystym C? Powodzenia.
Do tego X przez lata obrastał w sadełko w postaci różnych rozszerzeń protokołu, jak XRandR czy XRENDER, potrzebnych do jako takiego sensownego działania. Współczesne pulpity z bajeranckimi efektami jak falujące okna czy choćby półprzezroczyste terminale nie byłyby bez nich możliwe.
Przezroczystość sieciowa, powiadacie? Tak, ale spróbujcie zdalnie
uruchomić glxgears albo pograć w Quake'a po sesji X. Nawet Firefox,
gdy go uruchamiam przez ssh -X po szybkim łączu na serwerze oddalonym
o kilka kilometrów od domu, ślimaczy się i jest nieużywalny. Kwestię
zdalnego uruchamiania aplikacji graficznych znacznie lepiej rozwiązał
Microsoft ze swoim Remote Desktop.
Wayland ma szansę uprościć cały okołoiksowy bałagan. Jest napisany tak, by mógł wykorzystać sterowniki dla nowych kart graficznych, już istniejące dla X.org. Ma bardzo prosty model wyświetlania: to nie sam serwer wyświetla grafikę, ale po prostu udostępnia klientom swoje bufory. Współczesne biblioteki, jak Cairo, GTK+ czy Qt, już potrafią z niego korzystać. Chciałoby się powiedzieć: nareszcie!
Z niecierpliwością czekam dnia, w którym na żadnej z moich linuksowych maszyn nie będzie działał żaden serwer X.

2 Comments
jakoś uruchomić NeWS, tak dla porównania...
Ciekawie (choć to głównie dla systemów embedded) wygląda też Twin Keitha
Packarda (http://cgit.freedesktop.org/twin/) -- gdzieś mam wolnostojącą
binarkę mieszczącą się w 32 KB.
Add comment