Phoenix emerge come un moderno server X scritto da zero in Zig
Phoenix è un nuovo server X scritto da zero in Zig, con l'obiettivo di modernizzare X11 senza dipendere dal codice di Xorg.
Sebbene Wayland abbia in gran parte sostituito Xorg, e la maggior parte delle principali distribuzioni Linux e ambienti desktop abbiano già abbandonato il supporto per il vecchio protocollo di visualizzazione o siano nel processo di farlo, continuano gli sforzi per estendere la vita di Xorg o sostituirlo con alternative simili. Esempi recenti includono progetti come XLibre Xserver e Wayback. E ora, un nuovo nome si unisce a questo gruppo: Phoenix.
È un nuovo progetto di server X che adotta un approccio fondamentalmente diverso a X11. Scritto interamente da zero nel linguaggio di programmazione Zig, non è l'ennesimo fork del codice base di Xorg e non riutilizza il suo codice legacy. Invece, secondo gli sviluppatori, Phoenix mira a dimostrare che il protocollo X11 in sé non è intrinsecamente obsoleto e può essere implementato in modo più semplice, sicuro e moderno.
Phoenix è progettato per un uso reale su desktop e professionale, non per una copertura completa dei protocolli. Supporta solo le funzionalità X11 necessarie alle applicazioni moderne, inclusi i software più datati come i programmi basati su GTK2. Tralasciando le parti raramente usate o obsolete, Phoenix mantiene le cose più semplici pur supportando molte applicazioni.
Al momento, Phoenix è ancora sperimentale e non pronto per l'uso quotidiano. Può eseguire applicazioni semplici accelerate dall'hardware usando GLX, EGL o Vulkan, ma solo in una configurazione annidata sotto un altro server X. Rimarrà così finché il progetto non sarà pronto per un uso più impegnativo.
Dal punto di vista della sicurezza, che è in realtà uno degli aspetti per i quali Xorg riceve più critiche, Phoenix isola le applicazioni di default e l'accesso a funzionalità sensibili come la registrazione dello schermo o le scorciatoie globali è mediato da meccanismi di autorizzazione espliciti. È importante sottolineare che questo avviene senza interrompere i client esistenti, poiché i tentativi di accesso non autorizzati restituiscono dati fittizi invece di errori di protocollo.
Sotto il cofano, Phoenix include un compositore integrato che consente una resa senza strappi di default, supporta la disattivazione della composizione per applicazioni a schermo intero ed è progettato per ridurre la latenza del compositore e del vsync. Il supporto corretto per più monitor è una priorità, permettendo diversi tassi di aggiornamento, display a frequenza di aggiornamento variabile e il supporto futuro per HDR senza dipendere da un singolo framebuffer globale.
Phoenix sta anche considerando l'espansione del protocollo quando necessario. Ad esempio, sono previste nuove funzionalità come la segnalazione del DPI per monitor per garantire che le app si ridimensionino correttamente su configurazioni con DPI misti. Se necessario, Phoenix aggiungerà estensioni del protocollo per cose come l'HDR, continuando comunque a funzionare con il software esistente.
È importante chiarire che il progetto non ha l'obiettivo di sostituire Xorg. Phoenix evita deliberatamente di supportare hardware obsoleto, funzionalità di protocollo poco conosciute e configurazioni come più schermi X11 o il rendering GLX indiretto, concentrandosi interamente sui sistemi moderni.
La compatibilità con Wayland fa parte del piano a lungo termine. Gli sviluppatori dicono che Phoenix potrebbe eventualmente supportare direttamente i client Wayland o utilizzare strumenti di bridging per eseguire app esclusivamente Wayland in un ambiente X11. Si sta valutando anche l'esecuzione di Phoenix in modalità nidificata sotto Wayland, come alternativa a Xwayland.
Infine, come ho accennato, il progetto è nelle sue fasi iniziali e resta da vedere se si svilupperà in versioni stabili pronte per la produzione e sarà accettato per un uso più ampio. Fino ad allora, per ulteriori informazioni su questa nuova iniziativa, consulta qui.
