Ao longo dos últimos meses um debate se intensificou que pareciam ter-se limitado a simples desentendimentos, e agora está aumentando para níveis críticos dentro da comunidade de desenvolvedores Linux. O que começou como uma discussão Sobre a introdução do Rust no kernel gerou profundas tensões e divisões entre aqueles que veem essa linguagem como uma solução inovadora e aqueles que, por outro lado, temem que sua adoção complique e fragmente uma base de código tradicionalmente homogênea.
Quando foi proposta pela primeira vez a integração Ferrugem no Linux, Muitos desenvolvedores ficaram animados. Após extensas revisões e aceitação da mudança por Linus Torvalds, a linguagem foi incorporada à versão 6.1 do Kernel. No entanto, houve comentários iniciais que foram descartados como “simples opiniões” na época, mas que agora são vistos como sinais de alerta.
Esses comentários que mencionei Eles se referiam a certos “costumes” por assim dizer, e basicamente Eles mencionaram que haveria a possibilidade de alguma resistência pelos desenvolvedores com a introdução de uma nova linguagem e isso pode criar uma "divisão" entre o grupo de desenvolvimento Linux. Para minha surpresa, parece que isso está se tornando realidade.
Nos dias anteriores Compartilhamos aqui no blog sobre as discussões e problemas que surgiram no grupo de desenvolvimento do Linux, incluindo a renúncia silenciosa de Cristoph Hellwig que expressou sua recusa em oferecer suporte a patches que facilitam o desenvolvimento de drivers em Rust.
Pouco depois disso, falou novamente e agora ele compartilhou seus pensamentos Sobre a incorporação de wrappers Rust no subsistema DMA do kernel Linux. Hellwig critica as regras propostas pelo projeto Rust para Linux, argumentando que eles são inúteis até que sejam adotados e formalizados na documentação oficial do kernel por consenso da comunidade.
Hellwig salienta que essas regras erradamente ppermitir que os mantenedores decidam unilateralmente sobre a incorporação de código Rust em seus subsistemas, quando, em uma conversa privada, Linus Torvalds deixou claro seu compromisso em aceitar o código Rust no núcleo, independentemente de quaisquer objeções levantadas.
Hellwig usa uma analogia marcante, comparando os wrappers Rust a um “tumor cancerígeno” que se espalhará para todos os subsistemas, causando fragmentação descontrolada. Para ele, o kernel está evoluindo de uma entidade monolítica para um projeto escrito em vários idiomas, sem uma diretriz clara qual usar e quando, o que gera uma necessidade constante de reescrever código de uma linguagem para outra. Esse cenário, segundo Hellwig, complica muito a manutenção e a coerência do sistema.
Também, Hellwig questiona o propósito de introduzir Rust no kernel. Se a intenção é resolver problemas de segurança relacionados ao gerenciamento de memória de baixo nível, o primeiro passo deve ser modernizar o código existente. Já que os mantenedores relutam até mesmo em implementar verificações básicas, como verificar estouros de números inteiros.
Parece irrealista pensar que a lacuna entre um kernel que ignora regras simples de segurança e um que segue regras rígidas possa ser preenchida.
Por outro lado, se o objetivo é simplificar o desenvolvimento de drivers, a introdução de uma nova linguagem só aumentará a carga de trabalho daqueles que já estão sobrecarregados com a manutenção da infraestrutura do kernel.
Por outro lado, os defensores da adoção do Rust no kernel apontam para as vantagens potenciais já conhecidas de escrever novo código em Rust: redução significativa do risco de erros de memória, condições de corrida e certos bugs de lógica.
Argumenta-se também que as garantias da linguagem permitiria aos mantenedores revisar e refatorar módulos de forma mais eficiente, aproveitando abstrações avançadas que facilitariam a criação de novos controladores e módulos. Além disso, o uso de uma linguagem moderna poderia atrair novos desenvolvedores para o projeto, e as ferramentas do Rust, como requisitos de documentação obrigatória para APIs públicas, poderiam ajudar a elevar os padrões de qualidade e segurança do código.
Em definitivo, o debate sobre a inclusão do Rust no kernel Linux reflete uma profunda tensão entre a necessidade de modernizar e proteger o sistema e o risco de complicar e fragmentar uma base de código. Enquanto alguns veem o Rust como uma solução para problemas de segurança e manutenção de longa data, outros, como Hellwig, alertam que, sem um consenso claro, a mistura de várias linguagens pode levar a um caos incontrolável em um projeto tão crítico quanto o kernel.
fonte: https://lore.kernel.org