O projeto Frame está desenvolvendo um novo servidor X escrito inteiramente em linguagem assembly NASM para a arquitetura x86_64 e projetado para ser executado em Linux Sem dependências externas. Interagindo com o kernel. LinuxA implementação do Frame, incluindo as interfaces DRM/KMS e evdev, é feita diretamente por meio de chamadas de sistema, sem o uso de bibliotecas como libc, Mesa e FreeType. O código do Frame é distribuído em domínio público. O desenvolvimento está sendo realizado com o auxílio do assistente de IA Claude Code.
O objetivo do projeto é implementar extensões do protocolo X11 suficientes para o ambiente de trabalho CHasm, desenvolvido pelo mesmo autor e também escrito em assembly. O suporte para a execução de aplicativos X11 padrão, incluindo Firefox, VS Code, GIMP e Inkscape, é declarado como requisito mínimo. As extensões X11 planejadas para implementação incluem SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 e XVideo.
O desenvolvimento está dividido em 14 etapas. O projeto encontra-se atualmente na etapa 7, que já inclui funcionalidades básicas para executar um terminal e alguns aplicativos X11. A etapa 14 será alcançada quando todas as funcionalidades para suporte completo ao Firefox estiverem implementadas. Atualmente, foi anunciado que será possível executar o ambiente de trabalho CHasm básico, o GIMP e o Firefox (com limitações).
Funcionalidades já implementadas incluem: recebimento de requisições X11 via socket Unix, renderização por software via subsistema de kernel DRM/KMS, processamento de entrada via evdev, uma API para gerenciamento de entrada, suporte para conexão de múltiplos clientes X11, funções para criação e manipulação de janelas, operações com pixmaps, operações atômicas, seleção de texto para a área de transferência e as extensões X11 SHAPE, RANDR, XKB, XInput2 e MIT-SHM. Primitivas de renderização vetorial, troca atômica de modo de vídeo, área de transferência, troca de layout de teclado, controle de cursor e as extensões X11 RENDER, DAMAGE e COMPOSITE ainda não foram implementadas.
O ambiente de desktop CHasm contém aproximadamente 100 linhas de código e inclui componentes escritos em linguagem assembly: o gerenciador de janelas Tile, a barra de status Strip, o bloqueador de tela Bolt, o shell interativo Bare e o emulador de terminal Glass. Esses componentes são substituídos por um pacote que inclui gdm, servidor X11, i3, conky, wezterm e zsh.
O desenvolvimento foi focado no consumo mínimo de energia quando usado em um laptop. Em modo ocioso, o gerenciador de janelas Tile e o terminal Glass não consomem nenhum recurso e são ativados apenas pela interação do usuário. O Frame, quando ocioso, utiliza quase três vezes menos recursos de CPU do que o X.Org Server.
O ambiente baseado em Frame e CHasm já é estável o suficiente para o autor do projeto usá-lo em seu trabalho diário. Quando surgem problemas ou algo está faltando, o autor usa o Claude conforme necessário para corrigir quaisquer problemas. Ele também está desenvolvendo um conjunto de utilitários de linha de comando, o fe2o3, escrito em Rust e que atende a todas as suas necessidades, exceto um navegador web. O fe2o3 inclui o gerenciador de arquivos de dois painéis Pointer, o interpretador de comandos rush, o editor de texto Scribe (similar ao Vim), o leitor de RSS Gazette, o cliente de e-mail e mensageiro Kastrup, o planejador de calendário Tock, a ferramenta de configuração Crush e o visualizador de documentos Viewer.


Fonte: opennet.ru
