A nona versão do Rust for Linux chega e diz adeus ao suporte para versões anteriores ao Linux 3.2

Uau, o trabalho de Suporte ao driver Rust para Linux já está em andamento e um desenvolvimento bastante contínuo começou, já que não tem muito a a versão 8 foi anunciada dos patches e é isso agora temos a versão 9.

E é que nesta nona versão que foi proposta, vale a pena referir que como tal é uma versão simplificada da oitava edição publicada há poucos dias. O kit se distingue por uma redução significativa no tamanho e por deixar apenas o mínimo mais necessário, suficiente para construir um módulo do kernel escrito em Rust.

O patch mínimo é assumido facilitará a adoção do suporte Rust no kernel principal. Depois de fornecer suporte mínimo, está planejado aumentar gradualmente a funcionalidade existente, portando outras alterações do ramo Rust-for-Linux.

Esta é a série de patches (v9) para adicionar suporte para Rust como segunda linguagem ao kernel Linux…

Como de costume, um agradecimento especial ao ISRG (Internet Security Research Group) e Google por seu apoio financeiro neste esforço.

Comparado com a versão 8, o tamanho do patch foi reduzido de 40 para 000 linhas de código. Por exemplo, a versão 3 inclui apenas 500% do código (60 linhas) do pacote "kernel" box e 32% da biblioteca alloc, permitindo que você crie os módulos de kernel mais simples usando o tipo Vec. e exibindo informações no log do kernel usando a macro "pr_info!".

Além disso, Em relação ao Rust e ao Linux, vale ressaltar que recentemente o Desenvolvedores do projeto Rust avisados aos usuários sobre o aumento iminente dos requisitos para o ambiente Linux no compilador, o gerenciador de pacotes Cargo e a biblioteca padrão libstd.

A partir de Rust 1.64, agendado para 22 de setembro de 2022, os requisitos mínimos para Glibc serão aumentados da versão 2.11 para 2.17 e o kernel Linux de 2.6.32 para 3.2. As restrições também se aplicam a binários Rust construídos com libstd.

As distribuições RHEL 7, SLES 12-SP5, Debian 8 e Ubuntu 14.04 atendem aos novos requisitos. O suporte para RHEL 6, SLES 11-SP4, Debian 7 e Ubuntu 12.04 será descontinuado. Os motivos para descontinuar o suporte para sistemas Linux mais antigos incluem recursos limitados para continuar a oferecer suporte a ambientes mais antigos.

Por que aumentar os requisitos?
Queremos que Rust e os binários produzidos por Rust sejam tão amplamente utilizáveis ​​quanto possível. Ao mesmo tempo, o projeto Rust tem apenas recursos limitados para manter a compatibilidade com ambientes mais antigos.

Existem duas partes nos requisitos da cadeia de ferramentas: os requisitos mínimos para executar o compilador Rust em um sistema host e os requisitos mínimos para binários compilados de forma cruzada.

Os requisitos mínimos para cadeias de ferramentas de host afetam nosso sistema de compilação. Rust CI produz artefatos binários para dezenas de alvos diferentes. Construir binários que suportam versões mais antigas da glibc requer construir um sistema operacional com glibc mais antiga (para compilações nativas) ou usar uma raiz de compilação com uma versão mais antiga da glibc (para compilações cruzadas).

Em particular, compatibilidade com Glibcs ​​mais antigos requer o uso de ferramentas mais antigas quando verificado em um sistema de integração contínua, versus maiores requisitos de versão no LLVM e utilitários de compilação cruzada. O aumento nos requisitos de versão do kernel é devido à capacidade da libstd de usar novas chamadas de sistema sem a necessidade de manter camadas para garantir a compatibilidade com kernels mais antigos.

Os usuários que usam executáveis ​​criados por Rust em ambientes com kernels Linux mais antigos são aconselhados a atualizar seus sistemas, permanecer em versões mais antigas do compilador ou manter seu próprio fork libstd em camadas para manter a compatibilidade.

Por fim, se você estiver interessado em saber mais sobre o assunto, consulte os detalhes em o seguinte link.


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.