Im Rahmen des Phoenix-Projekts wurde der Versuch unternommen, von Grund auf einen neuen X-Server zu schaffen, der nicht auf den Entwicklungen des X.org Servers basiert und darauf abzielt, eine moderne Alternative zu entwickeln, die das X11-Protokoll erweitert und Möglichkeiten zur Kompatibilität mit Wayland bietet. In der aktuellen Entwicklungsphase ist Phoenix noch nicht für den täglichen Gebrauch bereit, ermöglicht jedoch bereits die Arbeit mit einfachen Anwendungen, die zur Grafikausgabe GLX, EGL oder Vulkan verwenden und in einer verschachtelten Umgebung Phoenix über einen bestehenden X-Server ausführen. Der Code ist in der Programmiersprache Zig geschrieben und wird unter der Lizenz GPLv3 verbreitet.
In Phoenix beabsichtigt man nicht, die gesamte Funktionalität des X11-Protokolls, die im X.org Server verfügbar ist, umzusetzen und veraltete Hardware zu unterstützen. Beispielsweise plant man anstelle der vollständigen Unterstützung der Elemente des X11-Protokolls für die Arbeit mit Schriftarten nur die grundlegenden Operationen hinzuzufügen, die in realen Anwendungen gefragt sind. Anstelle der Unterstützung klassischer X.Org-Grafiktreiber werden zur Grafikausgabe Linux DRM (Direct Rendering Manager) und Mesa GBM (Generic Buffer Management) verwendet.
Es wird angenommen, dass die Einschränkung der Funktionalität keine Auswirkungen auf die Möglichkeit hat, gängige Anwendungen auszuführen, selbst solche, die GTK2 verwenden. Ein solcher Ansatz wird es erheblich vereinfachen, die Implementierung zu gestalten und gleichzeitig die Kompatibilität mit Programmen zu gewährleisten, die in den letzten 20 Jahren veröffentlicht wurden, sowie den Betrieb auf Hardware zu ermöglichen, die nicht älter als 15-20 Jahre ist.
Dabei plant man, dem X11-Protokoll neue Erweiterungen hinzuzufügen, die moderne Trends berücksichtigen, wie die Unterstützung von HDR, die korrekte Unterstützung von Multi-Monitor-Konfigurationen (getrennte Framebuffer für jeden Monitor), die Möglichkeit, DPI in Bezug auf die Monitore anzugeben, adaptive Änderungen der Bildwiederholfrequenz (VRR) und Schutz vor Bildzerreißern. In Phoenix wurde auch das Verhalten bei der Verarbeitung von Zeichenfolgen geändert — standardmäßig wird UTF-8 verwendet, während ISO Latin-1 nur bei expliziter Angabe dieser Codierung angewendet wird.
Um die Sicherheit der Anwendung in Phoenix zu erhöhen, werden die Fenster standardmäßig voneinander isoliert und können nur nach ausdrücklicher Bestätigung der Berechtigungen über einen speziellen Dialog oder durch Erteilung von Rechten beim Start aufeinander zugreifen oder auf Eingabeereignisse zugreifen. Um die Kompatibilität mit älteren X11-Clients zu gewährleisten, werden im Falle fehlender Berechtigungen anstelle von Fehlermeldungen leere Daten übergeben. Globale Tastenkombinationen funktionieren nur bei gedrückter Modifier-Taste oder durch Erteilung separater Zugriffsrechte.
Zur Ausführung von Anwendungen, die nur Wayland unterstützen, wird geplant, eine integrierte Unterstützung dieses Protokolls zu implementieren oder externe Schichten wie 12to11 zu verwenden.
Quelle: opennet.ru
