- Freio na hype: Enquanto FreeBSD e Linux caminham para integrar Rust, o NetBSD explicou por que isso é tecnicamente inviável (hoje) para eles.
- O muro do legado: O Rust simplesmente não existe para arquiteturas antigas (como VAX, Alpha e Amiga) que o NetBSD faz questão de suportar.
- O pesadelo do bootstrap: Compilar Rust exige binários prévios, o que viola a regra de ouro de "compilação pura via código-fonte" do NetBSD.
- Lua > Rust? Ironicamente, o NetBSD já aceita scripts no kernel, mas usa Lua pela leveza e facilidade de integração em qualquer hardware.
- Ritmo incompatível: Com updates a cada 6 semanas, uma versão do Rust integrada ao sistema ficaria obsoleta muito antes do fim da vida útil de uma versão do NetBSD.
O NetBSD é um sistema operacional Unix-like conhecido por uma característica definidora: portabilidade extrema. Seu lema “Of course it runs NetBSD” não é exagero; ele roda em desde servidores modernos até torradeiras inteligentes e computadores dos anos 80 (como VAX e Amiga). Enquanto o mundo Linux e, mais recentemente, o FreeBSD começam a adotar a linguagem Rust no núcleo (kernel) para garantir segurança de memória e reduzir bugs, o NetBSD reafirmou sua postura conservadora — mas por motivos puramente técnicos e logísticos, não por teimosia.
Principais novidades (O ponto central)
A discussão surgiu após um desenvolvedor questionar se o NetBSD seguiria os passos do FreeBSD, que está considerando aceitar código Rust no kernel para “atrair desenvolvedores mais jovens”. A resposta oficial da equipe do NetBSD esclarece a situação:
- O mito da “atração de jovens”: A equipe refuta a ideia de que Rust serve apenas para marketing. A adoção seria por mérito técnico (segurança de memória), mas os custos atuais superam os benefícios para o projeto.
- A decisão “estranha” que já existe: Ironicamente, o NetBSD já possui uma linguagem de alto nível no kernel: Lua. Diferente do Rust, o Lua é utilizado hoje para prototipagem rápida de drivers e filtragem de pacotes, permitindo scriptar o kernel sem recompilá-lo.
- O bloqueio da arquitetura: O NetBSD suporta arquiteturas de hardware antigas ou obscuras onde o compilador de Rust (que depende do LLVM) sequer existe. Adotar Rust quebraria a promessa de portabilidade universal do sistema.
Impacto e repercussão (O que descobrimos)
Analisando o cenário além do anúncio, identificamos dois gargalos críticos que tornam o Rust incompatível com a filosofia “tradição e estabilidade” do BSD:
- O Pesadelo do Bootstrap: O NetBSD se orgulha de ser “autocontido” — você pode compilar o sistema inteiro apenas com o código-fonte. O Rust, porém, exige uma versão binária anterior dele mesmo para ser compilado (bootstrapping). Isso introduz uma dependência de binários externos (“blobs”) que a comunidade BSD historicamente rejeita por questões de auditabilidade e pureza.
- Conflito de Ciclos de Vida: O NetBSD mantém suporte a versões por anos (ex: NetBSD 9 saiu em 2020). O Rust lança versões a cada 6 semanas. Se o NetBSD incluísse o Rust 1.41 (vigente em 2020) no sistema base, hoje esse compilador seria inútil para qualquer software moderno, criando um “lixo digital” dentro do sistema operacional.
Enquanto o Linux aceita descartar suporte a hardware antigo (como processadores i486) para avançar, o NetBSD prioriza manter o hardware legado vivo, o que torna o Rust inviável no core do sistema atualmente.
Resumo técnico (Por que não Rust?)
Aqui estão os impedimentos técnicos listados pelos mantenedores:
- Suporte a Arquiteturas: O compilador Rust (rustc) não suporta targets Tier-2/Tier-3 cruciais para o NetBSD (ex: m68k, VAX, Alpha).
- Dependência Cíclica: O processo de build do Rust exige binários pré-compilados, violando a política de source-only build do NetBSD.
- Custo de Manutenção: Manter o Rust atualizado no
pkgsrc(gerenciador de pacotes) já consome recursos escassos da equipe; integrá-lo ao sistema base multiplicaria esse esforço. - Bloatware: Trazer o toolchain do Rust para o sistema base aumentaria drasticamente o tamanho do código-fonte e da instalação padrão.
Disponibilidade
Embora não esteja no kernel, o Rust é totalmente suportado no espaço de usuário (userland) do NetBSD. Desenvolvedores podem instalar versões modernas do Rust via pkgsrc para criar aplicações.
- Para instalar Rust no NetBSD:
pkgin install rust - Para experimentar Lua no Kernel (já disponível):Consulte as man pages
man 4 luaeman 9 luano seu sistema NetBSD atual.
