Linux adota Rust para o kernel, e especialistas afirmam que sua ascensão é inevitável
- Cyber Security Brazil
- 23 de fev.
- 3 min de leitura

Ninguém quer vulnerabilidades de memória. Desenvolvedores do Linux debatem como eliminá-las.
Alguns mantenedores do kernel Linux ainda não estão convencidos de que adicionar Rust ao projeto de código aberto seja uma boa ideia, mas grandes nomes da comunidade estão apoiando a integração da linguagem.
Em uma discussão na lista de e-mails do kernel Linux, Greg Kroah-Hartman, um dos principais desenvolvedores do projeto, incentivou seus colegas a aceitarem a contribuição de código em Rust para melhorar o kernel.
"Adicionar outra linguagem não deveria ser um problema, já lidamos com coisas muito piores no passado."
"Sim, bases de código mistas são difíceis de manter, mas somos desenvolvedores de kernel, caramba! Mantemos e fortalecemos o Linux há mais tempo do que qualquer um imaginava ser possível."
"Transformamos nosso modelo de desenvolvimento em uma maravilha da engenharia, criando algo que ninguém mais conseguiu. Precisamos continuar avançando e aceitar boas ideias que nos ajudem a garantir o sucesso do projeto nos próximos 20 anos."
A discussão teve início no mês passado, quando um patch foi proposto para permitir que drivers escritos em Rust chamassem a API DMA do kernel, baseada principalmente em C.
O mantenedor Christoph Hellwig se opôs fortemente à ideia, comparando a manutenção de um código-base multilíngue a um "câncer" e afirmando que não queria assumir a responsabilidade de manter drivers escritos em Rust.
O debate escalou quando Hector Martin, então líder do projeto Asahi Linux, pressionou Linus Torvalds para decidir se o patch seria aceito. Torvalds respondeu defendendo o processo de desenvolvimento do kernel Linux e repreendeu Martin por suas declarações nas redes sociais. Como resultado, Martin renunciou ao cargo de mantenedor do Linux e saiu do projeto Asahi Linux.
Diretrizes e desafios da adoção do Rust no kernel
Miguel Ojeda, líder do projeto Rust for Linux, publicou uma diretriz chamada Rust Kernel Policy para esclarecer a comunidade sobre como a linguagem será utilizada no kernel.
No entanto, Hellwig criticou a decisão de publicar a diretriz na web em vez de incluí-la no código-fonte do kernel, além de questionar a real finalidade do uso de Rust no projeto.
"Se queremos corrigir problemas de segurança de memória, precisamos encontrar maneiras de adaptar o código existente. Um grande esforço já foi feito nesse sentido, e precisamos ir além." — declarou Hellwig.
Rust foi adicionado ao kernel Linux em 2022 devido à sua segurança aprimorada contra falhas de memória em comparação com C. Especialistas apontam que a maioria das falhas críticas e vulnerabilidades em grandes bases de código decorrem de erros de segurança de memória, que podem ser evitados com linguagens mais seguras, como Rust, Go, C#, Java, Swift e Python.
Greg Kroah-Hartman reforçou a necessidade do Rust ao responder a Boqun Feng, engenheiro de kernel na Microsoft:
"A maioria dos bugs no kernel ocorre devido a pequenas falhas na sintaxe do C que simplesmente não existem em Rust."
"Coisas como sobrescritas de memória, erros na limpeza de caminhos de erro e falhas do tipo use-after-free desaparecem no Rust, permitindo que desenvolvedores foquem nos problemas reais, como falhas de lógica e condições de corrida."
No entanto, ele ressaltou que a robustez do código C continuará sendo trabalhada.
"Para novos drivers e código, escrever em Rust é um ganho para todos. Por que não adotar essa abordagem?"
Kees Cook, engenheiro de segurança do kernel no Google, também apoia a decisão: "Não vejo razão para substituir código existente, pois isso traria riscos. Mas escrever novos módulos em Rust é muito eficaz."
Apesar da resistência de Hellwig, Torvalds deixou claro que pretende integrar Rust ao kernel, independentemente da oposição de alguns mantenedores. Ele respondeu diretamente às objeções de Hellwig, enfatizando que o código em Rust não altera diretamente o núcleo do kernel em C, mas funciona como uma camada de interface separada.
"Se você, como mantenedor, acha que pode decidir quem ou o que pode usar seu código, você está errado."
Torvalds finalizou afirmando que os mantenedores que não quiserem lidar com Rust simplesmente podem ignorá-lo, mas sem interferir no seu uso dentro do projeto.
Via - TR
Comments