Efter et års udvikling er desktop-motoren Arcan 0.7.1 blevet præsenteret, som kombinerer en displayserver, et multimedierammeværk og en game engine til behandling af 3D-grafik. Arcan kan bruges til at skabe forskellige grafiske systemer - fra brugergrænseflader til indlejrede applikationer til selvstændige desktop-miljøer. På baggrund af Arcan er der bygget et 3D-brugergrænsemiljø til virtuelle virkelighedssystemer, Safespaces, samt desktop-miljøet Durden. Projektets kode er skrevet i C og distribueres under BSD-licensen (nogle komponenter under GPLv2+ og LGPL).
Arcan er ikke bundet til specifikke grafiske subsystemer og kan fungere oven på forskellige systemmiljøer (BSD, Linux, macOS, Windows), ved hjælp af plug-in backends. For eksempel er der mulighed for at køre oven på Xorg, egl-dri, libsdl, og AGP (GL/GLES). Under displayserveren Arcan kan klientapplikationer baseret på X11, Wayland og SDL køre. Projektet udvikler sin fork af X.org-serveren — xarcan, såvel som den kompositserver, arcan-wayland (waybridge), som muliggør kørsel af applikationer baseret på Wayland. Som nøglekriterier, der anvendes ved design af API'en for Arcan, nævnes sikkerhed, ydeevne og debug-venlighed. For at forenkle udviklingen af grænseflader foreslås det at bruge Lua-sproget.

Funktioner i Arcan:
- Kombination af funktionerne i en kompositionsserver, displayserver og vinduesmanager.
- Understøttelse af drift i en isoleret tilstand, hvor applikationen baseret på Arcan fungerer som et selvforsynende led, der kører uden yderligere grafiske lag.
- Indbygget multimedierammeværk, der giver værktøjer til at arbejde med grafik, behandling af streamet video og lyd, animation, indlæsning af billeder, arbejde med videooptagelsesenheder.

- Multiprocessmodel til tilslutning af datakildebehandlere (f.eks. videostreams og udgang fra kørende programmer).

- Skarp model for privilegiedeling - enginekomponenter opdeles i små, up privilegerede processer, der interagerer via grænsefladen for delt hukommelse Shmif.
- Indbyggede værktøjer til overvågning og analyse af processens krasjafslutninger. Motoren kan serialisere den indre tilstand af Lua-scripts for at lette fejlfinding.
- Mulighed for Fallbacks til en anden behandler - i tilfælde af et fejlslag på grund af en programfejl kan motoren starte en reserveapplikation og bevare de samme eksterne datakilder og forbindelser.
- Værktøjer til deling og fjernadgang til skrivebordet. Netadgang muliggør den grafiske server "arcan-net", der implementerer P2P-protokollen A12, som kombinerer funktionerne i teknologier som mDNS (lokal serviceopdagelse), SSH (interaktiv tekstgrænseflade), X11/VNC/RDP (interaktiv grafisk grænseflade), RTSP (streaming af multimediedata) og HTTP (download af ressourcer og synkronisering af tilstand).
- Kommandogrænsesnittet Cat9, der gør det muligt at knytte udførelsen af kommandoer til individuelle celler, som danner et slags regneark (video med demonstration). Den foreslåede koncept gør det muligt at omdirigere datastreams mellem vinduer ved at forbinde data og håndterere i forskellige vinduer i lighed med celler i regneark (for eksempel kan output fra et vindue omdirigeres til en shell-håndterer, der kører i terminalen, og bruge resultatet i et andet vindue).

