Projekt Phoenix rozwija nowoczesny serwer X, napisany w języku Zig

W ramach projektu Phoenix podjęto próbę stworzenia od podstaw nowego serwera X, który nie opiera się na rozwiązaniach X.org Server i ma na celu stworzenie nowoczesnej alternatywy, rozszerzającej protokół X11 i oferującej możliwości kompatybilności z Wayland. Na obecnym etapie rozwoju Phoenix nie jest jeszcze gotowy do codziennego użytku, ale już umożliwia pracę z prostymi aplikacjami, które wykorzystują do wyświetlania grafiki GLX, EGL lub Vulkan, uruchamiane w zagnieżdżeniu poprzez istniejący serwer X. Kod napisano w języku Zig i jest udostępniany na licencji GPLv3.

W Phoenix nie zamierzają wprowadzać całej funkcjonalności protokołu X11 dostępnej w X.org Server ani wspierać przestarzałego sprzętu. Na przykład, zamiast pełnego wsparcia dla elementów protokołu X11 do obsługi czcionek planują dodać jedynie podstawowe operacje potrzebne w rzeczywistych aplikacjach. Zamiast tradycyjnych sterowników graficznych X.Org, do wyświetlania grafiki wykorzystuje się Linux DRM (Direct Rendering Manager) oraz Mesa GBM (Generic Buffer Management).

Zakłada się, że ograniczenie funkcjonalności nie wpłynie na możliwość uruchamiania powszechnie używanych aplikacji, nawet tych korzystających z GTK2. Tego rodzaju podejście pozwoli znacznie uprościć implementację, zachowując zgodność z programami wydanymi w ciągu ostatnich 20 lat oraz zapewniając działanie na sprzęcie nie starszym niż 15-20 lat.

W protokole X11 planowane jest dodanie nowych rozszerzeń, uwzględniających nowoczesne trendy, takich jak wsparcie HDR, poprawna obsługa konfiguracji wielomonitorowych (oddzielne ramki buforowe dla każdego monitora), możliwość określenia DPI w powiązaniu z monitorami, adaptacyjne zmienianie częstotliwości odświeżania monitora (VRR), ochrona przed pojawianiem się zacięć podczas wyświetlania (tearing). W Phoenix zmieniono również działanie przy przetwarzaniu ciągów — domyślnie używany jest UTF-8, a ISO Latin-1 stosowane jest tylko w przypadku wyraźnego wskazania tego kodowania.

Aby zwiększyć bezpieczeństwo aplikacji w Phoenix, domyślnie izolowane są one od siebie i mogą взаимодействовать oraz uzyskiwać dostęp do obcych okien lub wydarzeń wejściowych tylko po wyraźnym potwierdzeniu uprawnień poprzez specjalny dialog lub przyznanie praw podczas uruchamiania. W celu zachowania zgodności ze starszymi klientami X11, zamiast wyświetlania błędów w przypadku braku właściwych uprawnień, będą przekazywane puste dane. Globalne kombinacje klawiszy będą działać tylko przy wciśnięciu klawisza modyfikatora lub przyznaniu osobnych uprawnień.

Aby uruchomić aplikacje wspierające tylko Wayland, planuje się wdrożenie wbudowanej obsługi tego protokołu lub wykorzystanie zewnętrznych warstw, takich jak 12to11.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster