Dans le cadre du projet Phoenix, une tentative a été faite pour créer à partir de zéro un nouveau serveur X, n'utilisant pas les travaux du serveur X.org et visant à créer une alternative moderne qui étend le protocole X11 et offre des possibilités de compatibilité avec Wayland. À ce stade de développement, Phoenix n'est pas encore prêt pour une utilisation quotidienne, mais il permet déjà d'organiser le fonctionnement d'applications simples utilisant GLX, EGL ou Vulkan pour le rendu graphique, tout en étant exécuté en mode imbriqué au-dessus d'un serveur X existant. Le code est écrit en Zig et est distribué sous licence GPLv3.
Phoenix ne prévoit pas de réaliser toutes les fonctionnalités du protocole X11, disponibles dans le serveur X.org, ni de supporter le matériel obsolète. Par exemple, au lieu de prendre en charge intégralement les éléments du protocole X11 pour le travail avec les polices, seul un support des opérations de base demandées dans des applications réelles sera ajouté. Au lieu de soutenir les pilotes vidéo X.Org classiques, le rendu graphique utilise le Linux DRM (Direct Rendering Manager) et Mesa GBM (Generic Buffer Management).
Il est supposé que la réduction des fonctionnalités n'impactera pas la possibilité de lancer des applications couramment utilisées, même celles utilisant GTK2. Une telle approche permettra de simplifier considérablement l'implémentation, tout en maintenant la compatibilité avec les programmes publiés au cours des 20 dernières années, ainsi qu'en garantissant un fonctionnement sur un matériel ne dépassant pas 15-20 ans.
De plus, le protocole X11 prévoit d'ajouter de nouvelles extensions prenant en compte les tendances modernes, telles que la prise en charge de HDR, le support correct des configurations multi-moniteurs (buffers d'images séparés pour chaque moniteur), la possibilité d'indiquer le DPI en fonction des moniteurs, le changement adaptatif de la fréquence de rafraîchissement (VRR), et la protection contre les déchirures lors du rendu. À Phoenix, le comportement lors du traitement des chaînes a également été modifié — par défaut, l'UTF-8 est utilisé, tandis que l'ISO Latin-1 n'est appliqué que lorsqu'il est spécifiquement indiqué.
Pour renforcer la sécurité de l'application Phoenix, les fenêtres sont par défaut isolées les unes des autres et ne peuvent interagir ou accéder aux fenêtres ou événements d'entrée d'autrui qu'après une confirmation explicite des droits via une boîte de dialogue spéciale ou une autorisation lors du lancement. Pour maintenir la compatibilité avec les anciens clients X11, des données vides seront transmises au lieu d'afficher des erreurs en cas de droits insuffisants. Les combinaisons de touches globales fonctionneront uniquement si la touche modificateur est maintenue ou si des droits d'accès spécifiques sont fournis.
Pour exécuter des applications qui ne prennent en charge que Wayland, un support intégré pour ce protocole sera mis en œuvre ou des couches externes, comme 12to11, seront utilisées.
Source : opennet.ru
