Релиз открытого проекта yserver 1.0.0 — X-сервера на Rust и для запуска MATE, Xfce и Cinnamon

от автора

Состоялся первый мажорный релиз открытого X11-сервера yserver. Решение написано с нуля на языке Rust и поддерживает актуальные расширения протокола X11. Проект не ставит перед собой цель повторить все возможности Xorg Server и ограничивается только функциональностью, необходимой для запуска современных сред рабочего стола, оконных менеджеров, приложений и графических библиотек (GTK, Qt, SDL, GLFW). Исходный код yserver опубликован на GitHub под лицензией MIT.

По информации OpenNET, из протестированных в yserver окружений отмечены MATE, Xfce и Cinnamon, а также оконные менеджеры FVWM3, e16 и wmaker.

В yserver решено не поддерживать устаревшие и специфичные возможности, такие как обработка нескольких X11-экранов в одном сервере (многомониторный вывод поддерживается), отличные от TrueColor режимы цветности, непрямой рендеринг (indirect GLX), API драйверов DDX, старые методы работы со шрифтами и подключение клиентов с другим порядком следования байтов (трансляция между big‑endian и little‑endian).

Вывод графики организован через DRM/KMS и Vulkan‑драйверы Mesa. Для управления сеансом и организации доступа к совместно используемым устройствам ввода и вывода используется библиотека libseat. Помимо обособленного X‑сервера поставляется ynest — бэкенд для вложенного запуска, поддерживающий работу из Xwayland или другого X11-сервера.

Работа yserver протестирована на системах в GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, mesa‑драйвер RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, mesa‑драйвер ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, а также в системах виртуализации с virtio‑gpu и виртуальным GPU Venus. В настоящее время в yserver поддерживается только работа в Linux, но в планах отмечено добавление поддержки FreeBSD.

Поддерживаемые yserver расширения X11:

  • BIG‑REQUESTS;

  • Composite;

  • DAMAGE;

  • DPMS;

  • DRI3;

  • GLX;

  • Generic Event Extension;

  • MIT‑SCREEN‑SAVER;

  • MIT‑SHM;

  • Present;

  • RANDR;

  • RENDER;

  • SHAPE;

  • SYNC;

  • X‑Resource;

  • XFIXES;

  • XInputExtension;

  • XKEYBOARD;

  • XTEST.

ссылка на оригинал статьи https://habr.com/ru/articles/1047172/