Resumo
  • O desenvolvedor Christoph Hellwig afirmou que Linus Torvalds aceitará código em Rust no kernel Linux, mesmo com as atuais objeções de mantenedores.
  • Hellwig se opõe ao uso de Rust, especialmente em componentes de DMA, por temer uma maior complexidade na manutenção.
  • O uso de Rust no Linux foi aprovado em 2021, mas apenas para componentes específicos, sem substituir o código em C.

Há desenvolvedores defendendo o uso da linguagem de programação Rust no Linux, do mesmo modo que há aqueles que preferem que a linguagem C seja mantida. No meio dessa disputa, todo mundo olha para o “pai do Linux”. Ele já sinalizou: Linus Torvalds não vai se opor ao uso de código em Rust no kernel.

É o que relata Christoph Hellwig, um dos principais desenvolvedores do kernel. Ele se dedica principalmente a tarefas que envolvem abstrações de DMA (acesso direto à memória), um assunto bastante complexo.

Entenda o vaivém dessa história

Recentemente, Hellwig foi acusado de sabotar o projeto Rust for Linux (R4L), que incentiva o uso dessa linguagem de programação.

Mas o seu acusador, Hector Martin, que é mais conhecido por liderar o projeto Asahi Linux, acabou deixando de trabalhar diretamente com o kernel após ser duramente criticado por Torvalds por reclamar publicamente de Hellwig.

De fato, Christoph Hellwig se opõe ao uso de Rust no Linux, pelo menos com relação a componentes de DMA. Basicamente, ele teme que a troca de linguagem torne o desenvolvimento do kernel mais complexo, prejudicando a sua manutenção no longo prazo.

Mas o próprio Hellwig relata que, em uma conversa privada, Linus Torvalds declarou a ele que definitivamente aceitará código Rust no Linux, mesmo se houver objeções dos mantenedores do kernel.

Mas, veja, Torvalds ainda não fez nenhum pronunciamento sobre isso na lista de discussão oficial do Linux. Provavelmente, só confirmaremos a postura de Linus nos próximos meses, caso ele aprove a implementação de elementos em Rust no kernel.

Apesar de Linus Torvalds supostamente sinalizar para a aceitação da linguagem Rust, Christoph Hellwig ainda se mostra resistente à ideia. Em um extenso e-mail recente sobre o assunto, ele comentou:

“Isso [o uso de Rust] transforma o Linux em um projeto escrito em várias linguagens sem que haja diretrizes claras sobre qual linguagem deve ser usada e para qual motivo.

(…) Gostaria de entender qual é o objetivo deste “experimento” com Rust: se quisermos corrigir problemas existentes com a segurança da memória, precisamos fazer isso para o código já existente e descobrir modos de adaptá-lo. Muito trabalho foi feito nisso recentemente e precisamos de muito mais.”

– Christoph Hellwig, desenvolvedor do kernel Linux

Por que há quem defenda Rust no Linux?

Porque a linguagem Rust é considerada mais moderna e segura do que a linguagem C, a base do Linux. O Rust permite que desenvolvedores escrevam códigos que lidam com componentes críticos com menor risco de haver problemas com gerenciamento de memória.

Outras vantagens incluem confiabilidade, integração relativamente fácil com outras linguagens (a exemplo do próprio C), depuração (debugging) rápida, reutilização de código facilitada, ampla documentação e comunidade engajada.

Não por acaso, Linus Torvalds aprovou o uso da linguagem Rust no Linux no final de 2021. Isso não quer dizer que o Rust vai substituir todo código em C no kernel: a linguagem Rust seria usada apenas em componentes específicos, pelo menos na fase inicial.

O Linux chegou ao estado de confiabilidade atual por ter passado por numerosas etapas de aprimoramento e incorporação de recursos no decorrer de mais de 30 anos. Todo esse trabalho foi feito em C, logo, trocar tudo por Rust não só exigiria um trabalho monumental como poderia afetar aspectos como desempenho do sistema e eficiência de manutenção.

Por outro lado, há quem entenda que o uso de múltiplas linguagens em um projeto complexo como o Linux possa ter efeitos negativos no longo prazo. É o caso de Christoph Hellwig, como já sabemos. Contudo, há desenvolvedores que acreditam que as objeções ao Rust são sinais de resistência ao novo.

Pelo jeito, esse é um assunto que ainda vai render muitas discussões.

Com informações de Phoronix

Linus Torvalds deve aceitar linguagem Rust no Linux, mesmo que haja resistência