В рамките на проект Phoenix е направен опит за създаване от нулата на нов X-сървър, който не използва разработки на X.org Server и е насочен към създаването на съвременна алтернатива, която разширява протокола X11 и предоставя възможности за съвместимост с Wayland. На текущия етап от развитието Phoenix все още не е готов за ежедневно използване, но вече позволява организиране на работа с прости приложения, които използват за изходна графика GLX, EGL или Vulkan, при стартиране на Phoenix над съществуващ X-сървър. Кодът е написан на езика Zig и се разпространява под лицензия GPLv3.
В Phoenix не възнамеряват да реализират цялата функционалност на протокола X11, достъпна в X.org Server, и да поддържат остарял хардуер. Например, вместо пълна поддръжка на елементи от протокола X11 за работа с шрифтове, плануват да добавят само основни операции, които са търсени в реални приложения. Вместо поддръжка на класически X.Org видео драйвери, за изходна графика се използват Linux DRM (Direct Rendering Manager) и Mesa GBM (Generic Buffer Management).
Предполага се, че съкращаването на функционалността няма да се отрази на възможността за стартиране на широко използвани приложения, дори и на тези, които използват GTK2. Подобен подход ще позволи значително опростяване на реализацията, запазвайки съвместимост с програми, издавани през последните 20 години, а също така да осигури работа на хардуер, не по-стар от 15-20 години.
При това в протокола X11 плануват да добавят нови разширения, отразяващи съвременните тенденции, като поддръжка на HDR, коректна поддръжка на многомониторни конфигурации (разделни фреймбуфери за всеки монитор), възможност за указване на DPI във връзка с мониторите, адаптивно изменение на честотата на опресняване на монитора (VRR), защита от появата на разкъсвания при изход (tearing). В Phoenix също е променено поведението при обработка на низове — по подразбиране се използва UTF-8, а ISO Latin-1 се прилага само при явно указване на тази кодировка.
За повишаване на сигурността на приложението в Phoenix по подразбиране, приложенията се изолират едно от друго и могат да взаимодействат и да получават достъп до чужди прозорци или входни събития само след изрично потвърждение на правомощията чрез специален диалог или предоставяне на права при стартиране. За запазване на съвместимостта със стари X11 клиенти, вместо да се извеждат грешки в случай на липса на подходящи правомощия, ще се предават празни данни. Глобалните клавишни комбинации ще работят само при задържане на клавиша модификатор или предоставяне на отделни права за достъп.
За стартиране на приложения, които поддържат само Wayland, планират да реализират вградена поддръжка на този протокол или да включат външни прослойки, като 12to11.
Източник: opennet.ru
