O projeto responsável pelo sistema de inicialização e gerenciamento de serviços padrão da maioria das distribuições Linux acaba de cruzar um marco em sua engenharia: o suporte à linguagem Rust foi oficialmente aceito e integrado ao repositório upstream.
A mudança de diretriz foi documentada e revisada no Pull Request #44324 do systemd no GitHub, liderada pelo desenvolvedor do kernel Christian Brauner e acolhida pelos mantenedores do projeto. O objetivo é permitir que novas ferramentas auxiliares usufruam das garantias de segurança de memória e concorrência nativas do Rust sem colocar em risco a base já consagrada da plataforma.
Sem reescrita geral: apenas “programas folha”
Ao contrário do que os entusiastas mais afoitos poderiam imaginar, o systemd não passará por uma reescrita massiva de sua base em C. A política definida pelos mantenedores é conservadora e pragmática:
- Núcleo em C permanece intocado: O gerenciador de processos PID 1, bibliotecas fundamentais como a libsystemd, módulos de autenticação PAM e provedores NSS continuam desenvolvidos integralmente em C;
- Exclusivo para componentes periféricos: O Rust só poderá ser adotado em novos executáveis isolados (chamados de “programas folha”), que atuam nas bordas do sistema e não possuem dependências internas vinculadas a outras partes vitais do projeto;
- O pioneiro systemd-keyring-setup: O primeiro utilitário arquitetado dentro desse novo modelo é o responsável pelo provisionamento de anéis de chaves de criptografia e inscrição de certificados X.509 durante o boot.
Integração via Meson sem dependência do Cargo
Outro detalhe arquitetural relevante é a postura do projeto em relação à cadeia de suprimentos (supply chain). Para preservar o controle rigoroso sobre os artefatos de compilação exigido por mantenedores de distribuições como Debian, Fedora e Arch Linux, o systemd não utiliza o gerenciador Cargo nem baixa dependências externas de crates.io.
Toda a compilação é orquestrada diretamente pelas regras nativas de Rust do Meson (meson.build), operando em modo no_std (sem depender da biblioteca padrão pesada do Rust) e gerando amarrações seguras via bindgen para chamar funções das bibliotecas em C existentes.
A estratégia segue uma tendência da indústria de sistemas operacionais abertos, como já vimos com o suporte a Rust no kernel Linux e o Ubuntu 25.10. O suporte ao Rust no systemd é opcional por meio da flag de compilação -Drust=auto e fará sua estreia formal com o lançamento do systemd 263.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!