AprĂšs un an de dĂ©veloppement, le moteur de bureau Arcan 0.7.1 est lancĂ©, combinant un serveur d'affichage, un framework multimĂ©dia et un moteur de jeu pour le traitement des graphiques 3D. Arcan peut ĂȘtre utilisĂ© pour crĂ©er divers systĂšmes graphiques, des interfaces utilisateur pour des applications intĂ©grĂ©es Ă des environnements de bureau autonomes. Sur la base d'Arcan, un environnement utilisateur 3D pour les systĂšmes de rĂ©alitĂ© virtuelle Safespaces et l'environnement de bureau Durden ont Ă©tĂ© construits. Le code du projet est Ă©crit en C et est distribuĂ© sous la licence BSD (certaines parties sous GPLv2+ et LGPL).
Arcan n'est pas liĂ© Ă des sous-systĂšmes graphiques spĂ©cifiques et peut fonctionner au-dessus de divers environnements systĂšme (BSD, Linux, macOS, Windows), en utilisant des backends plug-in. Par exemple, il est possible de s'exĂ©cuter au-dessus de Xorg, egl-dri, libsdl et AGP (GL/GLES). Sous la gestion du serveur d'affichage Arcan, des applications clientes basĂ©es sur X11, Wayland et SDL peuvent ĂȘtre exĂ©cutĂ©es. Le projet dĂ©veloppe son fork du serveur X.org â xarcan, ainsi qu'un serveur composite arcan-wayland (waybridge), permettant d'exĂ©cuter des applications basĂ©es sur Wayland. Les critĂšres clĂ©s utilisĂ©s lors de la conception de l'API Arcan incluent la sĂ©curitĂ©, la performance et la facilitĂ© de dĂ©bogage. Il est recommandĂ© d'utiliser le langage Lua pour simplifier le dĂ©veloppement des interfaces.

Caractéristiques d'Arcan :
- Une combinaison des capacitĂ©s d'un serveur composite, d'un serveur d'affichage et d'un gestionnaire de fenĂȘtres.
- Support du fonctionnement en mode isolĂ©, oĂč une application basĂ©e sur Arcan est un Ă©lĂ©ment autonome, fonctionnant sans couches graphiques supplĂ©mentaires.
- Framework multimédia intégré fournissant des outils pour le traitement graphique, le streaming vidéo et audio, l'animation, le chargement d'images, et la gestion des dispositifs d'acquisition vidéo.

- ModÚle de multiprocessus pour connecter des gestionnaires de sources de données (par exemple, des flux vidéo et la sortie de programmes exécutés).

