10 pontos por xguru 2021-04-16 | 3 comentários | Compartilhar no WhatsApp
  • Organiza os motivos para usar Rust como a segunda linguagem do kernel

  • O objetivo não é reescrever o core ou os principais subsistemas do kernel, mas permitir que drivers e módulos "leaf" semelhantes sejam escritos em Rust

Ao usar Rust no kernel Linux:

  • por causa das propriedades da linguagem, reduz-se o risco de bugs de segurança de memória, condições de corrida de dados e bugs lógicos

  • mantenedores podem ter mais confiança para refatorar módulos e aplicar patches graças à segurança oferecida por Rust

  • fica mais fácil escrever novos drivers e módulos graças a recursos modernos da linguagem e documentação detalhada

  • mais pessoas podem participar do desenvolvimento do kernel em geral usando uma linguagem moderna

"Why Rust?"

  • no contexto do kernel Linux, oferece algumas vantagens importantes em relação a C

→ (vantagens da linguagem omitidas..)

"Why not?"

  • no contexto do kernel Linux, há estas desvantagens em relação a C

→ houve muito esforço investido em tooling baseado em C, incluindo plugins de compilador, Sanitizer etc. Isso deve melhorar com o aumento do uso de Rust ao longo do tempo

→ implementação única baseada em LLVM. Há esforços em andamento como o frontend para GCC, o backend 'ructc' baseado em Cranelift e o 'mrustc' para reduzir a cadeia de bootstrap

→ ainda não foi padronizada. Não está claro se a padronização ajudaria o kernel, mas...

→ no momento, a velocidade de compilação é lenta devido a recursos e limitações complexos do compilador atual

→ por enquanto, são necessários recursos presentes em builds Nightly. Não é possível usar a versão estável. A meta é remover essa limitação dentro de 1 ano

→ nem todos os recursos das bibliotecas padrão Rust core e alloc são usados, então elas são maiores do que o necessário no momento

  • a maioria dessas desvantagens vem do fato de Rust ainda ser uma linguagem jovem e menos utilizada

  • acredita-se que Rust se tornará uma parte importante da programação de sistemas, assim como C foi nas últimas décadas

3 comentários

 
octopuset 2021-04-17

https://lkml.org/lkml/2021/4/14/1099

"Então respondi com minhas reações a alguns dos patches individuais, mas no geral não odiei."

e, vendo o texto que vem depois de HOWEVER,

parece que talvez ainda leve bastante tempo para isso ser adicionado de fato.

 
xguru 2021-04-16

Linus Torvalds respondeu a este RFC: https://lkml.org/lkml/2021/4/14/1099

"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."

Como ele disse que, no geral, não desgosta da ideia, espero que isso avance bem.

Pesquisando, vi que realmente já saíram muitas notícias relacionadas a Rust no GeekNews. Agora acho que dá para dizer que é mesmo a grande tendência da era atual.

 
ffdd270 2021-04-18

Fico pensando se, aos poucos, ele não vai coexistindo com C e, em algum momento, acabar substituindo-o... Talvez até tenha sido uma escolha melhor ter se tornado independente da Mozilla.