Поиск по сайту:

Phoenix появляется как современный X-сервер, написанный с нуля на Zig


Phoenix — это новый X-сервер, написанный с нуля на языке Zig, с целью модернизации X11 без использования кода Xorg.

Хотя Wayland в значительной степени заменил Xorg, и большинство крупных дистрибутивов Linux и рабочих сред либо уже прекратили поддержку устаревающего протокола отображения, либо находятся в процессе отказа от него, усилия по продлению жизни Xorg или замене его аналогичными решениями продолжаются. Недавние примеры включают проекты такие, как XLibre Xserver и Wayback. И теперь к этой группе присоединяется новое имя: Phoenix.

Это новый проект X-сервера, который использует принципиально иной подход к X11. Написанный полностью с нуля на языке программирования Zig, он не является очередным форком кодовой базы Xorg и не использует её устаревший код. Вместо этого, по словам разработчиков, Phoenix стремится показать, что сам протокол X11 не является по своей сути устаревшим и может быть реализован более простым, безопасным и современным способом.

Phoenix разработан для реального рабочего стола и профессионального использования, а не для полной поддержки всех протоколов. Он поддерживает только те функции X11, которые нужны современным приложениям, включая старое программное обеспечение, например программы на GTK2. Исключая редко используемые или устаревшие части, Phoenix делает систему проще, при этом поддерживая множество приложений.

Сейчас Phoenix все еще находится на экспериментальной стадии и не готов к повседневному использованию. Он может запускать простые приложения с аппаратным ускорением через GLX, EGL или Vulkan, но только в вложенной среде под другим X-сервером. Так будет оставаться до тех пор, пока проект не станет готов к более требовательному использованию.

С точки зрения безопасности, которая на самом деле является одним из аспектов, за которые Xorg получает наибольшую критику, Phoenix по умолчанию изолирует приложения, а доступ к чувствительным возможностям, таким как запись экрана или глобальные горячие клавиши, осуществляется через явные механизмы разрешений. Важно отметить, что это делается без нарушения работы существующих клиентов, так как попытки несанкционированного доступа возвращают фиктивные данные, а не ошибки протокола.

Внутри Phoenix встроен композитор, который по умолчанию обеспечивает рендеринг без разрывов, поддерживает отключение композитинга для полноэкранных приложений и разработан с целью снижения задержки композитора и вертикальной синхронизации. Приоритетным является правильная поддержка нескольких мониторов, позволяющая использовать разные частоты обновления, дисплеи с переменной частотой обновления и будущую поддержку HDR без зависимости от одного глобального фреймбуфера.

Phoenix также рассматривает возможность расширения протокола по мере необходимости. Например, планируются новые функции, такие как отчеты о DPI для каждого монитора, чтобы приложения корректно масштабировались на конфигурациях с разными значениями DPI. При необходимости Phoenix добавит расширения протокола для таких вещей, как HDR, при этом сохраняя совместимость с существующим программным обеспечением.

Важно ясно дать понять, что проект не стремится заменить Xorg. Phoenix сознательно избегает поддержки устаревшего оборудования, редких функций протокола и конфигураций, таких как несколько экранов X11 или косвенный рендеринг GLX, и полностью сосредоточен на современных системах.

Совместимость с Wayland является частью долгосрочного плана. Разработчики говорят, что Phoenix в конечном итоге может поддерживать клиентов Wayland напрямую или использовать инструменты-мосты для запуска приложений, предназначенных только для Wayland, в среде X11. Также рассматривается возможность запуска Phoenix в среде Wayland в режиме вложенности в качестве альтернативы Xwayland.

Наконец, как я уже упоминал, проект находится на ранней стадии, и пока неизвестно, перерастет ли он в стабильные версии, готовые для производства, и будет ли принят для более широкого использования. До тех пор, для получения дополнительной информации об этой новой инициативе, смотрите здесь.