O suporte a Rust para o núcleo do Linux enfrentou críticas de Torvalds

Linus Torvalds revisou os patches que implementam a capacidade de criar drivers na linguagem Rust para o núcleo do Linux e fez algumas críticas importantes.

As maiores objeções levantadas foram a potencial possibilidade de entrar em panic() em situações de erro, por exemplo, em casos de falta de memória, quando operações de alocação dinâmica de memória, inclusive dentro do núcleo, podem falhar. Torvalds afirmou que tal abordagem é fundamentalmente inaceitável no núcleo, e se isso não for entendido, ele pode totalmente rejeitar (totally NAKed) qualquer código que tente usar essa abordagem. Por outro lado, o desenvolvedor que trabalha nos patches concordou com esse problema e acredita que é solucionável.

Outra questão é a tentativa de usar cálculos com ponto flutuante ou tipos de 128 bits, o que não é permitido em ambientes como o núcleo Linux. Isso se mostrou um problema mais sério, já que atualmente a biblioteca básica (core) do Rust é indivisível e representa um grande blob — não há como solicitar apenas algumas das funcionalidades, evitando o uso de alguma funcionalidade problemática. A solução para o problema pode exigir modificações no compilador Rust e na biblioteca, e, no momento, a equipe ainda não tem uma estratégia sobre como implementar a modularidade das bibliotecas da linguagem.

Além disso, Torvalds observou que o exemplo de driver fornecido é inútil e sugeriu que um exemplo prático que resolva um dos problemas reais fosse incluído.

Adicionalmente: A empresa Google anunciou sua participação na iniciativa de promover o suporte ao Rust no núcleo do Linux e apresentou aspectos técnicos sobre a viabilidade da implementação do Rust para combater problemas decorrentes de erros relacionados à memória. A Google acredita que o Rust já está pronto para se juntar ao C como uma linguagem para o desenvolvimento de componentes do núcleo Linux. O artigo também fornece exemplos do uso da linguagem Rust para o desenvolvimento de drivers do núcleo, em conexão com seu uso na plataforma Android (Rust é reconhecido como uma linguagem oficialmente suportada para desenvolvimento no Android).

Observou-se que o Google desenvolveu um protótipo inicial de um driver escrito em Rust para o mecanismo de comunicação entre processos Binder, o que permitirá uma comparação detalhada de desempenho e segurança entre as implementações de Binder em C e Rust. No estado atual, o trabalho ainda não está concluído, mas quase todas as abstrações básicas de funcionalidade do núcleo, necessárias para o funcionamento do Binder, já têm camadas preparadas para usar essas abstrações no código em Rust.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster