Linux 6.1 RC1, a primeira olhada no Rust no Linux

Rust Linux

A integração do Rust no Linux teve um alto nível de aceitação pela comunidade e desenvolvedores

Com o advento da o primeiro RC do Linux 6.1 incorporou muitas mudanças importantes na versão 6.1, mas uma das mudanças que recebeu mais atenção também terá o menor efeito de curto prazo nos usuários do kernel: a introdução do suporte Rust.

Linus Torvalds havia prometido no último, Open Source Summit que impulsionaria a inclusão de Rust para Linux no kernel versão 6.1 e a partir do qual o framework Rust inicial foi mesclado na árvore principal do Linux Git.

Este novo código de linha inicial de 12 fornece apenas infraestrutura básica e integração muito básica, enquanto futuras solicitações de pull adicionarão mais abstrações de subsistema, vários drivers escritos em Rust e muito mais, além de compilação do kernel Linux com suporte a Rust permanece opcional.

Em uma mensagem para a comunidade do kernel, Torvalds disse:

“A árvore tem uma fundação recente, mas está basicamente no Linux-next há um ano e meio. Atualizado com base no feedback do Kernel Maintenance Summit. Miguel é o principal mantenedor e eu ajudo quando necessário. Nosso plano é que a árvore faça a transição para a prática padrão de não alterar as bases assim que essa rodada inicial de infraestrutura estiver concluída. O conteúdo é o mínimo absoluto para permitir que o código Rust seja integrado ao kernel, com muito mais interfaces (e drivers: NVMe, 9p, GPU M1) a caminho."

Como tal, nenhum sistema com um kernel 6.1 executará código Rust, o que fornece essa mudança é a oportunidade para os desenvolvedores do kernel serem capazes de "brincar" com a linguagem no contexto do kernel e tenha uma ideia de como o desenvolvimento do Rust ocorre. A conclusão mais provável para a maioria dos desenvolvedores é que ainda não há Rust suficiente no núcleo para fazer algo que valha a pena.

O trabalho no Rust para o kernel do Linux está em andamento há alguns anos e resultou em muito código de suporte e alguns drivers interessantes para serem observados. Outras iniciativas estão em andamento, incluindo escrever um driver gráfico da Apple na linguagem Rust.

Para a fusão inicial com o núcleo principal, Linus Torvalds deixou claro para incluir o menor número possível de recursos. Portanto, esses drivers e seu código de suporte foram removidos e devem aguardar uma versão futura do kernel. O que está presente é o suporte necessário para a construção de um módulo que pode ser carregado no kernel, bem como um pequeno módulo de amostra.

Rust para Linux visa introduzir uma nova linguagem de programação de sistemas no kernel. Rust tem uma propriedade chave que torna muito interessante considerar como a segunda linguagem do kernel: ele garante que nenhum comportamento indefinido ocorrerá (desde que o código inseguro seja sensato).

Isso inclui a ausência de erros como uso pós-livre, liberações duplas, corridas de dados, etc. Após 31 anos, uma segunda língua será aceita para o desenvolvimento do núcleo. Discussões relacionadas giram em torno da possibilidade de abandonar o C em favor da linguagem Rust.

A compatibilidade de construção com Rust requer versões específicas do compilador Rust e do utilitário bindgen, especificamente, Rust 1.62.0 e bindgen 0.56.0. Se o sistema de destino tiver versões mais recentes, o processo de configuração emitirá avisos, mas continuará. Mais inconveniente para quem tenta construir com a cadeia de ferramentas Rust fornecida por seu fornecedor, o processo de construção também precisa da fonte da biblioteca padrão Rust para poder construir sua própria versão das caixas principais e alocar.

Feito isso, o sistema de configuração do kernel concordará em definir a opção CONFIG_RUST; uma opção adicional irá construir o módulo de exemplo.

Por fim, se você tiver interesse em saber mais sobre o assunto, 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: Miguel Ángel Gatón
  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.