Após um ano de desenvolvimento, foi lançado o Arcan 0.7, um mecanismo desktop que combina um servidor de exibição, um framework multimídia e um motor de jogo para processamento de gráficos 3D. O Arcan pode ser usado para criar diversos sistemas gráficos — desde interfaces de usuário para aplicativos embarcados até ambientes desktop autossuficientes. Entre outros, o escritório tridimensional Safespaces para sistemas de realidade virtual e o ambiente de desktop Durden são baseados no Arcan. O código do projeto é escrito em C e é distribuído sob a licença BSD (alguns componentes sob GPLv2+ e LGPL).
O Arcan não está preso a sistemas gráficos específicos e pode operar sobre diferentes ambientes de sistema (BSD, Linux, macOS, Windows), utilizando backends plugáveis. Por exemplo, é possível rodar sobre Xorg, egl-dri, libsdl e AGP (GL/GLES). Sob o controle do servidor de exibição servidor O Arcan pode executar aplicativos cliente baseados em X11, Wayland e SDL2. Segurança, desempenho e a adequação para depuração são citados como critérios chave aplicados ao projetar a API do Arcan. Para facilitar o desenvolvimento de interfaces, recomenda-se utilizar a linguagem Lua.
Características do Arcan:
- Uma combinação das capacidades de um servidor composto, um servidor de exibição e um gerenciador de janelas.
- Suporte para operação em modo isolado, onde o aplicativo é um componente autossuficiente.
- Um framework multimídia embutido, que fornece ferramentas para trabalhar com gráficos, processamento de vídeo e áudio em streaming, animação, carregamento de imagens e operação com dispositivos de captura de vídeo.
- Modelo multiprocessado de conexão de manipuladores de fontes de dados (por exemplo, fluxos de vídeo e a saída de programas em execução).
- Modelo rígido de separação de privilégios — os componentes do motor são divididos em pequenos processos não privilegiados que interagem por meio de uma interface de memória compartilhada chamada Shmif.
- Ferramentas embutidas de monitoramento e análise de falhas de processos, por exemplo, o motor pode serializar o estado interno dos scripts Lua para facilitar a depuração.
- Possibilidade de fallback para outro manipulador — em caso de falha devido a um erro no programa, o motor pode iniciar um aplicativo de reserva, mantendo as mesmas fontes de dados externas e conexões.
- Ferramentas para compartilhamento e conexão remota com a área de trabalho. O acesso pela rede oferece uma interface gráfica servidor «arcan-net», que implementa o protocolo P2P A12, combinando as funcionalidades de tecnologias como mDNS (descoberta de serviços locais), SSH (shell interativo), X11/VNC/RDP (interface gráfica interativa), RTSP (streaming de dados multimídia) e HTTP (download de recursos e sincronização de estado).
Na nova versão, continuamos o trabalho no subsistema de rede e no protocolo A12. Expandimos as capacidades do servidor de diretórios, desenvolvido para conectar em um único stack componentes distribuídos pela rede; por exemplo, pode ser usado para conectar à área de trabalho de dispositivos externos, como armazenamentos, câmeras e telas. No servidor X Xarcan, foi adicionada a capacidade de iniciar gerenciadores de janelas de terceiros. Com esse lançamento, o Xarcan assume as funções de baixo nível de trabalho com a tela, segurança e gerenciamento de configuração, enquanto o gerenciador de janelas se encarrega da manipulação e decoração das janelas (vídeo com exemplo).

As capacidades do Lash, um ambiente para execução de scripts em Lua, e do shell Cat9, baseado nele, foram ampliadas, proporcionando a possibilidade de vincular a execução de comandos a células individuais que formam uma espécie de planilha eletrônica (vídeo de demonstração). O conceito proposto permite redirecionar fluxos de dados entre janelas, ligando dados e manipuladores em janelas diferentes, semelhante a células em planilhas eletrônicas (por exemplo, pode-se redirecionar a saída de uma janela para um manipulador shell em execução no terminal e usar o resultado em outra janela).

Fonte: opennet.ru
