Rust, algo com que os desenvolvedores Linux parecem concordar

A linguagem de programação Rust sempre teve como objetivo substituir C no desenvolvimento do kernel Linux E é que, conforme o Rust amadureceu, vários desenvolvedores expressaram um interesse crescente em seu uso no kernel Linux.

Na Conferência Virtual de Linux Plumbers 2020, o fluxo de microconferência por LLVM organizou uma sessão sobre questões abertas e barreiras para aceitação upstream do Rust no kernel Linux.

O interesse pelo tema é visível, visto que esta sessão foi a mais movimentada do evento de 2020.

Portanto, devemos agora reescrever todo o kernel do Linux com a linguagem Rust? Essa discussão não data de hoje e foi acentuada desde o aparecimento da primeira versão estável do Rust em 2015.

Tendo em vista as possibilidades que oferece Ferrugem, alguns sugerem fazê-lo. Este ano, na conferência Linux Plumbers em agosto, os palestrantes tiveram tempo novamente para discutir isso.

E o surpreendente é que eles parecem concordar unanimemente não não para reescrever o código existente no Rust, mas para o desenvolvimento do kernel continuar usando o Rust. Ou seja, eles imaginam um mundo no qual novos pedaços de código poderiam ser escritos em Rust.

Esta sessão se baseia no trabalho anterior de muitos desenvolvedores, incluindo uma palestra proferida no ano passado por Alex Gaynor e Geoffrey Thomas no Linux Security Summit.

Na conferência, eles apresentaram seu trabalho na criação de protótipos de módulos do kernel do Rust e defenderam a adoção do Rust no kernel.

Eles citaram um trabalho que mostra que cerca de dois terços das vulnerabilidades do kernel atribuídas ao CVE no Android e no Ubuntu estão relacionadas a problemas de segurança de memória.

Eles acabaram explicando que Rust pode evitar completamente este tipo de erro graças a APIs mais seguras habilitado por seu tipo de sistema e seu verificador de empréstimo.

Este estudo conseguiu convencer vários mantenedores já Linus Torvalds, que apoiou a introdução do Rust no kernel. Thomas e Gaynor, Josh Triplett, co-presidente da equipe de linguagem Rust e desenvolvedor de kernel Linux de longa data, bem como outros desenvolvedores interessados, participaram da discussão sobre o tópico.

Eles tocaram brevemente em seu trabalho até agora e em alguns de seus primeiros pensamentos e perguntas antes de abrir a maior parte do tempo para discussão.

Trata-se do uso de APIs existentes no kernel, suporte de arquitetura e uma pergunta sobre a compatibilidade ABI entre Rust e C.

Na verdade, eles inicialmente acreditam que introduzir Rust na estrutura da árvore deve respeitar as APIs C existentes. 

No entanto, todos sentem que o diabo está nos detalhes, e tanto o trabalho feito até agora quanto a conversa durante a sessão revelaram alguns desafios em aberto.

Por exemplo, o Linux faz uso intenso de macros de pré-processador e funções embutidas, que não são tão facilmente suportadas pela ferramenta bindgen e pela interface de funções externas do Rust.

Segundo eles, atualmente, a única implementação madura do Rust é o compilador rustc, que emite código por meio do LLVM.

O kernel do Linux suporta uma ampla variedade de arquiteturas, muitas das quais não têm um backend LLVM disponível.

De sua parte, Triplett sugeriu que adicionar Rust ao kernel ajudaria a aumentar o suporte arquitetônico para Rust, citando sua experiência com o projeto Debian. Ele mencionou que a introdução do software Rust no Debian ajudou a motivar entusiastas e usuários de arquiteturas de nicho para melhorar o suporte ao Rust, e ele espera adicionar suporte ao kernel para ter um efeito semelhante.

Em particular, ele estava convencido de que qualquer arquitetura com um back-end LLVM seria rapidamente compatível com o Rust. A discussão também se concentrou em implementações alternativas do Rust como um caminho para um suporte de arquitetura mais amplo.

A sessão terminou sem mais marcos específicos, mas parece haver um entusiasmo geral para apoiar Rust Mods e um acordo crescente sobre os requisitos gerais para este suporte.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Piloto automático dito

    Parece o início de uma nova era, surge o C imóvel.

    Olá Rust, Tchau Linus Torvalds!