r   e   k   l   a   m   a
r   e   k   l   a   m   a

Serwera X nie da się już naprawić: Wayland jedyną nadzieją na przezwyciężenie 26 lat historii

Strona główna Aktualności

Wydanie przez Canonical własnego serwera wyświetlania, Mir Display Server, odwróciło przez chwilę uwagę użytkowników od Waylanda. Wiemy już jednak, że Mir nikomu poza Canonicalem się nie przyda, 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ć przy X.org… albo przejść właśnie na Waylanda, będącego obecnie najpoważniejszym kandydatem na następcę X-ów. O znaczeniu Waylanda, jego relacji z X.org, zaletach, brakach i potrzebach nowoczesnego desktopu wypowiedzieli się doświadczony programista Linuksa Eric Griffith i jeden z kluczowych deweloperów X.org – Daniel Stone. Nie ma co liczyć na to, że ich wyjaśnienia przekonają Shuttlewortha do zrezygnowania z Mira, ale powinny wpłynąć na postawę twórców innych dystrybucji i środowisk graficznych.

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 serwer wyświetlania (który swego czasu w złożoności dorównywał całym systemom 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 wsparcie dla wersjonowania. Prowadzi to do sytuacji, w których jeśli aplikacja wymaga jednej wersji rozszerzenia, podczas gdy użyty w niej toolkit potrzebuje innej wersji, to nie ma sposobu by przewidzieć, którą wersję się otrzyma. W najlepszym razie prowadzi to do zwrócenia najstarszej wersji, z którą wszystko zadziała, w najgorszym – klient i serwer X-ów będą wysyłały sobie bezużyteczne dane.

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 świecie wiedzą, jak to wszystko ze sobą współpracuje, a jedna z tych osób wolałaby tego nie wiedzieć. Równie paskudnie wygląda kwestia pracy z kompozytorem. Jak pisze Griffith: deweloperzy mówią X o kompozycji 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. Nic bowiem nie utrzymuje synchronizacji między oknami i podoknami wyświetlającym media, ich zdarzenia są obsługiwane niezależnie, i można się tylko modlić, by zbyt się to wszystko nie zdesynchronizowało.

Do tego dochodzą nierozwiązywalne w obecnej architekturze software'owej problemy z fontami, DPI, wygaszaczami ekranu i ich obsługą klawiatury, drzewem obiektów w oknie czy zapisywaniem konfiguracji. Niekiedy próbowano je rozwiązywać – deweloperzy pisali specyfikację rozszerzenia, ale gdy próbowali je zaimplementować, okazywało się, że za bardzo popsuje ono istniejący X Model. I tak wyglądać to miało przez ostatnie 26 lat.

Wayland zostawia za sobą te 26 lat zależności, uniemożliwiających naprawienie współczesnych problemów. Wymusza kompozycję, rozumianą nie jako okienkowe efekciarstwo, ale jako doskonałość ramek – każdy piksel 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 tam jakichś własnych niskopoziomowych metod rysowania okręgów czy linii prostych, rodem z lat 80). Klientom pozostają też fonty czy obsługa wielu monitorów. Znikają też problemy z płynnością odtwarzania wideo czy niemożliwością wykorzystania klawiszy mediów przy aktywnym wygaszaczu ekranu.

Autorzy twierdzą też, że nie ma co płakać za mitycznymi możliwościami sieciowymi X-ów. Jedynie kilka w praktyce już nieużywanych podsystemów X było w pełni transparentnych sieciowo, a współczesne X-y przez sieć sprowadzają się do synchronicznego VNC, o wiele przecież gorszego niż znane z Windows RDP. Tymczasem Wayland, ze względu na swoją asynchroniczną architekturę, pozwala na zdalny dostęp (i to bez specjalnego wysiłku). Istnieje już dla niego prototypowa, wysokowydajna wersje VNC.

Artykuł wywołał ciekawą dyskusję na Slashdocie, pokazującą m.in. że wielu użytkowników Linuksa tak bardzo przyzwyczaiło się do swojego serwera wyświetlania, że przestało zauważać jego dotkliwe wady, które pewnie gdyby wystąpiły w Windows czy OS-ie X, byłyby nieustannie 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 jeszcze posłuchać, jak bardzo złe jest X, to opowie o tym w poniższym wideo Daniel Stone:

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.