Auke Kok passou oito anos trabalhando no Clear Linux OS, uma distribuição criada pela Intel com foco em desempenho, otimizações para hardware moderno e uma infraestrutura bastante diferente da encontrada em projetos tradicionais. Agora, depois de a Intel encerrar o desenvolvimento do sistema, o desenvolvedor decidiu transformar parte do que aprendeu nesse período em um novo projeto independente.
Batizado de The Ur Project, o projeto começou como um experimento pessoal e não possui apoio corporativo. A ideia, porém, é bastante ambiciosa: criar uma infraestrutura capaz de permitir que pessoas, empresas e organizações construam suas próprias distribuições Linux, compartilhem componentes e até mantenham repositórios próprios.
Para Kok, um dos principais problemas do Clear Linux não estava necessariamente na tecnologia, mas na dificuldade de participação. Segundo ele, o projeto tornou-se complicado demais para pessoas de fora da Intel contribuírem com código e pacotes.
O problema que o Ur Project quer resolver
A experiência acumulada durante os anos no Clear Linux levou Kok a uma conclusão: uma distribuição Linux precisa facilitar a participação da comunidade desde a própria infraestrutura de desenvolvimento.
No Clear Linux, tarefas que deveriam ser relativamente simples, como testar alterações em pacotes ou fazer pequenas contribuições incrementais, acabavam encontrando barreiras. O resultado foi uma quantidade muito pequena de contribuições externas para o conteúdo dos pacotes.
O Ur Project nasce justamente com a proposta oposta. A intenção é tornar simples criar um pacote, publicar um repositório e aproveitar o trabalho desenvolvido por outras pessoas, sem abrir mão de mecanismos de segurança e rastreabilidade.
Isso significa que o projeto não pretende necessariamente criar mais uma distribuição para disputar espaço com Fedora, Ubuntu ou Arch Linux. A própria distribuição criada por Kok servirá inicialmente como uma espécie de demonstração da infraestrutura.
Um sistema de construção escrito em Rust
Grande parte da proposta está no sistema de construção. O Ur Project é desenvolvido em Rust, tanto no lado responsável pela produção dos pacotes quanto nas ferramentas utilizadas para consumi-los. Um dos conceitos centrais são as chamadas recipes, arquivos declarativos escritos em TOML que descrevem um pacote, suas fontes, dependências e algumas exceções necessárias para a compilação.
A diferença está no que não aparece nesses arquivos. Em vez de reproduzir longos scripts explicando passo a passo como compilar cada software, o sistema utiliza probes para identificar automaticamente como determinado projeto deve ser construído.
Uma receita pode informar que determinado pacote vem de uma URL, apresentar seu checksum e indicar algumas particularidades. O restante fica a cargo do sistema de construção.
Kok compara a abordagem a uma receita de cozinha: ela lista os ingredientes e algumas informações importantes, mas não precisa explicar cada movimento necessário para preparar o prato.
Repositórios, segurança e reprodutibilidade
Outra parte importante da arquitetura é a separação entre recipes, pacotes e repositórios. As receitas ficam em árvores Git e podem ser compartilhadas. O sistema de construção monitora esse conteúdo e cria os pacotes necessários automaticamente. Depois, os resultados são publicados em repositórios que armazenam tanto os arquivos quanto seus metadados.
O projeto também utiliza armazenamento endereçado por conteúdo, baseado em hashes SHA-256. Isso permite deduplicar arquivos e evitar que diferentes pacotes armazenem múltiplas cópias idênticas do mesmo conteúdo.
Há ainda espaço para informações de proveniência, licenciamento e reprodução das compilações. A intenção é que seja possível descobrir de onde um pacote veio, como ele foi construído e reproduzir o processo posteriormente.
Essa preocupação também se estende à segurança. O objetivo declarado do projeto inclui registros de origem, verificação de licenças, análise de vulnerabilidades e outras ferramentas capazes de oferecer uma visão mais completa sobre aquilo que entra em uma distribuição.
Uma infraestrutura para diferentes tipos de sistemas
Talvez uma das características mais interessantes seja o fato de o Ur Project não estar preso a um único modelo de distribuição.
A mesma infraestrutura deve ser capaz de produzir containers OCI, imagens para a nuvem, sistemas Live USB e instalações tradicionais. Também não existe uma obrigação de adotar um modelo imutável ou atualizações atômicas.
Essa separação entre conteúdo e composição permite que diferentes usuários utilizem a mesma base para objetivos completamente distintos. Uma empresa poderia montar seu próprio sistema, enquanto um desenvolvedor poderia criar uma distribuição desktop ou uma imagem especializada para dispositivos embarcados.
A arquitetura também prevê cenários sem conexão com a internet. Sistemas isolados podem gerar um manifesto de seu estado, que posteriormente é levado para uma máquina conectada. A ferramenta pode então preparar um pacote de atualização específico para retornar ao ambiente offline.
E a inteligência artificial?
Kok também admite que há IA envolvida no desenvolvimento, mas de maneira bastante delimitada.
Modelos de linguagem podem ajudar na criação de testes e definições de build para determinados tipos de pacotes. O sistema de construção, entretanto, não depende de um agente de IA para funcionar.
Essa distinção é importante porque a proposta do Ur Project depende justamente de previsibilidade e reprodutibilidade. A compilação precisa produzir resultados verificáveis, independentemente de haver ou não uma IA participando da criação inicial de uma receita.
Ainda é cedo para dizer até onde ele vai
O Ur Project ainda está em uma fase inicial. Por enquanto, o projeto conta principalmente com seu site, documentação e código em desenvolvimento. Kok trabalha na infraestrutura necessária para disponibilizar publicamente imagens e repositórios, além de finalizar os testes de usabilidade.
A promessa é que imagens inicializáveis para nuvem e Live USB sejam disponibilizadas em breve.
O Ur Project representa uma tentativa de repensar como distribuições são construídas e compartilhadas. Depois de oito anos trabalhando no Clear Linux, Auke Kok parece estar tentando resolver justamente aquilo que considera uma das maiores falhas daquela experiência: criar uma infraestrutura em que participar do projeto seja tão importante quanto a tecnologia usada para construí-lo.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter semanal!