O kernel Linux em breve terá suporte inicial para o chipset M1 da Apple

A versão 5.13 do Kernel Linux adicionará suporte inicial para o chip Apple M1, o primeiro SoC de classe desktop sob o design Apple Silicon.

A Apple revelou seu primeiro design System-on-a-Chip para desktop no ano passado, o Apple M1, baseado na mesma arquitetura ARM da maioria dos smartphones e tablets. Embora o Linux tenha funcionado bem em dispositivos ARM (como o Raspberry Pi) durante anos, o hardware da Apple é altamente personalizado e requer suporte de software específico. Felizmente, estamos agora um passo mais perto de executar o Linux no Apple Silicon.

AsahiLinux tem trabalhado para trazer “uma experiência Linux refinada” para Apple Silicon Macs e tem enviado seu código ao projeto Linux para inclusão no kernel oficial do Linux. O trabalho inicial do grupo foi incorporado à base de código do Linux SoC e provavelmente chegará como parte da próxima atualização do Linux 5.13.

É emocionante ver o suporte inicial para o novo hardware da Apple chegar ao kernel Linux apenas alguns meses após o início do envio do primeiro hardware, mas a palavra-chave é 'inicial'. Enquanto Linux

tecnicamente inicializa no M1, ainda estamos muito longe de conectar uma unidade Live USB e clicar em um botão de instalação. O código atual inclui suporte para funcionalidades básicas de baixo nível, como multiprocessamento simétrico através de mesas giratórias, Tratamento de IRQ, conexões seriais e um framebuffer. O Linux pode inicializar a partir de um prompt de comando, mas não muito mais – ainda não há suporte gráfico completo.

Linux no Apple M1 Mac Mini (Crédito: Asahi Linux)

Embora o suporte oficial do kernel para hardware M1 progrida em um ritmo constante, algumas pessoas conseguiram chegar mais perto de uma verdadeira experiência de desktop com vários hacks. Corellium, uma empresa de desenvolvimento especializada em virtualização ARM, conseguiu criar um área de trabalho Ubuntu utilizável no M1 Mac Mini. No entanto, a maior parte do trabalho do Corellium não está sendo transferida para o kernel do Linux.

Corellium escreveu sobre como a arquitetura do M1 difere de outros designs ARM em uma postagem de blog. "O bootloader, tradicionalmente chamado de iBoot, carrega um arquivo objeto executável em um formato chamado Mach-O, opcionalmente compactado e empacotado em um formato wrapper assinado baseado em ASN.1 chamado IMG4. Para efeito de comparação, o Linux normal em ARM de 64 bits começa como uma imagem binária plana." O grupo continuou dizendo: "se isso não bastasse, a Apple projetou seu próprio controlador de interrupção, o Apple Interrupt Controller (AIC), não compatível com nenhum dos principais ARM GIC padrões. E não só isso: as interrupções do temporizador - normalmente conectadas a uma interrupção regular por CPU no ARM - são em vez disso, roteado para o FIQ, um recurso arquitetônico obscuro, visto com mais frequência no antigo ARM de 32 bits dias."

da maçã Chipset M1 está atualmente disponível no MacBook Air, MacBook Pro e Mac Mini. É um chip de 5 nm com oito núcleos no total: quatro núcleos de alto desempenho e quatro núcleos com baixo consumo de energia. Há também um Neural Engine para tarefas de aprendizado de máquina, bem como uma GPU de oito núcleos. A Apple prometeu que o M1 ofereceria melhor desempenho do que as CPUs Intel usadas anteriormente, usando apenas cerca de um quarto da energia, e mais tarde testes do mundo real apoiou essas afirmações. Felizmente, o M1 suporta totalmente a inicialização de kernels não assinados/personalizados, portanto, executar o Linux não requer nenhuma exploração de segurança que possa ser corrigida posteriormente.

O macOS da Apple já é um ótimo sistema operacional, mas ter o Linux para desktop como opção pode ser um forte argumento de venda para alguns potenciais compradores de MacBook e Mac Mini. A Apple tem enfrentado críticas ao longo dos anos por bloquear alguns aspectos do macOS ou abandonar os padrões de plataforma cruzada em favor de alternativas proprietárias. Por exemplo, o macOS ainda não oferece suporte à API Vulkan de plataforma cruzada para gráficos, apenas a API Metal da própria empresa.