O colaborador do Asahi Linux, Asahi Lina, disse que agora o Asahi Linux pode continuar escrevendo o driver Apple Silicon GPU em Rust.
Quando se trata do suporte ao Apple M1 e M2 no Linux, um dos maiores obstáculos para o uso diário adequado para usuários finais é a atual falta de aceleração de GPU.
A engenharia reversa está acontecendo para o processador gráfico Apple Silicon, os primeiros experimentos sendo realizados no ambiente m1n1 do macOS e Asahi, e o próximo passo será começar a escrever um driver de kernel Direct Rendering Manager (DRM).
Para alguma surpresa, a viabilidade de escrever este driver de GPU do kernel DRM na linguagem de programação Rust está sendo explorada.
Asahi Linux pode continuar escrevendo o driver Apple Silicon GPU em Rust
O proeminente colaborador do Asahi Linux (vem do nome japonês da maçã McIntosh, 旭 (Asahi)), Asahi Lina, expressou a possibilidade de escrever seu novo driver de GPU do kernel para o Apple AGX dentro da linguagem de programação Rust.
Asahi Lina explicou hoje na lista de discussão:
“Essas GPUs executam firmware e têm estruturas de dados de memória compartilhada bastante complexas que precisam ser gerenciadas pelo host, então tenho me inclinado para o Rust por sua segurança, melhor metaprogramação e expressividade geral. Eu tenho um driver de protótipo escrito em Python (executando no espaço do usuário de um host remoto, uma longa história) e ter uma linguagem de nível superior tem sido muito útil na engenharia reversa da GPU e na prototipagem de ideias diferentes de como o driver deve funcionar.”
“Percebo que são os primeiros dias do Rust no Linux e este é um desafio ambicioso, mas estou disposto a aprender e o driver levará algum tempo para se estabilizar a ponto de ser upstream de qualquer maneira (em particular o UAPI), então escrevendo isso em Rust parece menos arriscado neste momento do que costumava ser, já que parece que Rust será mesclado nos próximos ciclos do kernel, no máximo.”
Este seria o primeiro driver de GPU do kernel escrito na linguagem de programação Rust.
Dado que o código do driver real ainda não foi escrito para o driver Rust, resta saber se o driver inteiro seria implementado no Rust ou apenas as partes interagindo com o firmware binário.
Mais brainstorming sobre este driver de kernel Linux da Apple GPU, potencialmente escrito na linguagem de programação Rust, pode ser encontrado na lista de discussão rust-for-linux.