След година разработка бе публикувана версия 0.6.2 на десктопния двигател Arcan, който съчетава дисплейен сървър, мултимедиен фреймуорк и игрови двигател за обработка на 3D графика. Arcan може да бъде използван за създаване на различни графични системи, от потребителски интерфейси за вградени приложения до самостоятелни десктоп среди. Включително върху Arcan се разработва тримерен работен плот Safespaces за виртуални реалности и десктоп среда Durden. Кодът на проекта е написан на C и се разпространява под лиценз BSD (някои компоненти под GPLv2+ и LGPL).
В новото издание продължава разработката на средства за работа с работния плот дистанционно по мрежа. Достъпът по мрежа осигурява графичният сървър «arcan-net», реализиращ протокол A12, който събира възможности от технологии като mDNS (определяне на локални услуги), SSH (интерактивен текстови терминал), X11/VNC/RDP (интерактивен графичен интерфейс), RTSP (стрийминг на мултимедийни данни) и HTTP (изтегляне на ресурси и синхронизиране на състоянието).
Arcan не е свързан с определена графична подсистема и може да работи върху различни системни среди (BSD, Linux, macOS, Windows), използвайки плъгини. Например, съществува възможност за стартиране върху Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлението на дисплейния сървър Arcan могат да изпълняват клиентски приложения на базата на X, Wayland и SDL2. Ключовите критерии, взети предвид при проектирането на API Arcan, са безопасността, производителността и пригодността за отстраняване на грешки. За улесняване на разработката на интерфейси се предлага използването на езика Lua.
Характеристики на Arcan:
- Комбинация от роля на композитен сървър, дисплейен сървър и мениджър на прозорци.
- Възможност за работа в обособен режим, при който приложението функционира като самодостатъчна единица.
- Вграден мултимедиен фреймуърк, предоставящ средства за работа с графика, анимация, обработка на потоково видео и звук, зареждане на изображения, работа с устройства за захващане на видео.
- Мултипроцесна модел на свързване на обработващи елементи на динамични източници на данни - от видеостийми до изхода от отделни програми.
- Строга модел на разделяне на привилегиите. Компонентите на движка се разпределят на малки непривилегировани процеси, които взаимодействат чрез интерфейса на споделена памет shmif.
- Вградени средства за мониторинг и анализ на сривове, включително движка може да сериализира вътрешното състояние на Lua-скриптове за улесняване на отстраняването на грешки.
- Функция за резервно копие (Fallbacks), която в случай на срив поради грешка в програмата може да стартира резервно приложение, запазвайки същите външни източници на данни и връзки.
- Разширени средства за съвместно ползване, които могат да се използват за запис или предаване на отделни подмножества на източници на аудио и видео в процеса на реализиране на съвместно ползване на работния плот.
Източник: opennet.ru