Ændringer relateret til projektet:
- Den Composite-server, der udvikles af Valve, Gamescope, er blevet portet, hvilket muliggør kørsel af spil fra Steam uden manipulation med Xwayland.
- Qt-pluginet qtarcan er forbedret, hvilket muliggør kørsel af Qt5- og Qt6-applikationer i Arcan, såsom Qbittorrent og Binary Ninja.
- Patchene og skriptet til at køre KeepassXC er blevet oprettet.
- En browser til A12-protokollen og interaktion via den er under udvikling.
- Den interaktive vinduesadministrator Lasso er under udvikling.
- Værktøjet Xkbd2Lua er tilføjet for at konvertere tastaturlayout fra X11 til et format, der understøttes af Arcan.
- Nix-pakker til oprettelse af et arbejdsmiljø baseret på Arcan, desktopmiljøet Durden og kommandogrænsesnittet er under udvikling.
- Support for den post-kvante krypteringsalgoritme ML-KEM er blevet tilføjet.
- Muligheden for, at klienter kan genoptage afbrudte netværksforbindelser er blevet tilføjet (efter genoprettelse af den afbrudte forbindelse vil applikationen blive genforbundet uden at miste tilstanden i sit vindue).
- Muligheden "—cast" er blevet tilføjet, hvilket muliggør samarbejde mellem brugere med en kopi af applikationens output i skrivebeskyttet tilstand.
- Serverkataloget har fået støtte til nye enhedslinks (Unified) og referencelinks (Referential), som gør det muligt at samle servere i et samlet navnerum eller opbygge kæder. servereI det første tilfælde ser brugeren en gruppe servere som én server, mens det i det andet tilfælde er muligt at køre applikationer på én. serveren, ved at oprette forbindelse til en anden.
- API'et har fået en funktion kaldet launch_target til dynamisk at starte applikationer på serveren efter anmodning fra klienten. Der kan oprettes en controller for applikationen - et sæt Lua-scripts til styring af meddelelsesudveksling og adgang til ressourcer.
- Støtte til eksterne ressourcestyrere (External Resource Resolver) er blevet tilføjet, som kan interceptere operationer med Arcan-lageret og behandle anmodninger om ressourcer, f.eks. ved at organisere lokal caching eller hente data fra Web, BitTorrent eller IPFS i stedet for at levere fra den lokale disk.
- Der er implementeret en form for tynde klienter, der giver klienten mulighed for at flytte programudførelse til serveren uden et komplet Arcan-stack (kun med Smash-browseren). For eksempel kan du starte desktop-miljøet durden på serveren myserver ved at køre ‘arcan-net —host-appl myserver@ durden’.
- Der er tilføjet en backend med debugger til kommandolinjen Cat9, som understøtter DAP-protokollen (Debug Adapter Protocol) til lokal eller fjern debugging.
- En stor række ændringer relateret til udviklingen af A12-protokollen, miljøet til udførelse af scripts i Lua, netværksunderstøttelse, katalogserveren til at binde komponenter fordelt over nettet, Shmif-systemet til delt hukommelse, og egl-dri-modulet er blevet implementeret.
Samtidig er version 0.6.3 af desktop-miljøet Durden blevet frigivet. Den tidligere version blev frigivet i 2020. Durden understøtter både mosaik og klassiske vindueslayout med fuld kontrol via tastatur. Det er muligt at arbejde i systemer med flere skærme med forskellige DPI.
Der tilbydes en udvidet udklipsholder, der gemmer ændringshistorik og er tilgængelig i to versioner - global og bundet til enkelte vinduer. Der er support til skift af tastaturlayout og brug af udvidede enheder som spilcontrollere. Muligheder såsom global menu, menu i vinduets overskrift, widgets og indstilling af særskilt adfærd for hvert vindue understøttes. Alle indstillinger, herunder inputmetoder, skrifttyper og visuelle effekter, kan ændres i realtid uden behov for at genstarte konfigurationen.
Version 0.6.3 er en forberedelsesudgivelse før den kommende Durden 0.7, hvor der vil blive budt på en række væsentlige nyheder, såsom berøringsgestus, understøttelse af lodrette overskrifter og paneler, kompakt visning af overskrifter og paneler, en ny konfigurationsværktøj, forhåndsvisning ved museoverflyvning, skærmtastatur osdkbd, vinduer sammenlægning, understøttelse af talesyntese, integration af a12net og a12_directory komponenter for at sikre netværksgennemsigtighed og fjernadgang.
Kilde: opennet.ru



