Desenvolvedores do Linux divergem sobre troca da linguagem C pelo Rust

Rust é uma linguagem mais segura e moderna, mas nem todo mundo na comunidade Linux é a favor do seu uso no lugar da linguagem C. Desenvolvedores do Linux divergem sobre troca da linguagem C pelo Rust

Fev 5, 2025 - 18:48
 0
Desenvolvedores do Linux divergem sobre troca da linguagem C pelo Rust
Resumo
  • Hector Martin, conhecido por liderar o projeto Asahi Linux, acusa o desenvolvedor Christoph Hellwig de sabotar a adoção do Rust no kernel Linux.
  • Rust é uma linguagem de programação moderna e mais segura, proposta como alternativa à linguagem C, na qual o Linux é desenvolvido.
  • O suporte oficial ao Rust foi introduzido em 2021 por meio da iniciativa Rust for Linux (R4L).
  • Linus Torvalds, o “pai do Linux”, pode intervir na disputa, como já fez em outros conflitos dentro da comunidade.

O kernel Linux é desenvolvido em C, mas existe um esforço para substituir partes de seu código pelo Rust, linguagem de programação mais moderna e segura. Mas essa transição não tem sido fácil. Um desenvolvedor importante do Linux está sendo acusado por outro de sabotar a adoção do Rust.

Oficialmente, o Linux suporta Rust desde 2021. O uso da linguagem no kernel é promovido por meio de uma iniciativa chamada Rust for Linux (R4L). Só que não é todo mundo dentro da comunidade que é favorável a essa transição, mesmo ela sendo parcial (não envolvendo todo o kernel).

Desavenças já aconteceram antes. Há quem defenda o uso de Rust pelo fato de a linguagem ser bastante segura, principalmente no aspecto do gerenciamento de memória. Mas há também quem defenda a permanência da linguagem C por entender que a troca poderia prejudicar a estabilidade do projeto.

Porém, nenhuma desavença tinha chamado tanta atenção como a que ocorre agora. O desenvolvedor Hector Martin fez uma postagem pública acusando o desenvolvedor Christoph Hellwig de sabotar a iniciativa R4L, isto é, o uso de Rust no kernel:

Christoph é fundamentalmente contra os objetivos e o plano técnico por trás do R4L, e não oferece alternativas técnicas viáveis. Se suas demandas forem atendidas, o projeto R4L estará efetivamente morto, sem solução, e é isso o que ele quer. Esta é a definição de sabotagem no dicionário.

Hector Martin

Basicamente, Martin reclama que Hellwig tem dificultado a implementação de patchs em Rust no kernel, especialmente aqueles que envolvem abstrações de DMA (acesso direto à memória).

Esta é uma “briga de cachorro grande”. Hector Martin é um desenvolvedor que contribui regularmente para o kernel e é mais conhecido por liderar o projeto Asahi Linux, que leva o Linux para Macs equipados com chips Apple Silicon.

Já Christoph Hellwig é um dos principais desenvolvedores do kernel, tendo especial dedicação a tarefas de mapeamento de DMA. Ele já declarou se opor ao uso de Rust no Linux por entender que a sua implementação tornará o projeto mais complexo e que não está disposto a lidar com código escrito em várias linguagens.

Como fica o uso de Rust no Linux agora?

Há boas chances de que Linus Torvalds, o “pai do Linux”, tenha que intervir e tomar uma decisão que favoreça ou não a iniciativa Rust for Linux.

Intervenções de Torvalds não são inéditas. O desenvolvimento e a manutenção do Linux envolvem muitas pessoas, por isso, é natural que desentendimentos entre os desenvolvedores ocorram. Quando eles não entram em acordo, membros da comunidade com mais poder de decisão atuam para evitar que o projeto seja prejudicado.

É possível que não haja um acordo aqui. Hellwig parece estar irredutível quanto ao não uso de Rust no Linux, tanto que Martin até que defende que ele seja removido do projeto:

Pessoalmente, eu consideraria isso uma razão para a remoção de Christoph do projeto Linux por violação do Código de Conduta, mas, infelizmente, duvido que muita coisa aconteça além de drenar a energia e a vontade de muita gente de continuar o projeto até que Linus [Torvalds] diga “f*** you” ou algo assim.

Hector Martin

Com informações de Heise

Desenvolvedores do Linux divergem sobre troca da linguagem C pelo Rust