Выпуск десктоп-движка Arcan 0.6.1

После года разработки доступен релиз десктоп-движка Arcan 0.6.1, который объединяет в себе дисплейный сервер, мультимедийный фреймворк и игровой движок для обработки 3D-графики. Arcan может использоваться для создания различных графических систем, от пользовательских интерфейсов для встраиваемых приложений до самодостаточных десктоп-окружений. В том числе на базе Arcan развивается трёхмерный рабочий стол Safespaces для систем виртуальной реальности и десктоп-окружение Durden. Код проекта написан на языке Си и распространяется под лицензией BSD (некоторые компоненты под GPLv2+ и LGPL).

В новый выпуск включены накопившиеся за год наработки, главным образом сосредоточенные на развитии подсистемы для доступа к рабочему столу по сети. В общем виде представлен план подготовки первого значительного релиза 1.0: В следующей ветке 0.7 ожидается проведение работы по расширению звуковой подсистемы, улучшению совместимости и развитию средств для 3D-графики. Ветка 0.8 будет сфокусирована на оптимизации и производительности, а 0.9 на обеспечении безопасности.

Из наиболее заметных изменений в версии Arcan 0.6.1 отмечается модернизация дисплейного сервера arcan-wayland, использующего протокол
Wayland, в котором реализована прослойка для использования EGL и включена по умолчанию поддержка dma-buf. В X-сервере Xarcan улучшена обработка переключений GPU и добавлена поддержка буфера обмена и аппаратного ускорения отрисовки курсора. Улучшена поддержка экранов с переменной частотой регенерации содержимого. В системе ввода проведена работа по снижению задержек.

Внесено много внутренних изменений, нацеленных на улучшение синхронизации и повышения эффективности управления очередями событий. Продолжено развитие графического сервера “arcan-net” для удалённой работы с рабочим столом по сети и используемого в данном сервере протокола A12, развиваемого для замены SSH/VNC/RDP/X11. Обновлены привязки для разработки компонентов на языке Lua.

Предложена концепция Pipeworld, позволяющая перенаправлять потоки данных между окнами, связывая данные и обработчики в разных окнах по аналогии с ячейками в электронных таблицах, формируя смешанный рабочий процесс, объединяющий графический и консольный интерфейсы (например, можно перенаправить вывод из одного окна в запущенный в терминале shell-обработчик и использовать результат в другом окне).



Напомним, что Arcan не привязан к отдельной графической подсистеме и может работать поверх различных системных окружений (BSD, Linux, macOS, Windows), используя подключаемые бэкенды. Например, имеется возможность запуска поверх Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлением дисплейного сервера Arcan могут выполняться клиентские приложения на базе X, Wayland и SDL2. В качестве ключевых критериев, применяемых при проектировании API Arcan называются безопасность, производительность и пригодность для отладки. Для упрощения разработки интерфейсов предлагается использовать язык Lua.

Особенности Arcan:

  • Сочетание ролей композитного сервера, дисплейного сервера и оконного менеджера.
  • Возможность работы в обособленном режиме, при котором приложение выступает в виде самодостаточного звена.
  • Встроенный мультимедийный фреймворк, предоставляющих средства работы с графикой, анимации, обработки потокового видео и звука, загрузки изображений, работы с устройствами захвата видео.
  • Мультипроцессная модель подключения обработчиков динамических источников данных – от видеопотоков до вывода отдельных программ.
  • Жесткая модель разделения привилегий. Компоненты движка разбиваются на небольшие непривилегированные процессы, взаимодействующие через интерфейс разделяемой памяти shmif;
  • Встроенные средства мониторинга и анализа крахов, в том числе движок может сериализировать внутреннее состояние Lua-скриптов для упрощения отладки;
  • Функция отката (Fallbacks), которая в случае сбоя из-за ошибки в программе может запустить запасное приложение, сохранив те же внешние источники данных и соединения;
  • Расширенные средства совместного доступа, которые можно использовать для записи или вещания отдельных подмножеств источников аудио и видео в процессе реализации совместного доступа к рабочему столу.

Дополнительно можно отметить о подготовке нового выпуска рабочего стола Durden 0.7 развиваемого для использования с Arcan. В выпуске 0.7 появится поддержка вертикального размещения заголовка окна и строки состояния, а также будет добавлена утилита для голосового сопровождения (text to speech). Durden поддерживает как мозаичный интерфейс с полноценными средствами управления с клавиатуры, так и режим свободного размещения окон на экране. Все настройки, включая методы ввода, шрифты и визуальные эффекты, могут меняться на лету, без необходимости перезагрузки конфигурации.

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

Release. Ссылка here.