A possibilidade de integrar o suporte Rust no kernel Linux 5.20 não está descartada

Na conferência Open-Source Summit 2022 em andamento nos dias de hoje, na seção FAQ, Linus Torvalds mencionou a possibilidade de integração precoce no kernel do Linux de componentes para desenvolver Drivers de dispositivo em Rust.

Por isso, foi mencionado que os patches habilitados para Rust podem ser aceitos no próximo changelog que compõe a composição do kernel 5.20, agendado para o final de setembro.

Recorde-se que desde o ano passado o Rust se tornou um dos preferidos para ser incluído em vários projetos importantes e que durante o tempo que passou já foram feitos trabalhos relacionados com a implementação do suporte Rust.

Dentro dos renomados projetos que se interessaram pela ferrugem desde o ano passado, podemos destacar, por exemplo, o Android, já que se interessou por Ferrugem porque permite alcançar desempenho próximo às linguagens C e C++, permitindo que seja usado para desenvolver partes de baixo nível da plataforma e componentes para fazer interface com o hardware.

Para garantir a segurança do código C e C ++, o Android usa isolamento sandbox, análise estática e testes de difusão. Os recursos de isolamento de sandbox são limitados e atingiram o limite de seus recursos (uma fragmentação adicional nos processos não é prática do ponto de vista do consumo de recursos).

Entre as limitações do uso do sandbox, eles citam a alta sobrecarga e o maior consumo de memória causados ​​pela necessidade de geração de novos processos, bem como a latência adicional associada ao uso do IPC.

Ferrugem-Android
Artigo relacionado:
Rust já é um favorito para desenvolvimento Android

Por outro lado, não podemos esquecer que Linus Torvalds também deu sua opinião sobre Rust e em que gasto revisando a implementação patch de possibilidades para definir drivers de linguagem Rust no kernel Linux e expressou algumas críticas.

As maiores reclamações foram causadas por o potencial para escapar "Panicen de falha em tempo de execução" em situações erradas, por exemplo, em uma situação de falta de memória, quando as operações de alocação de memória dinâmica, incluindo operações de kernel, podem falhar.

Torvalds afirmou que tal foco no kernel é fundamentalmente inaceitável, E se você não entender este ponto, você pode rejeitar completamente qualquer código que tente usar tal abordagem. Por outro lado, o desenvolvedor do patch concordou com o problema e considerou-o solucionável.

Linus Torvalds
Artigo relacionado:
A ferrugem não ficou isenta das críticas de Linus Torvalds

Mas já se passaram vários meses desde que Linus deu seu feedback e muito trabalho foi feito para melhorar a implementação. Como tal, uma solicitação de pull para o núcleo ainda não foi enviada para Torvalds, mas o conjunto de patches foi revisado, as keynotes removidas, testadas na ramificação linux-next por algum tempo e levadas a um estado adequado para construir camadas de abstração em cima de subsistemas do kernel, escrever drivers e módulos.

Suporte de ferrugem vem como uma opção que não é habilitado por padrão e não resulta na inclusão do Rust entre as dependências de compilação necessárias para o kernel.

As mudanças propostas tornam possível usar Rust como segunda língua para desenvolver drivers e módulos de 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 exatidão do acesso à memória durante a execução do código. Rust também fornece proteção contra estouro de inteiro, exige 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 tipagem estática forte para minimizar erros lógicos.


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.