Nach einem Jahr Entwicklungszeit steht die Version 0.6.1 der Desktop-Engine Arcan zur Verfügung. Diese vereint einen Display-Server, ein Multimedia-Framework und eine Game Engine zur Verarbeitung von 3D-Grafiken. Arcan kann verwendet werden, um verschiedene grafische Systeme zu erstellen – von Benutzeroberflächen für eingebettete Anwendungen bis hin zu eigenständigen Desktop-Umgebungen. Dazu gehört auch der dreidimensionale Arbeitsplatz Safespaces für Virtual-Reality-Systeme sowie die Desktop-Umgebung Durden. Der Code des Projekts ist in C geschrieben und steht unter der BSD-Lizenz (einige Komponenten unter GPLv2+ und LGPL).
Der neue Release beinhaltet die gesammelten Arbeiten des letzten Jahres, die sich hauptsächlich auf die Entwicklung von Subsystemen für den Desktop-Zugriff über das Netzwerk konzentrieren. Im Großen und Ganzen wird der Plan für die Vorbereitung des ersten bedeutenden Releases 1.0 vorgestellt: In der nächsten Version 0.7 werden Erweiterungen des Audiobusystems, Verbesserungen der Kompatibilität und die Entwicklung von 3D-Grafikressourcen erwartet. Die Version 0.8 wird sich auf Optimierung und Leistung konzentrieren, während 0.9 auf die Sicherheit abzielt.
Zu den auffälligsten Änderungen in der Version Arcan 0.6.1 gehört die Modernisierung des Display-Subsystems. Server arcan-wayland, das das Wayland-Protokoll nutzt, hat eine Schicht zur Verwendung von EGL implementiert und unterstützt standardmäßig dma-buf. Im X-Server Xarcan wurde die Handhabung von GPU-Umschaltungen verbessert sowie die Unterstützung für die Zwischenablage und die hardwarebeschleunigte Cursor-Rendereingefügt. Zudem wurde die Unterstützung für Displays mit variabler Bildwiederholfrequenz optimiert. In der Eingabesystem ist die Latenz verringert worden.
Viele interne Änderungen wurden vorgenommen, um die Synchronisierung und die Effizienz der Ereigniswarteschlangenverwaltung zu verbessern. Die Entwicklung des Grafikservers "arcan-net" für die remote Desktop-Nutzung über das Netzwerk, der in diesem Server Protokoll A12 betrieben wird, das als Ersatz für SSH/VNC/RDP/X11 entwickelt wird, wurde fortgesetzt. Die Bindungen für die Entwicklung von Komponenten in Lua wurden aktualisiert.
Das vorgeschlagene Konzept von Pipeworld ermöglicht die Umleitung von Datenströmen zwischen Fenstern. Es verbindet Daten und Handler in verschiedenen Fenstern analog zu Zellen in Tabellenkalkulationen und bildet einen gemischten Workflow, der grafische und konsolenbasierte Schnittstellen vereint (zum Beispiel kann die Ausgabe aus einem Fenster in einen laufenden Shell-Handler im Terminal umgeleitet und das Ergebnis in einem anderen Fenster verwendet werden).

Erinnern wir uns daran, dass Arcan nicht an ein bestimmtes grafisches Subsystem gebunden ist und über verschiedene Systemumgebungen (BSD, Linux, macOS, Windows) hinweg arbeiten kann, indem es Plug-in-Backends nutzt. Beispielsweise besteht die Möglichkeit, es über Xorg, egl-dri, libsdl und AGP (GL/GLES) auszuführen. Unter der Steuerung eines Display-Servers können Client-Anwendungen basierend auf X, Wayland und SDL2 laufen. Sicherheit, Leistung und Debugging-Eignung sind die Hauptkriterien, die bei der Gestaltung der Arcan-API angewendet werden. Zur Vereinfachung der Interface-Entwicklung wird die Verwendung der Programmiersprache Lua empfohlen.
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.
Darüber hinaus möchten wir erwähnen, dass die neue Version von Durden 0.7, die für die Verwendung mit Arcan entwickelt wird, in der Veröffentlichung 0.7 die Unterstützung für die vertikale Anordnung der Fensterüberschrift und der Statusleiste bieten wird. Außerdem wird ein Tool für Sprachausgabe (Text-to-Speech) hinzugefügt. Durden unterstützt sowohl eine Mosaikoberfläche mit vollständigen Tastatursteuerungen als auch einen freien Fensteranordnungsmodus auf dem Bildschirm. Alle Einstellungen, einschließlich Eingabemethoden, Schriftarten und visuelle Effekte, können in Echtzeit geändert werden, ohne dass eine Neuinstallation der Konfiguration erforderlich ist.
Es ist möglich, für jedes Fenster ein eigenes Verhalten einzurichten und einen fenstergebundenen, unabhängigen Zwischenspeicher zu verwenden. Die Nutzung in Systemen mit mehreren Monitoren und unterschiedlichen DPI wird unterstützt. Anwendungen können entweder in einer Menüleiste (globales Menü) oder im Fensterkopf angezeigt werden. Widgets können auf dem Desktop platziert werden. Es gibt eine integrierte Funktion zur Bildschirmaufnahme von Aktionen auf dem Desktop und in einzelnen Fenstern. Das Eingabeverwaltungssystem unterstützt den Wechsel zwischen Tastaturlayouts und die Verwendung erweiterter Geräte wie Spielsteuerungen.
Quelle: opennet.ru
