Nach einem Jahr der Entwicklung wurde die Version 0.6.2 des Desktop-Engines Arcan veröffentlicht, die einen Display-Server, ein Multimedia-Framework und eine Game-Engine zur Verarbeitung von 3D-Grafiken vereint. Arcan kann zur Erstellung verschiedener grafischer Systeme verwendet werden, von Benutzeroberflächen für eingebettete Anwendungen bis hin zu selbständigen Desktop-Umgebungen. Dazu gehört auch der auf Arcan basierende 3D-Desktop Safespaces für virtuelle Realitätssysteme und die Desktop-Umgebung Durden. Der Code des Projekts ist in C geschrieben und unter der BSD-Lizenz veröffentlicht (einige Komponenten unter GPLv2+ und LGPL).
In der neuen Ausgabe wird die Entwicklung von Tools für den Remote-Zugriff auf den Desktop über das Netzwerk fortgesetzt. Der Netzwerkzugriff wird durch den Grafik der Server «arcan-net» ermöglicht, der das A12-Protokoll implementiert und die Möglichkeiten solcher Technologien wie mDNS (Bestimmung lokaler Dienste), SSH (interaktive Textkonsole), X11/VNC/RDP (interaktive grafische Konsole), RTSP (Streaming von Multimedia-Daten) und HTTP (Ressourcenauslieferung und Zustandsynchronisation) vereint.
Arcan ist nicht an ein bestimmtes grafisches Subsystem gebunden und kann über verschiedene Systemumgebungen (BSD, Linux, macOS, Windows) arbeiten, indem es plug-in Backends verwendet. Beispielsweise ist es möglich, über Xorg, egl-dri, libsdl und AGP (GL/GLES) zu starten. Unter der Verwaltung des Display Managers Server können Clientanwendungen auf Basis von X, Wayland und SDL2 ausgeführt werden. Die wesentlichen Kriterien, die bei der Gestaltung der Arcan-API berücksichtigt werden, sind Sicherheit, Leistung und Debugging-Fähigkeit. Zur Vereinfachung der Entwicklung von Benutzeroberflächen wird empfohlen, die Programmiersprache Lua zu verwenden.
Eigenschaften von Arcan:
- Kombination der Rollen eines Kompositionsservers, eines Displayservers und eines Fenstermanagers.
- Die Möglichkeit, im separaten Modus zu arbeiten, bei dem die Anwendung als eigenständige Einheit fungiert.
- Ein integriertes Multimediagestell, das Werkzeuge zur Verarbeitung von Grafik, Animationen, Streaming von Video und Audio, Bildupload und zur Steuerung von Videoaufzeichnungsgeräten bietet.
- Ein multiprozessorales Modell zur Anbindung von Verarbeitern für dynamische Datenquellen – von Video-Streaming bis hin zur Ausgabe einzelner Programme.
- Ein striktes Modell zur Trennung von Berechtigungen. Die Komponenten des Engines werden in kleine, unprivilegierte Prozesse zerlegt, die über die Schnittstelle des Shared Memory shmif interagieren.
- Integrierte Überwachungs- und Analysetools für Abstürze, einschließlich der Möglichkeit des Engines, den internen Zustand von Lua-Skripten zur Vereinfachung der Fehlersuche zu serialisieren.
- Die Fallback-Funktion, die im Falle eines Fehlers aufgrund eines Programmfehlers eine Backup-Anwendung starten kann, wobei dieselben externen Datenquellen und Verbindungen beibehalten werden.
- Erweiterte gemeinsame Zugriffsmaßnahmen, die zur Aufnahme oder Übertragung von spezifischen Untergruppen von Audio- und Videoquellen während der Desktop-Sharing-Implementierung eingesetzt werden können.
Quelle: opennet.ru
