- O projeto Asahi Linux torna possível executar Linux em Macs com Apple M1 e M2, e já concluiu o suporte para a maior parte do hardware, incluindo wireless, áudio e aceleração gráfica
- O projeto começou em dezembro de 2020 por Hector Martin, com a participação de Alyssa Rosenzweig na engenharia reversa do conjunto de instruções de shader da GPU M1
- Em dezembro de 2022, o Asahi Linux implementou aceleração gráfica ao combinar o driver OpenGL com o driver de kernel, tornando possível executar jogos 3D
- Em 2023~2024, Rosenzweig desenvolveu drivers compatíveis com OpenGL 4.6 e a especificação Vulkan 1.4, com suporte para rodar jogos de Windows via Proton
- Esse projeto de código aberto foi além dos drivers fora de padrão da Apple e alcançou padrões da indústria, abrindo caminho para levar Vulkan ao macOS
A importância e as vantagens de um projeto de código aberto
- Asahi Linux é um projeto de código aberto que permite rodar Linux em chips Apple M1 e M2, oferecendo suporte completo de hardware sem depender de software proprietário
- Enquanto os drivers proprietários da Apple não seguem as especificações de OpenGL e Vulkan, o Asahi Linux busca conformidade com os padrões da indústria, aumentando confiabilidade e compatibilidade
- Em comparação com outros projetos de drivers gráficos open source, como o Panfrost, o Asahi Linux avançou rapidamente por meio de engenharia reversa e se diferenciou pela otimização do desempenho em jogos com uso do Proton
Início do projeto e trabalho inicial
- Em dezembro de 2020, Hector Martin iniciou o Asahi Linux e começou a engenharia reversa da GPU Apple M1
- Alyssa Rosenzweig entrou no projeto enquanto trabalhava no Panfrost, da Collabora (driver open source para GPUs Arm Mali)
- No começo, pretendia apenas dar conselhos simples, mas acabou comprando um Mac M1 e iniciando a análise das instruções de shader
- No início de 2021, Rosenzweig conseguiu fazer renderização de triângulos em poucas semanas, estabelecendo a base dos gráficos 3D
- A renderização de triângulos é o ponto de partida de todo trabalho em gráficos 3D, permitindo depois implementar gráficos mais complexos
- Depois disso, desenvolveu um compilador de shaders e, após as provas de fim de semestre, implementou o driver OpenGL e demonstrou uma engrenagem girando
Desenvolvimento dos drivers e resultados
- Em 2021~2022, Rosenzweig continuou a engenharia reversa e aprimorou o driver OpenGL, tornando possível executar jogos 3D
- Asahi Lina escreveu o driver de kernel para a GPU Apple, que foi combinado com o driver OpenGL em espaço de usuário
- Em dezembro de 2022, o Asahi Linux passou a oferecer aceleração gráfica, completando toda a stack gráfica
- Em 2023, Rosenzweig cursava o último semestre de Ciência da Computação na Universidade de Toronto enquanto seguia com o desenvolvimento dos drivers
- Após o sucesso do projeto Panfrost, assumiu o driver da GPU M1 como um novo desafio
- Objetivos: OpenGL 4.6, Vulkan e suporte a jogos via Proton
Conformidade com OpenGL e Vulkan
- Em 2023, implementou OpenGL 3.1 e obteve certificação de conformidade com OpenGL ES 3.1
- O OpenGL ES 3.2 exige geometry shaders, mas como o hardware da Apple não os suporta, eles foram emulados com compute shaders
- Aproveitando código comum dos drivers Mesa, o desenvolvimento avançou rapidamente, com implementação da emulação de geometria/tesselation
- Em janeiro de 2024, obteve a certificação da especificação OpenGL 4.6, superando os drivers fora de padrão da Apple
- O desenvolvimento do driver Vulkan conquistou certificação Vulkan 1.3 em poucos meses
- A emulação de geometria/tesselation foi integrada ao Vulkan, com suporte a jogos Direct3D e Proton
- No mesmo dia do anúncio da especificação Vulkan 1.4, a certificação de conformidade já estava implementada e foi distribuída imediatamente
- Karol Herbst obteve certificação OpenCL 3.0, usando o compilador de Rosenzweig e o frontend rusticl
- Foi adicionado suporte a texturas esparsas, permitindo rodar jogos avançados via Direct3D 12 e Proton
Resultados e impacto do projeto
- O Asahi Linux oferece suporte a OpenGL 4.6, OpenGL ES 3.2, OpenCL 3.0 e Vulkan 1.4, atingindo todos os objetivos
- Os drivers foram totalmente integrados ao Mesa, com otimização de desempenho concluída
- Com jogos via Proton, jogos de Windows podem ser executados com fluidez no Linux, aproveitando a tecnologia do Steam Deck
- O projeto desfez o equívoco de que Vulkan seria inadequado no hardware da Apple e, por meio do projeto KosmicKrisp da LunarG, ajudou a levar Vulkan ao macOS
- Após o sucesso do projeto, Rosenzweig está deixando o ecossistema Apple, enquanto a equipe do Asahi Linux dará continuidade ao trabalho
- O próximo desafio planejado é migrar para a arquitetura Xe HPG da Intel
Conclusão
- O Asahi Linux desenvolveu com sucesso drivers gráficos de código aberto por meio de engenharia reversa da GPU Apple M1
- A conformidade com os padrões da indústria e o suporte ao Proton ampliaram as possibilidades de jogos e desenvolvimento Linux no hardware da Apple
- O projeto demonstra a força da colaboração da comunidade open source e das técnicas de engenharia reversa, oferecendo uma alternativa a sistemas proprietários
4 comentários
Eu assinava a Asahi Lina, então já tinha visto em alguma transmissão ela fazendo engenharia reversa da GPU M1 e desenvolvendo o kernel, mas agora não sei se foi arquivado, porque não aparece mais...
Ua.....................................................................................................................................que monstro
Comentários do Hacker News
Esta conquista é enorme não só pela profundidade técnica, mas também pelo seu simbolismo. O trabalho da Alyssa é realmente inspirador: ao trazer gráficos open source para o Apple Silicon com percepção técnica profunda e anos de dedicação, ela deu um grande impulso a engenheiros de reversão e desenvolvedores de código aberto. Mostrou a uma nova geração que é possível superar barreiras com curiosidade e persistência. Foi um enorme prazer acompanhar a evolução disso ao longo dos últimos anos. Muito respeito a ela e a todos que tornaram este projeto possível, e também torcendo pelo novo desafio na Intel.
Realmente parece o fim de uma era. É impressionante pensar que ela começou essa jornada aos 18 anos e a concluiu em 5 anos. Pouca gente acreditava que seria possível fazer a GPU funcionar no Asahi Linux. Fico curioso sobre o que significa o próximo desafio mencionado no link “Onto the next challenge!”. Será que ela vai trabalhar com Intel Xe-HPG?
Sim, no currículo dela também consta que, a partir deste mês, ela começou a trabalhar na Intel com drivers gráficos open source.
É incrível pensar que ela começou com “desenhar um triângulo” e agora já fez o upstream do Vulkan no M1. Na prática, isso tornou viável o caminho Venus/virtio em ambientes guest de Apple Silicon, e muita gente precisa justamente dessa funcionalidade.
"Faço parte do comitê que supervisiona os gráficos no Linux, e metade dele é composta por pessoas trans. Se você se importa apenas com Linux, precisa resistir aos ataques contra pessoas trans. Se tiver o mínimo de consciência, deveria lutar contra isso" (link do blog)
Perguntando por pura curiosidade: tenho a impressão de que há proporcionalmente muitos programadores trans extremamente talentosos. A população trans representa uma parcela muito pequena do total, então é bem raro que metade de algum grupo seja trans. Além disso, existem memes como “programmer socks”, e eu mesmo conheço pessoalmente vários programadores trans muito competentes.
Não entendi muito bem o contexto deste comentário. Foi escrito pela mesma autora, mas não parece ter relação direta com a GPU do M1.
É marcante ver a autora implementar rapidamente APIs gráficas modernas em um hardware “impossível” e depois simplesmente seguir em frente sem apego. Um verdadeiro “mic drop”.
Como ela conseguiu fazer essas três coisas ao mesmo tempo? Eu mal consigo dar conta de uma só.
Acho que ela é uma das raríssimas pessoas com capacidade realmente excepcional. Claro, o fato de não desperdiçar tempo com esforços sem sentido enquanto trabalha, além de ser bem remunerada, provavelmente também ajudou a tornar isso possível. Esse nível de autocontrole e foco em objetivos é realmente raro. Imagino que talvez ela quase não tenha família, vida social ou outros hobbies.
Parece aquela história lendária do engenheiro com produtividade 10x.
Acho uma conquista realmente incrível. O que ela realizou aos 23 anos é mais do que eu construí em mais de 10 anos de carreira no setor. É uma engenheira realmente talentosa.
Quero agradecer muito à equipe do Asahi, especialmente pelo trabalho com GPU. Retomar desenvolvimento em OpenGL algum dia estava na minha lista de desejos, e recentemente, ao passar a usar o fedora-asahi remix como máquina principal no dia a dia, sinto de verdade que voltei a ser dono do meu computador. O trabalho deles me inspira a continuar tentando com meu código Zig para PinePhone, embora eu não tenha habilidade para levar a GPU além de um framebuffer poke'd. A checklist de APIs suportadas no Asahi é realmente impressionante, e é difícil acreditar que tudo isso foi alcançado em tão pouco tempo. Mais uma vez, obrigado, e boa sorte na Intel.
Ela começou a trabalhar na Intel em agosto e, em poucos meses, já alcançou resultados que para a maioria levariam um ano inteiro. É realmente impressionante (link do currículo).
Não tenho nada de muito especial a dizer, mas realmente quero dar os parabéns: "mandou muito bem!" E estou ansioso para ver no que ela vai trabalhar daqui para frente.
Alyssa é realmente uma pessoa inspiradora. Fico feliz que ela esteja podendo trabalhar na área que acha interessante.
Parece até dramática demais para ser obra de uma pessoa só, e é impressionante.
Entrei no blog e até li o
resume; o cara é um monstro.A vida dele inteira é basicamente driver gráfico;;