Fedora Asahi Remix: distribuição Linux compatível com computadores da Apple Silicon

Apple anuncia o M3, M3 Pro e M3 Max
Apple anuncia o M3, M3 Pro e M3 Max

Asahi Linux Project revelou hoje o Fedora Asahi Remix, uma distribuição Linux compatível com computadores da Apple. Todos sabemos que já é possível instalar o Linux em computadores da Apple, mas o Asahi Remix foi criado com a máxima compatibilidade. Desta forma, todos os drivers Apple disponíveis no mercado estarão disponíveis no Fedora Asahi Remix. Mas, neste momento, há apenas uma versão de testes. Segundo o time de desenvolvimento, a versão final e estável deve sair no final deste mês.

Podemos ousar em dizer que o Fedora Asahi Remix será a primeira distribuição Linux conhecida a oferecer suporte completo aos computadores da Apple. Desta forma, essa distribuição Linux é compatível com Apple M1, Apple M2. O pilar central da distribuição é o Linux Kernel e bootloaders. Desta forma, já é esperado que a nova distribuição Linux rode de maneira suave e sem conflitos em hardware Apple.

Distribuição Linux compatível com computadores Apple

O Asahi Linux Project já tem uma distribuição com o mesmo foco, mas a base era o Arch Linux, a nova versão tem como base o Fedora. Agora o foco do projeto é o Fedora Asahi Linux que já vem sendo pensado desde o surgimento do projeto em 2021. A equipe do projeto disse que trabalha de perto com os desenvolvedores do Fedora e isso faz muita diferença para conseguir tonar o sistema compatível com os computadores da Apple.

Para aqueles que já querem testar a primeira distribuição totalmente compatível com computadores Apple, basta executar o comando abaixo, também recomendamos visitar o site da distribuição para conhecer todos os detalhes de desenvolvimento ou conversar com a equipe.

curl https://fedora-asahi-remix.org/install | sh

Descoberta sobre os computadores Apple aplica a distribuição Linux

Apple Silicon Macs inicializam de uma maneira completamente diferente dos PCs. A maneira como eles funcionam é mais semelhante a plataformas incorporadas (como telefones Android ou dispositivos iOS), mas com alguns mecanismos personalizados incluídos. No entanto, a Apple tomou algumas medidas para tornar esse processo de inicialização mais próximo de um Intel Mac, então tem havido muita confusão sobre como as coisas realmente funcionam. Por exemplo, você sabia que os Apple Silicon Macs não podem inicializar a partir de um armazenamento externo, no sentido tradicional? Ou que o bootloader em Apple Silicon Macs não pode mostrar uma interface gráfica do usuário e que o “Boot Picker” é na verdade um aplicativo macOS em tela cheia, não faz parte do bootloader?

Os Apple Silicon Macs têm um processo de inicialização que não se baseia em nenhum padrão existente. Em vez disso, é um mecanismo sob medida da Apple que evoluiu lentamente desde os primeiros dias dos dispositivos iOS. Por outro lado, o resto do mundo ARM de 64 bits convergiu amplamente em dois padrões concorrentes: UEFI + ACPI (amplamente usado por servidores executando Windows ou Linux) e o protocolo de inicialização ARM64 Linux + DeviceTree (usado em sistemas menores, e também suportado pelo U-Boot e mais).

UEFI e ACPI são bestas complicadas geralmente usadas apenas para grandes sistemas ARM. Os padrões são amplamente controlados por comitês no Fórum UEFI. Ao contrário do mundo do PC x86, que é muito mais homogêneo, o mundo ARM é extremamente diverso e os sistemas em chip têm todos os tipos de designs com requisitos diferentes para descrever o hardware contido neles. Isso significa que adicionar suporte para um novo SoC quase sempre requer a alteração desses padrões para adicionar “vínculos” para os bits de hardware que o tornam único. Para a ACPI, isso é caro e lento, e é por isso que a ACPI quase nunca é usada em pequenos sistemas integrados que não executam o Windows. Não é uma opção viável para eles.

Sobre ARM Linux embarcados e dos computadores Apple

A grande variedade de sistemas ARM Linux embarcados menores quase invariavelmente usa o padrão DeviceTree – por exemplo, é assim que a maioria dos dispositivos Android inicializa. Devicetrees são muito mais simples do que ACPI, já que um devicetree é puramente um monte de dados que descrevem o hardware, enquanto as tabelas ACPI são uma combinação de dados e código. Hoje em dia, a autoridade em ligações de devicetree é a documentação mantida dentro da própria árvore do kernel do Linux: isso significa que é possível alterar esses padrões ao mesmo tempo em escrever os próprios drivers do Linux. Assim, o processo de inicialização do Asahi Linux usará esse modelo.

Curiosamente, a Apple também usa sua própria versão de uma árvore de dispositivos no Apple Silicon, chamada Apple Device Tree! Isso ocorre porque tanto ele quanto o padrão aberto DeviceTree são baseados na especificação Open Firmware. Infelizmente, embora isso signifique que os ADTs são muito familiares para qualquer desenvolvedor de Linux embarcado, não é possível usá-los diretamente: o formato binário é diferente e não pode ser convertido automaticamente sem ter informações de alto nível sobre o que os dados representam. Além disso, as ligações reais usadas para dispositivos são muito diferentes. Embora o Linux e o macOS funcionem da mesma maneira em Macs PowerPC e sejam diretamente compatíveis, o Linux teve mais de uma década de evolução divergente da Apple no espaço ARM. Tentar unificar as ideias da Apple e do Linux de como as árvores de dispositivos devem funcionar deve ser um pesadelo.

Para adaptar o mundo Apple a um mundo devicetree, o projeto está desenvolvendo o m1n1, um bootloader para máquinas Apple Silicon. Seu objetivo é cuidar do maior número possível de “Apple-ismos”, para tornar a vida o mais fácil possível para o Linux ou qualquer outra coisa a jusante. Por fim, desejamos boa sorte ao projeto que já fez grandes avanços e em breve vai lançar o primeira distribuição Linux 100% compatível com Apple Silicon.