Serwera X nie da się już naprawić: Wayland jedyną nadzieją na przezwyciężenie 26 lat historii
Wydanie przez Canonical własnego serwera wyświetlania, MirDisplay Server, odwróciło przez chwilę uwagę użytkowników odWaylanda. Wiemy już jednak, że Mir nikomu poza Canonicalem się nieprzyda, pisany jest wyłącznie z myślą o współpracy z powłokąsystemową Unity. Nawet dystrybucje pochodne względem Ubuntu (np.Kubuntu czy Xubuntu) będą musiały w przyszłości pozostać przyX.org… albo przejść właśnie na Waylanda, będącego obecnienajpoważniejszym kandydatem na następcę X-ów. O znaczeniuWaylanda, jego relacji z X.org, zaletach, brakach i potrzebachnowoczesnego desktopu wypowiedzieli się doświadczony programistaLinuksa Eric Griffith i jeden z kluczowych deweloperów X.org –Daniel Stone. Nie ma co liczyć na to, że ich wyjaśnieniaprzekonają Shuttlewortha do zrezygnowania z Mira, ale powinnywpłynąć na postawę twórców innych dystrybucji i środowiskgraficznych.Jak piszą autorzy artykułu opublikowanego na łamach Phoroniksa,dalsze naprawianie X-ów, którym zajmują się od 10 lat, jest jużw praktyce pozbawione sensu. Przez ten cały czas monstrualny serwerwyświetlania (który swego czasu w złożoności dorównywał całymsystemom operacyjnym – miał np. własny serwer wydruku) obrastałw kolejne wtyczki i rozszerzenia, mające zaradzić jego brakom,jednak jego system rozszerzeń zapewnia jedynie minimalne wsparciedla wersjonowania. Prowadzi to do sytuacji, w których jeśliaplikacja wymaga jednej wersji rozszerzenia, podczas gdy użyty wniej toolkit potrzebuje innej wersji, to nie ma sposobu byprzewidzieć, którą wersję się otrzyma. W najlepszym razieprowadzi to do zwrócenia najstarszej wersji, z którą wszystkozadziała, w najgorszym – klient i serwer X-ów będą wysyłałysobie bezużyteczne dane. [img=xserver]Serwer X-ów to też liczne, wzajemnie niezgodne podsystemy,robiące to samo. Na przykład w wypadku podsystemu wejścia (Input)mamy do dyspozycji Core X11, Xinput 1.0, Xinput 2.0 i Xinput 2.2.Xinput 1.0 został porzucony, ale pozostałe okazały sięwspółzależne od siebie – i podobno jedynie trzy osoby na świeciewiedzą, jak to wszystko ze sobą współpracuje, a jedna z tych osóbwolałaby tego nie wiedzieć. Równie paskudnie wygląda kwestiapracy z kompozytorem. Jak pisze Griffith: deweloperzy mówią X okompozycji przez Composite Extension. W prostych scenariuszach(desktop czy GL) to jest do przyjęcia. Ale jeśli chcesz użyćsprzętowych nakładek, dochodzi do katastrofy. Nicbowiem nie utrzymuje synchronizacji między oknami i podoknamiwyświetlającym media, ich zdarzenia są obsługiwane niezależnie,i można się tylko modlić, by zbyt się to wszystko niezdesynchronizowało.Do tego dochodząnierozwiązywalne w obecnej architekturze software'owej problemy zfontami, DPI, wygaszaczami ekranu i ich obsługą klawiatury, drzewemobiektów w oknie czy zapisywaniem konfiguracji. Niekiedy próbowanoje rozwiązywać – deweloperzy pisali specyfikację rozszerzenia,ale gdy próbowali je zaimplementować, okazywało się, że zabardzo popsuje ono istniejący X Model. I tak wyglądać to miałoprzez ostatnie 26 lat.Wayland zostawia za sobą te 26lat zależności, uniemożliwiających naprawienie współczesnychproblemów. Wymusza kompozycję, rozumianą nie jako okienkoweefekciarstwo, ale jako doskonałość ramek – każdypiksel jest tym, czym miał być, tam, gdzie miał być i kiedy miałbyć. Wprowadza wersjonowany, przewidywalny model rozszerzeń,upraszcza model urządzeń wejścia, pozbawiając go dotychczasowych,„sadomasochistycznych” form, pozbywa się własnego API rysowania(to już pozostaje całkowicie w gestii klientów – nie ma tamjakichś własnych niskopoziomowych metod rysowania okręgów czylinii prostych, rodem z lat 80). Klientom pozostają też fonty czyobsługa wielu monitorów. Znikają też problemy z płynnościąodtwarzania wideo czy niemożliwością wykorzystania klawiszy mediówprzy aktywnym wygaszaczu ekranu.Autorzy twierdzą też, że niema co płakać za mitycznymi możliwościami sieciowymi X-ów.Jedynie kilka w praktyce już nieużywanych podsystemów X było wpełni transparentnych sieciowo, a współczesne X-y przez siećsprowadzają się do synchronicznego VNC, o wiele przecież gorszegoniż znane z Windows RDP. Tymczasem Wayland, ze względu na swojąasynchroniczną architekturę, pozwala na zdalny dostęp (i to bezspecjalnego wysiłku). Istnieje już dla niego prototypowa,wysokowydajna wersje VNC. Artykuł wywołał ciekawądyskusję na Slashdocie, pokazującą m.in. że wieluużytkowników Linuksa tak bardzo przyzwyczaiło się do swojegoserwera wyświetlania, że przestało zauważać jego dotkliwe wady,które pewnie gdyby wystąpiły w Windows czy OS-ie X, byłybynieustannie wytykane. Z tego jednak co Griffith przedstawia widać,że nie będzie nigdy mowy o Linuksie na desktopie, póki będzie sięon trzymał X.org. Jeśli zaś chcecie jeszczeposłuchać, jak bardzo złe jest X, to opowie o tym w poniższymwideo Daniel Stone:[yt=http://www.youtube.com/watch?v=RIctzAQOe44]