След една година разработка, представен е десктопният двигател Arcan 0.7.1, който обединява дисплейен сървър, мултимедиен фреймуърк и игрови двигател за обработка на 3D графика. Arcan може да се използва за създаване на различни графични системи — от потребителски интерфейси за вградени приложения до самостойни десктоп среди. На базата на Arcan са изградени тримерното потребителско обкръжение за системи за виртуална реалност Safespaces и работната среда Durden. Кодът на проекта е написан на език C и се разпространява под лиценз BSD (някои компоненти под GPLv2+ и LGPL).
Arcan не е обвързан с конкретни графични подсистеми и може да работи върху различни системни среди (BSD, Linux, macOS, Windows), използвайки сглобяеми бекенди. Например, съществува възможност за стартиране върху Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлението на дисплейния сървър Arcan могат да се изпълняват клиентски приложения на базата на X11, Wayland и SDL. Проектът развива своя форк на X.org-сървера — xarcan, както и композитен сървър arcan-wayland (waybridge), който позволява стартиране на приложения на базата на Wayland. Ключовите критерии, прилагани при проектирането на API Arcan, са безопасност, производителност и удобство за отстраняване на грешки. За опростяване на разработката на интерфейси се предлага използването на език Lua.

Характеристики на Arcan:
- Комбинация от възможности на композитен сървър, дисплейен сървър и мениджър на прозорци.
- Поддръжка на работа в изолираен режим, при който приложението на базата на Arcan е самостоятелен елемент, работещ без допълнителни графични слоеве.
- Вграден мултимедиен фреймуърк, предоставящ средства за работа с графика, обработка на поточно видео и звук, анимация, зареждане на изображения, работа с устройства за захващане на видео.

- Многопроцесна модел на свързване на обработчици на източници на данни (например видео потоци и изход от стартирани програми).

- Строга модел на разделяне на привилегиите — компонентите на двигателя се разделят на малки непривилегировани процеси, които взаимодействат чрез интерфейс на споделена памет Shmif.
- Вградени средства за мониторинг и анализ на аварийни спирания на процеси. Двигателят може да сериализира вътрешното състояние на Lua скриптове за опростяване на отстраняването на грешки.
- Възможността за резервен вариант (Fallbacks) на друг обработчик — в случай на срив поради грешка в програмата, двигателят може да стартира резервно приложение, запазвайки същите външни източници на данни и връзки.
- Средства за споделяне и отдалечен достъп до работен плот. Достъпът по мрежата осигурява графичният сървър „arcan-net“, реализиращ P2P-протокол A12, обединяващ възможностите на технологии като mDNS (определяне на локални услуги), SSH (интерактивна текстова обвивка), X11/VNC/RDP (интерактивна графична обвивка), RTSP (стрийминг на мултимедийни данни) и HTTP (изтегляне на ресурси и синхронизиране на статус).
- Командната обвивка Cat9, позволяваща свързването на изпълнението на команди към отделни клетки, образуващи подобие на електронна таблица (видео с демонстрация). Предложената концепция позволява пренасочване на потоци данни между прозорците, свързвайки данни и обработчици в различни прозорци, подобно на клетките в електронните таблици (например, можете да пренасочите изхода от един прозорец към стартиран в терминала shell-обработчик и да използвате резултата в друг прозорец).

Свързани с проекта промени:
- Портирован е разработеният от компания Valve композитен сървър Gamescope, чрез който е реализирана възможността за стартиране на игри от Steam без манипулации с Xwayland.
- Подобрени са Qt-плъгинът qtarcan, позволяващ стартиране в Arcan приложения, използващи Qt5 и Qt6, като Qbittorrent и Binary Ninja.
- Създадени са пачове и скрипт за стартиране на KeepassXC.
- Разработва се прегледач за протокола A12 и взаимодействието чрез него.
- Разработва се интерактивен мениджър на прозорци Lasso.
- Добавен е инструментът Xkbd2Lua за преобразуване на клавиатурни подредби от X11 в формат, поддържан от Arcan.
- Разработват се nix-пакети за създаване на работно зареждащо околна среда на базата на Arcan, работен плот Durden и командна обвивка.
- Добавена е поддръжка за постквантовия алгоритъм за криптиране ML-KEM.
- Добавена е възможността клиентите да възобновяват прекъснати мрежови връзки (след възстановяване на прекъснатото съединение, приложението ще бъде повторно свързано без загуба на статус на прозореца му).
- Добавена е опцията „—cast“, позволяваща организирането на работа на други потребители с копие на изхода на приложението в режим само за четене.
- В каталога на сървъри е добавена поддръжка на нови унифицирани (Unified) и референтни (Referential) връзки, чрез които може да се обединят сървърите в едно пространство на имена или да се изградят вериги. сървъри. В първия случай за потребителя група от сървъри изглежда като един сървър, а във втория могат да се стартират приложения на един, сървър, свързвайки се към друг.
- В API е добавена функцията launch_target за динамично стартиране на приложение на сървъра по искане на клиента. За приложението може да се създаде контролер — набор от Lua-скриптове за управление на обмена на съобщения и достъпа до ресурси.
- Добавена е поддръжка за външни резолватори на ресурси (External Resource Resolver), които могат да прихващат операции с хранилището Arcan и да обработват операции по заявка на ресурси, например, да организират локално кеширане или да зареждат данни от Web, BitTorrent или IPFS вместо да се предават от локалния диск.
- Реализирано е подобие на тънки клиенти, което позволява на клиента без пълния стек Arcan (с само прозорец Smash) да прехвърли логиката на изпълнение на програмите на сървъра. Например, за стартиране на работната среда durden на сървър myserver можете да изпълните «arcan-net —host-appl myserver@ durden».
- В командната обвивка Cat9 е добавен бекенд с отладчик, поддържащ протокола DAP (Debug Adapter Protocol) за локална или отдалечена отладка.
- Добавен е голям пакет промени, свързани с развитието на протокола A12, среда за изпълнение на скриптове на Lua, мрежова подсистема, каталог на сървъри за свързване на компоненти, разпръснати в мрежата, система на споделена памет Shmif и модул egl-dri.
Същевременно беше публикувана версия на работната среда Durden 0.6.3. Предишното издание беше формулирано през 2020 година. В Durden се поддържат мозаичен и класически режим на подредба на прозорците с пълни средства за управление чрез клавиатурата. Възможна е работа в системи с множество монитори с различни DPI.
Предоставя се разширен буфер за обмен, който запазва история на промените и е достъпен в два варианта – глобален и свързан с отделни прозорци. Има поддръжка за превключване на клавиатурни разредки и работа с разширени устройства, като игрови контролери. Поддържат се такива функции, като глобално меню, меню в заглавието на прозореца, виджети и настройка на отделно поведение за всеки прозорец. Всички настройки, включително методи на въвеждане, шрифтове и визуални ефекти, могат да се променят в движение, без необходимост от презареждане на конфигурацията.
Версия 0.6.3 е подготвителен релийз предстоящия in-development релийз на Durden 0.7, в който ще бъдат предложени набор от съществени иновации, като жестове на екрана, поддръжка на вертикални заглавия и панели, компактен режим на показване на заглавия и панели, нов конфигуратор, предварителен преглед при задържане на мишката, виртуална клавиатура osdkbd, режим на комбиниране на прозорци, поддръжка на синтезатор на реч и интеграция на компоненти a12net и a12_directory за осигуряване на мрежова прозрачност и дистанционен достъп.
Източник: opennet.ru



