Вниманию разработчиков представлены дисплейный сервер Arcan, мозаичное десктоп-окружение Durden и система визуализации для отладки и обратного инжиниринга Senseye. Основной код написан на языке Си распространяется под лицензией BSD, но в состав также входят некоторые компоненты под лицензиями GPLv2+ и LGPL.

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

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

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

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

В качестве практической реализации рабочего окружения на базе Arcan развивается оболочка Durden. В Durden предпочтение отадётся мозаичному интерфейсу с полноценными средствами управления с клавиатуры, но также поддерживается и режим обычного размещения окон на рабочем столе.

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

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

Для визуальной отладки, мониторинга и анализа всех аспектов работы Arcan предлагается инструментарий Senseye. Senseye позволяет отлаживать как работающие приложения, так и слепки их состояния.



Источник: http://www.opennet.ru/opennews/art.shtml?num=44515