Dopo un anno di sviluppo, è disponibile il rilascio del motore desktop Arcan 0.6.1, che combina un server di visualizzazione, un framework multimediale e un motore di gioco per l'elaborazione della grafica 3D. Arcan può essere utilizzato per creare vari sistemi grafici, dalle interfacce utente per applicazioni integrate agli ambienti desktop autonomi. Tra l'altro, Arcan supporta il desktop 3D Safespaces per sistemi di realtà virtuale e l'ambiente desktop Durden. Il codice del progetto è scritto in C e distribuito sotto licenza BSD (alcuni componenti sotto GPLv2+ e LGPL).
Il nuovo rilascio include i progressi accumulati nell'anno, concentrandosi principalmente sullo sviluppo della sottosistema per l'accesso al desktop tramite rete. In generale, è stato presentato un piano per la preparazione del primo importante rilascio 1.0: nella prossima branch 0.7 si prevede un lavoro di espansione del sottosistema audio, miglioramento della compatibilità e sviluppo degli strumenti per la grafica 3D. La branch 0.8 sarà focalizzata sull'ottimizzazione e sulle prestazioni, mentre la 0.9 si concentrerà sulla sicurezza.
Tra i cambiamenti più significativi nella versione Arcan 0.6.1, si segnala la modernizzazione del display server arcan-wayland, che utilizza il protocollo Wayland e implementa uno strato per l'uso di EGL e include di default il supporto per dma-buf. Nel server X Xarcan è migliorata la gestione degli switch GPU e sono stati aggiunti il supporto per la clipboard e l'accelerazione hardware per il rendering del cursore. È stato migliorato il supporto per schermi con una frequenza di rigenerazione variabile del contenuto. Sono stati ridotti i ritardi nel sistema di input.
Sono state apportate molte modifiche interne, mirate a migliorare la sincronizzazione e aumentare l'efficienza nella gestione delle code di eventi. È proseguito lo sviluppo del server grafico "arcan-net" per il lavoro remoto con il desktop tramite rete, utilizzato nel server protocollo A12, sviluppato per sostituire SSH/VNC/RDP/X11. Aggiornate le binding per lo sviluppo di componenti in linguaggio Lua.
È stata proposta la concettualizzazione di Pipeworld, che consente di reindirizzare i flussi di dati tra le finestre, collegando dati e gestori in finestre diverse analogamente alle celle nei fogli di calcolo, formando un flusso di lavoro misto che combina interfacce grafiche e console (ad esempio, è possibile reindirizzare l'output da una finestra a un gestore shell avviato in terminale e utilizzare il risultato in un'altra finestra).

Ricordiamo che Arcan non è legato a un sistema grafico separato e può funzionare sopra vari ambienti di sistema (BSD, Linux, macOS, Windows), utilizzando backend collegabili. Ad esempio, è possibile avviarlo sopra Xorg, egl-dri, libsdl e AGP (GL/GLES). Sotto la gestione di un server di visualizzazione, Arcan può eseguire applicazioni client basate su X, Wayland e SDL2. Tra i criteri chiave utilizzati nella progettazione dell'API di Arcan si annoverano la sicurezza, le prestazioni e l'idoneità al debug. Per semplificare lo sviluppo delle interfacce, si propone di utilizzare il linguaggio Lua.
Caratteristiche di Arcan:
- Una combinazione dei ruoli di server composito, server per display e gestore delle finestre.
- La possibilità di operare in modalità isolata, in cui l'applicazione funge da entità autonoma.
- Un framework multimediale integrato che fornisce strumenti per lavorare con grafica, animazione, elaborazione di video e audio in streaming, caricamento di immagini e interazione con dispositivi di acquisizione video.
- Un modello multiprocessuale per la connessione di gestori di fonti dinamiche di dati, dai flussi video all'uscita di singoli programmi.
- Un modello rigoroso di separazione dei privilegi. I componenti del motore sono suddivisi in piccoli processi non privilegiati che interagiscono tramite un'interfaccia di memoria condivisa shmif;
- Strumenti integrati di monitoraggio e analisi dei crash, incluso che il motore può serializzare lo stato interno degli script Lua per semplificare il debug;
- Funzione di fallback che, in caso di errore nel programma, può avviare un'applicazione di riserva mantenendo le stesse origini e connessioni di dati esterni;
- Strumenti avanzati di condivisione che possono essere utilizzati per registrare o trasmettere singoli sottoinsiemi di sorgenti audio e video durante l'implementazione della condivisione del desktop.
Inoltre, si segnala la preparazione di una nuova versione del desktop Durden 0.7, sviluppato per l'uso con Arcan. Nella versione 0.7 ci sarà il supporto per la disposizione verticale dell'intestazione della finestra e della barra di stato, oltre a una utility per il supporto vocale (text to speech). Durden supporta un'interfaccia a mosaico con strumenti di gestione completi da tastiera e una modalità di disposizione libera delle finestre sullo schermo. Tutte le impostazioni, compresi i metodi di input, i font e gli effetti visivi, possono essere modificati al volo, senza la necessità di ricaricare la configurazione.
È possibile configurare un comportamento separato per ciascuna finestra e utilizzare un buffer degli appunti indipendente legato alla finestra. È supportato il funzionamento in sistemi con più monitor con diverse DPI. È presente la possibilità di visualizzare i menu delle applicazioni nella barra (menu globale) o di posizionare il menu nell'intestazione della finestra. È possibile disporre widget sul desktop. È disponibile una funzione integrata di registrazione video delle azioni sul desktop e in finestre singole. Il sottosistema di gestione dell'input supporta il cambio di layout della tastiera e la possibilità di lavorare con dispositivi avanzati, come i joystick.
Fonte: opennet.ru
