Desenvolvedores do Linux para Apple Silicon limpam o código e reduzem o tamanho do kernel

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Refino de código revela a maturidade do suporte ao Apple Silicon

Quando o suporte às máquinas Apple Silicon chegou ao kernel, os desenvolvedores do projeto Asahi Linux adotaram um atalho para acelerar a integração: em vários drivers, a opção default ARCH_APPLE foi ativada no arquivo Kconfig. Na prática, isso fazia com que esses drivers fossem compilados como parte fixa (embutidos) do kernel (=y) sempre que a arquitetura Apple estivesse habilitada.

Esse “detalhe” trouxe dois inconvenientes:

  1. Inchaço do kernel – cada driver embutido aumenta o tamanho do arquivo principal (vmlinux), mesmo que o hardware correspondente nunca seja usado.
  2. Inconsistência com as boas práticas – no ecossistema Linux, a regra é compilar drivers como módulos (=m) sempre que possível, carregando-os somente quando o dispositivo é detectado.

A Solução: Módulos para um kernel mais enxuto

Refino de código revela a maturidade do suporte ao Apple Silicon

Assinado por Sven Peter, mantenedor do Asahi Linux, o conjunto de 11 patches remove o default ARCH_APPLE de todos os drivers afetados (IOMMU, áudio, toque, DMA, I²C, relógio, entre outros) e, em contrapartida, adiciona essas mesmas opções como módulos no arquivo defconfig da arquitetura arm64.

Qual a diferença em termos simples?

  • Driver embutido (=y) – o código faz parte do kernel; está sempre na memória, mesmo se o hardware não existir.
  • Driver em módulo (=m) – o código é um arquivo separado (.ko) carregado apenas quando o dispositivo é detectado, economizando memória e agilizando a inicialização.

O Benefício: Kernel menor e projeto mais maduro

Segundo Sven, a simples troca para módulos resultou em:

  • Redução de quase 300 KB no arquivo vmlinux (-297 888 bytes).
  • Corte de 4 KB na imagem compactada (Image).

Embora pareçam números pequenos em um kernel de dezenas de megabytes, a mudança mostra algo maior: o suporte ao Linux Apple Silicon kernel está deixando a fase “tudo ou nada” e entrando em um ciclo de refinamento típico de subsistemas maduros do kernel.

Além do ganho de espaço, remover o default ARCH_APPLE:

  • Evita que sistemas personalizados embutam drivers desnecessários.
  • Segue o padrão de engenharia do kernel, facilitando futuras manutenções.
  • Demonstra que a comunidade Asahi Linux não está apenas adicionando funcionalidades, mas também investindo na qualidade do código.

Contexto do Projeto Asahi Linux

O Asahi Linux lidera o esforço de portar o Linux para Macs com processadores Apple Silicon (M1, M2, M3). A equipe, formada por voluntários e patrocinada por empresas como a CIQ, já habilitou gráficos 3D, áudio e aceleração de vídeo. Agora, com refatorações como essa, o foco se volta a polir a base de código ― um sinal claro de que o suporte está amadurecendo.

Compartilhe este artigo