Josh Triplett, que trabalha na Intel e faz parte do comitê que supervisiona o desenvolvimento do Crates.io, falando no Open Source Technology Summit
Em um grupo de trabalho que está em processo de criação, os desenvolvedores do Rust, em conjunto com engenheiros da Intel, prepararão especificações definindo as funcionalidades que precisam ser implementadas no Rust para programação de sistemas. A programação do sistema geralmente requer manipulação de baixo nível, como a execução de instruções privilegiadas do processador e a obtenção de informações detalhadas sobre o estado do processador. Dos recursos semelhantes já desenvolvidos para Rust, destaca-se o suporte para estruturas sem nome, uniões, inserções de linguagem assembly (a macro “asm!”) e o formato de número de ponto flutuante BFLOAT16.
Josh acredita que o futuro da programação de sistemas pertence ao Rust, e a linguagem C nas realidades modernas está reivindicando o lugar que nos últimos anos foi ocupado pelo Assembly. Ferrugem
não apenas alivia os desenvolvedores dos problemas inerentes à linguagem C que surgem devido ao trabalho de baixo nível com memória, mas também oferece a oportunidade de usá-la no desenvolvimento de paradigmas de programação modernos.
Em progresso
Josh teve a ideia de adicionar a capacidade de desenvolver drivers no kernel Linux na linguagem Rust, o que possibilitaria criar drivers melhores e mais seguros com o mínimo de esforço, livres de problemas como acesso à memória após a liberação, null desreferências de ponteiro e saturação de buffer.
Greg Kroah-Hartman, responsável por manter o branch estável do kernel Linux, expressou sua disposição em adicionar uma estrutura para o desenvolvimento de drivers na linguagem Rust ao kernel se ele tiver vantagens reais sobre C, por exemplo, fornecerá segurança ligações sobre a API do Kernel. Além disso, Greg considera este framework apenas como uma opção, não ativa por padrão, para não incluir Rust como uma dependência de construção do kernel.
Acontece que várias equipes já estão trabalhando nesse sentido. Por exemplo, desenvolvedores da empresa “Fish in a Barrel”
Paralelo
Nem todas as funcionalidades pretendidas ainda foram implementadas, mas a estrutura já é bastante adequada para o trabalho e foi usada para escrever um driver funcional para o controlador Ethernet USB LAN9512 fornecido na placa Raspberry Pi 3. O driver smsc95xx existente, escrito por em Linguagem C. Observa-se que o tamanho do módulo e a sobrecarga dos componentes de tempo de execução ao desenvolver um driver em Rust são insignificantes, o que permite que o framework seja utilizado para dispositivos com recursos limitados.
Fonte: opennet.ru