Quarta versão dos patches de suporte ao driver Rust no Linux lançada

Miguel Ojeda, autor do projeto Rust-for-Linux, lançou a quarta versão dos patches de suporte ao driver Rust no Linux.

O suporte a Rust é considerado experimental, mas já foi acordado para ser incluído na ramificação linux-next e está maduro o suficiente para começar a trabalhar em camadas de abstração em cima de subsistemas do kernel, bem como escrever drivers e módulos.

O desenvolvimento é financiado pelo Google e pelo ISRG (Internet Security Research Group), que é o fundador do projeto Let’s Encrypt e promove o HTTPS e o desenvolvimento de tecnologias para aumentar a segurança da Internet.

Agora, Miguel Ojeda, autor do projeto Rust-for-Linux, lançou recentemente a quarta proposta de componentes de driver de dispositivo Rust para os desenvolvedores do kernel Linux considerarem.

Publicada a quarta versão dos patches de suporte ao driver Rust no Linux

Quarta versão dos patches de suporte ao driver Rust no Linux lançada
Quarta versão dos patches de suporte ao driver Rust no Linux lançada

Para quem ainda desconhece as mudanças propostas, saiba que elas possibilitam o uso do Rust como segunda linguagem para desenvolver drivers e módulos do kernel.

O suporte a Rust é apresentado como uma opção que não está habilitada por padrão e não resulta na inclusão de Rust entre as dependências de compilação necessárias para o kernel.

Usar Rust para desenvolver drivers permitirá que você crie drivers melhores e mais seguros com o mínimo de esforço, sem problemas como acessar uma área de memória após liberá-la, desreferenciar ponteiros nulos e estouros de buffer.

A segurança da memória é fornecida no Rust em tempo de compilação, verificando referências, rastreando a propriedade do objeto e o tempo de vida do objeto (escopo), bem como avaliando a correção do acesso à memória durante a execução do código.

Rust também fornece proteção contra estouro de inteiros, requer que as variáveis ​​sejam inicializadas antes do uso, trata melhor os erros na biblioteca padrão, reforça o conceito de variáveis ​​e referências imutáveis ​​por padrão e oferece forte tipagem estática para minimizar erros lógicos.

Quais são as mudanças na quarta versão?

Nesta nova versão dos patches que são apresentados, menciona-se que os comentários feitos durante a discussão da primeira, segunda e terceira edição dos patches continuaram sendo eliminados.

Continuaremos atualizando até não dependermos de nenhum recurso instável;
nesse ponto podemos querer começar a declarar uma versão mínima do Rust
é suportado, como é feito, por exemplo, para GCC e Clang.

Da mesma forma, também migramos para a edição 2021 da linguagem Rust.

Quanto às outras alterações que foram feitas nesta nova versão, o anúncio menciona o seguinte:

  • Transição para usar Rust 1.58.0 estável como o compilador de referência.
  • As alterações necessárias para o projeto, ainda não incluídas no kit de ferramentas principal do Rust, incluem o sinalizador “-Zsymbol-mangling-version=v0” (esperado no Rust 1.59.0) e o modo “maybe_uninit_extra” (esperado no Rust 1.60.0) .
  • Verificações automáticas para a disponibilidade de ferramentas Rust e sua adequação foram adicionadas, e a capacidade de testar o suporte Rust no sistema também foi expandida.
  • Novas abstrações são propostas para poder acessar as tabelas de identificadores de dispositivos (“IdArray” e “IdTable”) a partir do código Rust.
  • Camadas adicionadas para chamar funções relacionadas ao timer (frame do relógio).
  • Os controladores de plataforma agora são definidos por meio de implementações de características.
  • Uma nova macro foi adicionada para simplificar o registro do driver da plataforma e um novo modelo de driver genérico foi proposto.
  • Adicionadas novas macros para estruturas “dev_*”.
  • Adicionados novos métodos “{read,write}*_relaxed” para o tipo IoMem.
  • Removida a propriedade FileOpener para simplificar as operações de arquivo.
  • Adicionado o parâmetro “ThisModule” ao número de argumentos passados ​​durante o registro do controlador.
  • Um modelo típico para a criação de módulos do kernel na linguagem Rust é proposto.

Por fim, se você estiver interessado em saber mais sobre esta nova versão, pode consultar os detalhes no seguinte endereço.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.