Después de un año de desarrollo, se publica la versión 0.6.2 del motor de escritorio Arcan, que combina un servidor de visualización, un marco multimedia y un motor de juegos para el procesamiento de gráficos 3D. Arcan se puede utilizar para crear diversos sistemas gráficos, desde interfaces de usuario para aplicaciones integradas hasta entornos de escritorio autónomos. También se está desarrollando sobre la base de Arcan un escritorio tridimensional llamado Safespaces para sistemas de realidad virtual y el entorno de escritorio Durden. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD (algunos componentes bajo GPLv2+ y LGPL).
En esta nueva versión, se ha continuado el desarrollo de herramientas para trabajar de forma remota con el escritorio a través de la red. El acceso a la red se proporciona mediante la interfaz gráfica servidor «arcan-net», que implementa el protocolo A12, que combina las capacidades de tecnologías como mDNS (descubrimiento de servicios locales), SSH (shell interactivo), X11/VNC/RDP (interfaz gráfica interactiva), RTSP (transmisión de datos multimedia) y HTTP (carga de recursos y sincronización de estado).
Arcan no está vinculado a un subsistema gráfico específico y puede funcionar sobre diferentes entornos del sistema (BSD, Linux, macOS, Windows), utilizando backend intercambiables. Por ejemplo, hay posibilidades de ejecución sobre Xorg, egl-dri, libsdl y AGP (GL/GLES). Bajo la gestión del servidor de visualización servidores Arcan se pueden ejecutar aplicaciones cliente basadas en X, Wayland y SDL2. Entre los criterios clave considerados al diseñar la API de Arcan se mencionan la seguridad, el rendimiento y la facilidad de depuración. Para facilitar el desarrollo de interfaces, se sugiere utilizar el lenguaje Lua.
Características de Arcan:
- Combinación de funciones de servidor compositor, servidor de visualización y gestor de ventanas.
- Posibilidad de trabajar en modo aislado, donde la aplicación actúa como un componente autónomo.
- Marco multimedia integrado, que proporciona herramientas para trabajar con gráficos, animaciones, procesamiento de video y audio en streaming, carga de imágenes y manejo de dispositivos de captura de video.
- Modelo multiprocesal de conexión de manejadores de fuentes de datos dinámicas, desde flujos de video hasta la salida de programas individuales.
- Modelo riguroso de separación de privilegios. Los componentes del motor se dividen en pequeños procesos sin privilegios que interactúan a través de la interfaz de memoria compartida shmif;
- Herramientas integradas de monitoreo y análisis de fallos, incluyendo que el motor puede serializar el estado interno de los scripts Lua para facilitar la depuración;
- Función de retroceso (Fallbacks) que, en caso de fallo debido a un error en el programa, puede iniciar una aplicación de respaldo, manteniendo las mismas fuentes de datos externas y conexiones;
- Herramientas avanzadas de acceso compartido que se pueden utilizar para grabar o transmitir subconjuntos específicos de fuentes de audio y video durante la implementación del acceso compartido al escritorio.
Fuente: opennet.ru
