Em um discurso recente no Open Source Summit Europe, Linus Torvalds anunciou que a linguagem Rust será aceita no kernel 6.1.
Este ano 2022 pode ser o ano do Rust dentro do kernel Linux, já que o Rust for Linux provavelmente estará pronto para o kernel Linux versão 6.1. Foi o que surgiu de um discurso recente de Linus Torvalds no último Open Source Summit.
Acontece que os principais mantenedores do kernel Linux estão familiarizados com a linguagem C, cuja idade já é considerada levada em consideração, pois alguns estão chegando aos sessenta, enquanto uma nova geração de mantenedores cuja faixa etária está em trinta está subindo, o que provavelmente aumentará a dificuldade de encontrar mantenedores para o kernel Linux se seu desenvolvimento continuar na linguagem C.
Durante o Open Source Summit Europe, Linus Torvalds anunciou que, salvo quaisquer problemas imprevistos, serão incluídos patches para apoiar o desenvolvimento do driver Rust no kernel Linux 6.1, que deve ser lançado em dezembro.
Torvalds anunciou que a linguagem Rust será aceita no kernel 6.1
Rust agora está pronto para se juntar ao C como uma linguagem prática para implementar no Linux. Alguns dos benefícios de obter suporte a Rust no kernel são facilitar a gravação de drivers de dispositivos seguros, reduzindo a chance de erros de falta de memória e incentivando novos desenvolvedores a se envolverem no kernel.
“A Rust é uma daquelas coisas que acho que trará novos rostos… estamos ficando velhos e grisalhos”, disse Linus.
As notas de lançamento do Linux 6.0 rc1 fornecem uma atualização sobre o andamento do projeto Rust para Linux: existe um grupo de trabalho relacionado, um driver preliminar para mídia de armazenamento NVMe desenvolvido usando a linguagem está disponível, bem como um driver para um servidor destinado ao protocolo de rede 9P.
No entanto, a equipe continua a enfrentar dificuldades com a construção. Na verdade, é feito com o GCC para o kernel enquanto o Rust ainda está com o LLVM. Uma interface Rust para o GCC está em andamento, mas a iniciativa ainda está engatinhando.
O início do suporte Rust para o desenvolvimento do kernel Linux é visto como “um passo importante para poder escrever drivers em uma linguagem mais segura”.
Rust da Mozilla Research é o tipo de linguagem de programação que aqueles que escrevem código para sistemas básicos de entrada/saída (BIOS), carregadores de inicialização, sistemas operacionais, etc. ter interesse
De acordo com observadores, é o futuro da programação de sistemas e não a linguagem C. De fato, os especialistas dizem que ela oferece melhores garantias de segurança de software do que o par C/C++.
Na AWS, eles especificam que escolher Rust para projetos de desenvolvimento significa adicionar a eficiência energética e o desempenho de execução do C à vantagem da segurança.
Linus também anunciou que a versão 6.1 do kernel melhorará algumas das partes mais antigas e fundamentais do kernel, como a função printk(). Além disso, Linus lembrou que há algumas décadas, a Intel tentou convencê-lo de que o processador Itanium era o futuro, mas ele respondeu
“Não, isso não vai acontecer, porque não existe uma plataforma de desenvolvimento para isso. A ARM está fazendo tudo certo.”
Outro problema apontado por Torvalds é a inconsistência na produção de processadores ARM:
“companhias de hardware malucas do Velho Oeste, fazendo chips especializados para várias tarefas.” Ele acrescentou que “foi um grande negócio quando os primeiros processadores foram lançados, hoje existem padrões suficientes para facilitar a transferência de núcleos para novos processadores ARM.”
Além disso, podemos apontar para o lançamento da implementação inicial do driver rust-e1000 para adaptadores Intel Ethernet, parcialmente escrito em Rust.
O código ainda tem uma chamada direta para algumas ligações C, mas o trabalho está sendo feito gradualmente para substituí-las e adicionar as abstrações de Rust necessárias para escrever drivers de rede (para acessar APIs de rede PCI, DMA e kernel).
Em sua forma atual, o driver passa com sucesso no teste de ping quando inicializado no QEMU, mas ainda não funciona com hardware real.