- ModĂšle strict de sĂ©paration des privilĂšges â les composants du moteur sont divisĂ©s en petits processus non privilĂ©giĂ©s, communiquant via une interface de mĂ©moire partagĂ©e Shmif.
- Outils intégrés pour la surveillance et l'analyse des plantages des processus. Le moteur peut sérialiser l'état interne des scripts Lua pour faciliter le débogage.
- PossibilitĂ© de retour en arriĂšre (Fallbacks) vers un autre gestionnaire â en cas d'Ă©chec dĂ» Ă une erreur dans le programme, le moteur peut lancer une application de secours tout en prĂ©servant les mĂȘmes sources de donnĂ©es et connexions externes.
- Outils pour le partage et l'accÚs à distance au bureau. L'accÚs réseau est assuré par le serveur graphique «arcan-net», qui implémente le protocole P2P A12, combinant les capacités de technologies telles que mDNS (détermination des services locaux), SSH (shell interactif en texte), X11/VNC/RDP (shell graphique interactif), RTSP (diffusion de données multimédia) et HTTP (téléchargement de ressources et synchronisation d'état).
- Shell Cat9, permettant d'associer l'exĂ©cution de commandes Ă des cellules individuelles, ressemblant Ă un tableur (vidĂ©o de dĂ©monstration). Le concept proposĂ© permet de rediriger les flux de donnĂ©es entre les fenĂȘtres, liant donnĂ©es et gestionnaires dans diffĂ©rentes fenĂȘtres de maniĂšre similaire aux cellules d'un tableur (par exemple, il est possible de rediriger la sortie d'une fenĂȘtre vers un gestionnaire shell exĂ©cutĂ© dans le terminal et d'utiliser le rĂ©sultat dans une autre fenĂȘtre).

Modifications liées au projet :
- Le serveur composite Gamescope, développé par Valve, a été porté, ce qui permet de lancer des jeux depuis Steam sans manipulations avec Xwayland.
- Amélioration du plugin Qt qtarcan, permettant de lancer dans Arcan des applications utilisant Qt5 et Qt6, telles que Qbittorrent et Binary Ninja.
- Des patches et un script ont été créés pour exécuter KeepassXC.
- Un visualiseur pour le protocole A12 et les interactions à travers celui-ci est en cours de développement.
- DĂ©veloppement d'un gestionnaire de fenĂȘtres interactif Lasso.
- Ajout de l'utilitaire Xkbd2Lua pour convertir les dispositions de clavier de X11 au format supporté par Arcan.
- Développement de paquets nix pour créer un environnement de démarrage fonctionnel basé sur Arcan, avec le bureau Durden et le shell.
- Ajout du support de l'algorithme de cryptage post-quantique ML-KEM.
- Ajout de la possibilitĂ© pour les clients de reprendre les connexions rĂ©seau interrompues (aprĂšs la restauration d'une connexion rompue, l'application sera reconnectĂ©e sans perte de l'Ă©tat de sa fenĂȘtre).
- Ajout de l'option «âcast», permettant de permettre Ă d'autres utilisateurs de travailler avec une copie de la sortie de l'application en mode lecture seule.
- Le serveur de catalogues a ajouté la prise en charge de nouveaux liens unifiés (Unified) et de référence (Referential), permettant de regrouper des serveurs en un espace de noms unique ou de former des chaßnes. serveursDans le premier cas, le groupe de serveurs apparaßt pour l'utilisateur comme un seul serveur, tandis que dans le second, il est possible d'exécuter des applications sur un serveur connecté à un autre. le serveur.
- L'API a ajoutĂ© la fonction launch_target pour lancer dynamiquement une application sur le serveur Ă la demande du client. Pour l'application, un contrĂŽleur peut ĂȘtre créé : un ensemble de scripts Lua pour gĂ©rer l'Ă©change de messages et l'accĂšs aux ressources.
- Prise en charge des résolveurs de ressources externes (External Resource Resolver), qui peuvent intercepter les opérations sur le stockage Arcan et traiter les demandes de ressources, par exemple en organisant le cache local ou en chargeant des données depuis le Web, BitTorrent ou IPFS au lieu de renvoyer à partir du disque local.
- Une sorte de clients légers a été réalisée, permettant au client sans la pile complÚte d'Arcan (avec seulement le visualiseur Smash) de transférer la logique d'exécution des programmes sur le serveur. Par exemple, pour exécuter l'environnement de bureau durden sur le serveur myserver, il suffit d'exécuter « arcan-net --host-appl myserver@ durden ».
- Un backend avec un débogueur supportant le protocole DAP (Debug Adapter Protocol) pour le débogage local ou distant a été ajouté à l'interface en ligne de commande Cat9.
- Une série de modifications a été apportée concernant le développement du protocole A12, l'environnement d'exécution pour les scripts en Lua, la sous-systÚme réseau, le serveur de catalogues pour relier des composants dispersés sur le réseau, le systÚme de mémoire partagée Shmif et le module egl-dri.
La version 0.6.3 de l'environnement de bureau Durden a Ă©tĂ© publiĂ©e en mĂȘme temps. La derniĂšre version avait Ă©tĂ© créée en 2020. Durden prend en charge les modes de mise en page mosaĂŻque et classique avec des outils de contrĂŽle complets via le clavier. Il est possible de travailler dans des systĂšmes avec plusieurs moniteurs ayant des DPI diffĂ©rents.
Une mĂ©moire tampon avancĂ©e est fournie, conservant l'historique des modifications et disponible en deux options : globale et liĂ©e Ă des fenĂȘtres individuelles. La prise en charge du changement de disposition du clavier et de l'utilisation d'appareils avancĂ©s, tels que les manettes de jeu, est disponible. Des fonctionnalitĂ©s telles qu'un menu global, un menu dans l'en-tĂȘte de la fenĂȘtre, des widgets et des rĂ©glages de comportement spĂ©cifiques Ă chaque fenĂȘtre sont Ă©galement prises en charge. Tous les rĂ©glages, y compris les mĂ©thodes de saisie, les polices et les effets visuels, peuvent ĂȘtre modifiĂ©s Ă la volĂ©e, sans nĂ©cessiter de redĂ©marrage de la configuration.
La version 0.6.3 est une version prĂ©paratoire avant la sortie de Durden 0.7 en dĂ©veloppement, qui proposera un ensemble d'innovations importantes, telles que des gestes d'Ă©cran, la prise en charge des en-tĂȘtes et panneaux verticaux, un mode d'affichage compact pour les en-tĂȘtes et panneaux, un nouveau configurateur, un aperçu au survol de la souris, un clavier virtuel osdkbd, un mode de superposition des fenĂȘtres, la prise en charge de la synthĂšse vocale, l'intĂ©gration des composants a12net et a12_directory pour garantir la transparence rĂ©seau et l'accĂšs Ă distance.
Source : opennet.ru



