Phoenix wyłania się jako nowoczesny serwer X napisany od podstaw w Zig
Phoenix to nowy serwer X napisany od podstaw w Zig, mający na celu unowocześnienie X11 bez korzystania z kodu Xorg.
Chociaż Wayland w dużej mierze zastąpił Xorg, a większość głównych dystrybucji Linuksa i środowisk graficznych albo już zrezygnowała ze wsparcia dla starzejącego się protokołu wyświetlania, albo jest w trakcie tego procesu, wysiłki mające na celu wydłużenie życia Xorg lub zastąpienie go podobnymi alternatywami nadal trwają. Ostatnie przykłady to projekty takie jak XLibre Xserver i Wayback. A teraz do tej grupy dołącza nowa nazwa: Phoenix.
Jest to nowy projekt serwera X, który przyjmuje zupełnie odmienne podejście do X11. Napisany całkowicie od podstaw w języku programowania Zig, nie jest kolejnym forkiem kodu Xorg i nie wykorzystuje jego dziedzicznego kodu. Zamiast tego, według deweloperów, Phoenix ma na celu pokazanie, że sam protokół X11 nie jest z natury przestarzały i można go zaimplementować w prostszy, bezpieczniejszy i bardziej nowoczesny sposób.
Phoenix jest zaprojektowany do prawdziwego użycia na komputerach stacjonarnych i profesjonalnego, a nie do pełnego pokrycia protokołów. Obsługuje tylko funkcje X11, które są potrzebne nowoczesnym aplikacjom, w tym starsze oprogramowanie, takie jak programy oparte na GTK2. Pomijając rzadko używane lub przestarzałe elementy, Phoenix utrzymuje wszystko w prostszej formie, jednocześnie obsługując wiele aplikacji.
Obecnie Phoenix jest wciąż eksperymentalny i nie nadaje się do codziennego użytku. Może uruchamiać proste aplikacje przyspieszone sprzętowo przy użyciu GLX, EGL lub Vulkan, ale tylko w środowisku zagnieżdżonym pod innym serwerem X. Sytuacja ta będzie się utrzymywać, dopóki projekt nie będzie gotowy na bardziej wymagające zastosowania.
W kwestii bezpieczeństwa, które jest w rzeczywistości jednym z aspektów, za które Xorg jest najbardziej krytykowany, Phoenix domyślnie izoluje aplikacje, a dostęp do wrażliwych funkcji, takich jak nagrywanie ekranu czy globalne skróty klawiszowe, odbywa się poprzez mechanizmy wyraźnej zgody. Co ważne, odbywa się to bez naruszania istniejących klientów, ponieważ nieautoryzowane próby dostępu zwracają dane zastępcze, a nie błędy protokołu.
Pod maską Phoenix zawiera wbudowany kompozytor, który domyślnie umożliwia renderowanie bez zrywania obrazu, obsługuje wyłączanie kompozycji dla aplikacji pełnoekranowych i jest zaprojektowany tak, aby redukować opóźnienia kompozytora i synchronizacji pionowej. Wsparcie dla wielu monitorów jest priorytetem, pozwalając na różne częstotliwości odświeżania, wyświetlacze o zmiennej częstotliwości odświeżania oraz przyszłe wsparcie HDR, bez polegania na pojedynczej globalnej pamięci obrazu.
Phoenix rozważa również rozszerzenie protokołu w razie potrzeby. Na przykład planowane są nowe funkcje, takie jak raportowanie DPI dla każdego monitora, aby zapewnić prawidłowe skalowanie aplikacji w konfiguracjach o mieszanym DPI. W razie potrzeby Phoenix doda rozszerzenia protokołu dla takich funkcji jak HDR, jednocześnie współpracując z istniejącym oprogramowaniem.
Ważne jest, aby jasno zaznaczyć, że projekt nie ma na celu zastąpienia Xorg. Phoenix świadomie unika wspierania przestarzałego sprzętu, rzadkich funkcji protokołu oraz konfiguracji, takich jak wiele ekranów X11 czy pośrednie renderowanie GLX, koncentrując się wyłącznie na nowoczesnych systemach.
Kompatybilność z Wayland jest częścią długoterminowego planu. Deweloperzy mówią, że Phoenix może w końcu obsługiwać klientów Wayland bezpośrednio lub korzystać z narzędzi pośredniczących, aby uruchamiać aplikacje wyłącznie na Wayland w środowisku X11. Rozważane jest także uruchamianie Phoenix w trybie zagnieżdżonym pod Wayland, jako alternatywa dla Xwayland.
W końcu, jak wspomniałem, projekt znajduje się na wczesnym etapie i dopiero czas pokaże, czy rozwinie się on w stabilne wersje gotowe do produkcji i zostanie zaakceptowany do szerszego użytku. Do tego czasu, aby uzyskać więcej informacji o tej nowej inicjatywie, sprawdź tutaj.
