Considerado um dos principais avanços para o futuro do Linux, o Rust for Linux foi oficialmente incorporado ao kernel 6.1.
Sim. O código “Rust for Linux” foi mesclado na árvore principal do Linux 6.1 Git na segunda-feira passada e esse novo código inicial de 12.500 linhas fornece apenas infraestrutura e integração muito básicas, enquanto futuras solicitações de pull adicionarão mais abstrações de subsistema, vários drivers escritos em Rust e mais.
Rust for Linux foi oficialmente incorporado ao kernel 6.1
Compilar o kernel Linux com suporte Rust ainda é opcional, pois o projeto “Rust for Linux” está dando outro grande passo, mas alguns desenvolvedores ainda parecem céticos em trazer a linguagem Rust para o kernel Linux.
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 lembrete, o projeto “Rust for Linux” visa introduzir uma nova linguagem de programação no kernel.
O Rust tem uma propriedade chave que o torna muito interessante de ser considerado como a segunda linguagem do kernel: ele garante que nenhum comportamento indefinido ocorra. Isso inclui erros de não usar after-free, double frees, data races, etc.
Com isso, quase depois de 31 anos, uma segunda linguagem será aceita para o desenvolvimento do kernel. Discussões relacionadas giram em torno da possibilidade de abandonar o C em favor da linguagem Rust.
“O suporte ao Rust está no linux-next há um ano e meio, e o log curto não faz justiça ao número de pessoas que contribuíram tanto para o lado do kernel Linux quanto para o lado upstream do Rust para suportar as necessidades do kernel.”
“Graças a essas 173 pessoas, e muitas outras, que estiveram envolvidas de todas as formas”
Torvalds anunciou nas listas de discussão do Kernel que o suporte inicial para Rust for Linux está em aproximadamente 4 áreas e estas incluem:
- internos do kernel (expansão kallsyms para símbolos Rust, formato %pA);
- Estrutura Kbuild (regras de compilação Rust e scripts de suporte)
- Documentação e amostras do núcleo de ferrugem.
Torvalds investigou recentemente um possível problema de segurança com as primitivas de execução especulativa da lista vinculada do kernel escritas em ANSI C.
Foi enquanto solucionava esse problema que ele percebeu que ‘em C99, o iterador passado para a lista de macros de passagem deve ser declarado em um escopo próprio laço.
É dessa constatação que surgiu sua recente decisão de atualizar o kernel Linux para C11, cuja padronização foi concluída em 2011. São os motivos técnicos que podem justificar o abandono da linguagem C em favor do Rust por muito tempo, em além do termo básico de desenvolvimento.
O suporte Rust para o desenvolvimento do kernel Linux continua e é considerado “um passo importante para poder escrever drivers em uma linguagem mais segura”.
A linguagem Rust, desenvolvida pela Mozilla Research, é o tipo de linguagem de programação usada por quem escreve código para sistemas básicos de entrada/saída (BIOS), gerenciadores de inicialização, sistemas operacionais e assim por diante, têm interesse.
De acordo com alguns observadores especialistas, é o futuro da programação de sistemas em vez da linguagem C. Na verdade, os especialistas são da opinião de que ela oferece melhores garantias de segurança de software do que o par C/C++.
Por exemplo, no líder mundial em computação em nuvem AWS, especifica-se que escolher Rust para seus projetos de desenvolvimento significa adicionar a eficiência energética e o desempenho de execução do C à vantagem da segurança.