Na een jaar ontwikkeling is de desktop-engine Arcan 0.6.2 uitgebracht, die een displayserver, multimedia-framework en game-engine combineert voor het verwerken van 3D-graphics. Arcan kan worden gebruikt voor het creëren van verschillende grafische systemen, van gebruikersinterfaces voor ingebedde toepassingen tot zelfstandige desktopomgevingen. Ook is op basis van Arcan de driedimensionale desktop Safespaces ontwikkeld voor virtual reality-systemen en de desktopomgeving Durden. De projectcode is geschreven in de programmeertaal C en wordt verspreid onder de BSD-licentie (sommige componenten onder GPLv2+ en LGPL).
In deze nieuwe uitgave is de ontwikkeling van middelen voor remote desktop werkoverleggen over het netwerk voortgezet. Netwerktoegang wordt geboden door de grafische server ‘arcan-net’, dat het A12-protocol implementeert, dat mogelijkheden combineert van technologieën zoals mDNS (detectie van lokale services), SSH (interactieve tekstshell), X11/VNC/RDP (interactieve grafische shell), RTSP (streaming van multimediagegevens) en HTTP (resource-download en synchronisatie van status).
Arcan is niet gebonden aan een specifieke grafische subsystem en kan boven verschillende systeemomgevingen draaien (BSD, Linux, macOS, Windows) met behulp van plug-in backends. Zo is er de mogelijkheid om boven Xorg, egl-dri, libsdl en AGP (GL/GLES) te draaien. Onder beheer van de displayserver de server kunnen clienttoepassingen draaien op basis van X, Wayland en SDL2. Bij het ontwerpen van de Arcan API worden veiligheid, prestaties en debugbaarheid als belangrijkste criteria genoemd. Voor de vereenvoudiging van interfaceontwikkeling wordt het gebruik van de programmeertaal Lua aanbevolen.
Features of Arcan:
- Een combinatie van de rollen van een composietserver, displayserver en windowmanager.
- De mogelijkheid om in een geïsoleerde modus te werken, waarbij de toepassing fungeert als een zelfstandige eenheid.
- Een ingebouwd multimedia-framework dat middelen biedt voor grafisch ontwerp, animatie, verwerking van streaming video en audio, het downloaden van afbeeldingen en het werken met video-opnameapparaten.
- Een multiprogrammeerbare model voor het aansluiten van handlers voor dynamische gegevensbronnen — van videostreams tot de uitvoer van afzonderlijke programma's.
- Strikte model van privilege-segmentatie. De componenten van de engine worden opgesplitst in kleine niet-privilege processen die communiceren via de gedeelde geheugensinterface shmif;
- Ingebouwde monitoring- en analysetools voor crashes, waaronder de engine die de interne status van Lua-scripts kan serialiseren voor vereenvoudigde debugging;
- Fallback-functie die bij een crash door een programmeerfout een noodapplicatie kan starten, met behoud van dezelfde externe gegevensbronnen en verbindingen;
- Geavanceerde samenwerkingshulpmiddelen die kunnen worden gebruikt om afzonderlijke subsets van audio- en video-invoeren op te nemen of uit te zenden tijdens het delen van bureaubladimplementaties.
Bron: opennet.ru
