V rámci projektu Phoenix bola podniknutá snaha vytvoriť od základov nový X-server, ktorý nevyužíva prvky X.org Server a je zameraný na vytvorenie modernej alternatívy, ktorá rozširuje protokol X11 a poskytuje možnosti pre kompatibilitu s Wayland. V súčasnej fáze vývoja nie je Phoenix ešte pripravený na každodenné používanie, ale už umožňuje organizovať prácu s jednoduchými aplikáciami, ktoré na grafický výstup používajú GLX, EGL alebo Vulkan, pri vnorenom spúšťaní Phoenix nad existujúcim X-serverom. Kód je napísaný v jazyku Zig a je distribuovaný pod licenciou GPLv3.
V Phoenix nemajú v pláne implementovať celú funkčnosť protokolu X11, ktorá je dostupná v X.org Server, ani podporovať zastarané zariadenia. Napríklad namiesto úplnej podpory prvkov protokolu X11 pre prácu s písmami plánujú pridať iba základné operácie, ktoré sú žiadané v reálnych aplikáciách. Namiesto podpory klasických X.Org grafických ovládačov sa na grafický výstup používajú Linux DRM (Direct Rendering Manager) a Mesa GBM (Generic Buffer Management).
Predpokladá sa, že obmedzenie funkčnosti neovplyvní schopnosť spúšťať aplikácie, ktoré sa bežne používajú, vrátane tých, čo používajú GTK2. Tento prístup umožní výrazne zjednodušiť realizáciu, pričom si zachová kompatibilitu s programami vydanými v priebehu posledných 20 rokov a zabezpečí funkčnosť na zariadeniach, ktoré nie sú staršie ako 15-20 rokov.
Pri tom plánujú pridať do protokolu X11 nové rozšírenia, ktoré zohľadňujú moderné trendy, ako je podpora HDR, správna podpora viacerých monitorových konfigurácií (oddelené rámcové buffery pre každý monitor), možnosť určovania DPI vzťahujúceho sa na monitory, adaptívne zmeny frekvencie obnovovania monitora (VRR) a ochranu proti vzniku trhlín pri výstupe (tearing). V Phoenix sa taktiež zmenilo správanie pri spracovaní reťazcov — ako predvolené sa používa UTF-8, zatiaľ čo ISO Latin-1 sa aplikuje iba na výslovné určenie tejto kódovania.
Na zvýšenie bezpečnosti aplikácie v Phoenix sú predvolene izolačné uzly navzájom a môžu interagovať a prístupovať k windows alebo vstupným udalostiam len po explicitnom potvrdení oprávnení prostredníctvom špeciálneho dialógu alebo poskytnutí práv pri spustení. Na zachovanie kompatibility so starými X11 klientmi, namiesto výstupu chýb v prípade nedostatočných oprávnení budú prenášané prázdne údaje. Globálne kombinácie klávesov budú fungovať len pri držaní klávesu modifikátora alebo poskytnutí samostatných prístupových práv.
Na spustenie aplikácií, ktoré podporujú iba Wayland, plánujú implementovať vstavanú podporu tohto protokolu alebo zapojiť externé vrstvy, ako napríklad 12to11.
Zdroj: opennet.ru
