A quarta versão dos patches para suporte ao driver Rust no Linux foi publicada

Miguel Ojeda, autor do projeto Rust-for-Linux, Teme revelou recentemente a quarta proposta de componentes do driver do dispositivo Rust para desenvolvedores de kernel Linux a considerar.

O suporte de ferrugem é 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 dos 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.

Para quem ainda desconhece as mudanças propostas, saiba que elas possibilitam o uso de Rust como segunda linguagem para desenvolver controladores e módulos do núcleo. 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.

Usando 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, lida melhor com erros na biblioteca padrão, reforça o conceito de variáveis ​​e referências imutáveis ​​por padrão e oferece tipagem estática forte para minimizar erros lógicos.

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

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ê tiver interesse em saber mais sobre esta nova versão, pode consultar os detalhes no link a seguir.


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: AB Internet Networks 2008 SL
  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.