Carregando publicação…
Carregando publicação…
Escrito do zero sem código do Linux, o protótipo de 139 mil linhas usa domínios nativos de kernel, controlador em ring 3 e compatibilidade de ABI para subir o Rocky Linux 10.
Gregory M. Kurtzer — veterano da infraestrutura de código aberto responsável pela criação do CentOS, do Rocky Linux, do Singularity/Apptainer e atual CEO da CIQ — apresentou publicamente o Ginux, um protótipo experimental de kernel e sistema operacional para arquitetura x86-64 escrito prioritariamente em Rust.
Ao contrário de distribuições customizadas ou forks de árvore principal, o Ginux não compartilha código-fonte com o kernel Linux. Ele implementa do zero seu próprio gerenciador de memória, escalonador de processos (scheduler), sistema de arquivos virtual (VFS), pilha de rede, suporte a dispositivos virtio e controle de privilégios, expondo a ABI do Linux (Application Binary Interface) como uma camada de "personalidade" capaz de executar binários inalterados do Alpine Linux (musl/BusyBox) e inicializar o Rocky Linux 10 (glibc) com systemd até o estágio multi-user.target.
O projeto foi construído ao longo de 11 dias como um experimento formal de engenharia de sistemas assistida por agentes — batizado por Kurtzer de Human-Directed Agentic Engineering (HDAE) — resultando em aproximadamente 139.000 linhas retidas de código e testes automatizados sob licença Apache 2.0.
Na arquitetura clássica de contêineres em Linux, ferramentas como Docker, Podman ou containerd dependem de primitivas do próprio kernel hospedeiro (namespaces, cgroups e seccomp) para fatiar a visão de um único sistema operacional. O Ginux inverte essa premissa: não há uma distribuição hospedeira por baixo.
O sistema é compilado como uma única imagem unificada GINUX.EFI (build/esp/EFI/BOOT/BOOTX64.EFI), carregada diretamente pelo firmware UEFI em máquinas virtuais QEMU Q35/OVMF (com suporte a aceleração KVM em hosts Linux x86-64 e tradução dinâmica TCG em Macs com Apple Silicon).
Assim que as pequenas fronteiras em Assembly configuram as tabelas de páginas, interrupções, exceções e entradas de syscall, o kernel em Rust mapeia um controlador de administração estático diretamente no espaço de usuário (ring 3). Essa decisão arquitetural evita que o plano de controle rode com privilégios de ring 0:
SHA-256) e administra o ciclo de vida das cargas de trabalho;ioctl versionada e validada pelo kernel para operações administrativas, podendo delegar ou revogar permissões sem jamais fabricar nova autoridade de ring 0;alpine:latest ou rockylinux/rockylinux:10-ubi-init) são baixadas e montadas em sistemas de arquivos locais para cada domínio, mas o isolamento não usa runc nem namespaces do Linux.A unidade fundamental de isolamento no Ginux é o Domínio (domain), um objeto nativo de primeira classe dentro do kernel. Cada domínio é proprietário exclusivo de:
tmpfs, procfs e devfs);MSI-X.No prompt interativo ginux>, criar e subir uma instância completa do Rocky Linux 10 com systemd exige apenas três instruções:
domain new rocky
domain set rocky image=rockylinux/rockylinux:10-ubi-init init=/sbin/init memory-mib=2048
domain start rocky --attach
Para suportar esse ecossistema sem o kernel Linux, o Ginux mapeia explicitamente todas as 375 chamadas de sistema (syscalls) da tabela do Linux 6.12 x86-64: no estágio atual do projeto, 82 syscalls possuem implementação completa, 245 possuem implementação parcial focada nos fluxos reais de glibc/musl/systemd, e 48 são negadas por política de segurança (como chamadas que violariam o isolamento entre domínios).
Um dos aspectos mais reveladores da documentação técnica do Ginux (docs/PERFORMANCE.md) é a investigação das anomalias de desempenho encontradas ao colocar um userspace corporativo real (systemd + glibc) sobre um kernel recém-escrito.
Na primeira vez em que o Ginux conseguiu levar o Rocky Linux 10 até o console de login sob emulação QEMU TCG em Apple Silicon, o processo levou 15.344 ms. Ao instrumentar o kernel com um profiler próprio (make profile-rocky-systemd), foram identificados e corrigidos três gargalos clássicos de sistemas operacionais:
systemd, um processo filho ficava em busy-spin aguardando um socket Unix pertencente ao próprio processo pai suspenso, esgotando timeouts de 1 e 5 segundos. Fazer o escalonador ceder a CPU imediatamente quando o par bloqueado pertence ao processo pai eliminou cerca de 6 segundos do tempo de inicialização;fork()/execve() e realizava varreduras quadráticas de referências de frames, alocando cerca de 172.000 frames de arquivo durante o boot. Com a introdução de índices exatos e compartilhamento Copy-on-Write (CoW) para páginas imutáveis, o consumo caiu para 10.400 frames, reduzindo a mediana do boot para 4.082 ms (queda de 73,4%);vDSO e vvar compatíveis com Linux: No benchmark de memória de 1 KiB do sysbench, o Ginux atingia inicialmente modestos 48,39 MiB/s. Ao implementar uma página vDSO (virtual dynamic shared object) e uma página vvar somente-leitura com conversão TSC em ponto fixo sem divisão por leitura, a taxa saltou para 620,58 MiB/s (próxima aos 679,51 MiB/s do próprio Rocky Linux rodando sobre o kernel Linux no mesmo perfil).O código do Ginux foi produzido em uma tarefa persistente de 11 dias utilizando o agente OpenAI Codex equipado com o modelo GPT-5.6 Sol, sob direção arquitetural contínua de Gregory Kurtzer. O processo completo foi documentado no relatório técnico publicado no Zenodo (DOI: 10.5281/zenodo.23682548) e no registro de proveniência de decisões (STEERING-PROVENANCE.md).
Em vez de pedir genericamente para a IA "escrever um kernel", o método HDAE estruturou uma divisão rígida de responsabilidades:
GINUX.EFI, o isolamento do controlador em ring 3, os critérios de aceitação e a proibição de atalhos que mascarassem falhas reais;make test-linux-runtime, make test-alpine, make test-rocky-systemd), diagnosticou kernel panics e iterou sobre mais de mil commits;systemd ou o glibc travavam em casos de borda envolvendo sinais, futex, pseudo-terminais (pty) ou descritores no procfs, forçando revisões arquiteturais completas.Tanto no anúncio oficial quanto no artigo técnico, Kurtzer faz questão de enfatizar o que o Ginux não é: o projeto é um protótipo de pesquisa e não substitui o kernel Linux em produção.
Atualmente, o sistema opera em uma única vCPU virtualizada no perfil QEMU Q35 (sem suporte a multiprocessamento simétrico SMP multicore real), não possui suporte a placas de vídeo (GPU), discos NVMe físicos ou matriz ampla de hardware, e o próprio repositório mantém registrado de forma transparente que uma das sondas de ciclo de vida pós-execve() ainda falha na suíte agregada make test.
"A lição maior é que a IA já consegue gerar software de sistemas de altíssima complexidade, mas compatibilidade ampla, segurança auditada, habilitação de hardware físico, padrões, comunidade e manutenção de longo prazo continuam sendo o verdadeiro fosso competitivo." — Gregory M. Kurtzer, criador do CentOS, Rocky Linux e Ginux
O código-fonte completo, os scripts de compilação para QEMU e os logs brutos de benchmark podem ser inspecionados gratuitamente no GitHub: