Após um ano de desenvolvimento, foi lançado o mecanismo de desktop Arcan 0.7, que combina um servidor de exibição, uma estrutura multimídia e um mecanismo de jogo para processamento de gráficos 3D. O Arcan pode ser usado para criar uma variedade de sistemas gráficos - desde interfaces de usuário para aplicativos incorporados até ambientes de desktop independentes. Entre outras coisas, o desktop tridimensional Safespaces para sistemas de realidade virtual e o ambiente de desktop Durden são construídos com base no Arcan. O código do projeto é escrito em C e distribuído sob a licença BSD (alguns componentes estão sob GPLv2+ e LGPL).
Arcan não está vinculado a subsistemas gráficos separados e pode ser executado em vários ambientes de sistema (BSD, Linux, macOS, Windows), usando backends plugáveis. Por exemplo, é possível executar sobre Xorg, egl-dri, libsdl e AGP (GL/GLES). Sob controle de exibição servidor Arcan pode executar aplicações cliente baseadas em X11, Wayland e SDL2. Os principais critérios utilizados no projeto da API do Arcan incluem segurança, desempenho e facilidade de depuração. Para simplificar o desenvolvimento de interfaces, propõe-se o uso da linguagem Lua.
Recursos Arcanos:
- Combinação de recursos de servidor composto, servidor de exibição e gerenciador de janelas.
- Suporte para trabalhar em modo autônomo, no qual o aplicativo é uma unidade independente.
- Estrutura multimídia integrada que fornece ferramentas para trabalhar com gráficos, processar streaming de vídeo e áudio, animação, carregar imagens e trabalhar com dispositivos de captura de vídeo.
- Modelo multiprocesso para conectar processadores de fontes de dados (por exemplo, fluxos de vídeo e saída de programas em execução).
- Modelo estrito de separação de privilégios - os componentes do mecanismo são divididos em pequenos processos sem privilégios que interagem por meio da interface de memória compartilhada Shmif.
- Ferramentas integradas para monitorar e analisar falhas de processos, por exemplo, o mecanismo pode serializar o estado interno dos scripts Lua para simplificar a depuração.
- A capacidade de reverter (Fallbacks) para outro manipulador - em caso de falha devido a um erro no programa, o mecanismo pode iniciar um aplicativo substituto, mantendo as mesmas fontes de dados externas e conexões.
- Ferramentas de compartilhamento de tela e conexão remota. O acesso à rede é fornecido por uma interface gráfica. servidor "arcan-net", que implementa o protocolo A12 P2P, combinando as capacidades de tecnologias como mDNS (definição de serviço local), SSH (shell de texto interativo), X11/VNC/RDP (shell gráfico interativo), RTSP (streaming de dados multimídia) e HTTP (carregamento de recursos e sincronização de estado).
A nova versão continua trabalhando no subsistema de rede e no protocolo A12. As capacidades do servidor de diretório, que está sendo desenvolvido para unir componentes distribuídos pela rede em uma pilha, foram expandidas, por exemplo, ele pode ser usado para conectar dispositivos externos como armazenamento, câmeras e telas ao desktop; O servidor Xarcan X adicionou suporte para execução de gerenciadores de janelas de terceiros. Quando executado dessa forma, o Xarcan assume as funções de exibição de baixo nível, segurança e gerenciamento de configuração, enquanto o gerenciador de janelas cuida do processamento e decoração da janela (vídeo de exemplo).

Os recursos do Lash, um ambiente para execução de scripts na linguagem Lua, e do shell de comando Cat9 construído em sua base foram ampliados, proporcionando a capacidade de vincular a execução de comandos a células individuais que formam algo como uma planilha (vídeo com demonstração ). O conceito proposto permite redirecionar fluxos de dados entre janelas, vinculando dados e manipuladores em janelas diferentes, semelhantes às células em planilhas (por exemplo, você pode redirecionar a saída de uma janela para um manipulador de shell em execução no terminal e usar o resultado em outro janela).

Fonte: opennet.ru
