Linux e ARM64

Linux 6.13: avanços para a arquitetura ARM64

Fundo azul com a logo da ARM64 ao centro

O Linux 6.13 chega com importantes atualizações para a arquitetura ARM64, destacando-se por melhorias em segurança, desempenho e funcionalidade. Confira os detalhes das mudanças mais relevantes.

Suporte a máquinas virtuais protegidas com ARM CCA

Uma das principais novidades desta versão é o suporte a máquinas virtuais protegidas, chamadas de realms, que utilizam a Arm Confidential Compute Architecture (CCA). Essa tecnologia permite que o Linux seja executado em ambientes isolados, protegendo dados sensíveis contra invasões e ataques. Soluções semelhantes, como AMD SEV-SNP e Intel TDX, já oferecem funcionalidades parecidas, e o Linux agora avança nesse mesmo caminho, tornando-se mais seguro para aplicações críticas.

Maior segurança com o Guarded Control Stack (GCS)

Outra grande melhoria é a introdução do Guarded Control Stack (GCS) para o espaço do usuário. Esse recurso adiciona uma camada de segurança que combate ataques como ROP (Return-Oriented Programming). O GCS cria automaticamente uma pilha sombria ao clonar processos, protegendo contra manipulações maliciosas.

O suporte inicial segue o comportamento da ABI do x86, mas futuras atualizações, como o suporte ao clone3(), permitirão maior controle sobre o tamanho e o local da pilha sombria, garantindo ainda mais flexibilidade e segurança.

AT_HWCAP3: reportando capacidades do hardware

O suporte ao AT_HWCAP3 é outra adição importante. Ele permite que o kernel Linux relate de forma mais precisa as capacidades do hardware, o que será essencial para futuros avanços no ARM64, como o suporte ao dpISA. Essa melhoria previne possíveis limitações de compatibilidade com novos recursos da arquitetura.

Otimizações no kernel Linux 6.3 para ARM64

O Linux 6.13 também trouxe várias otimizações no kernel, garantindo maior eficiência para dispositivos ARM64:

  • Instruções memcpy no kernel: Agora o kernel utiliza instruções otimizadas de cópia de memória, melhorando o desempenho em operações de movimentação de dados.
  • MTE no hugetlbfs: Suporte à Memory Tagging Extension (MTE) no sistema de arquivos hugetlbfs, acompanhado por novos testes automáticos para validação.
  • CRC32 mais rápido: Uso de instruções PMULL para otimizar operações de cálculo de CRC32.
  • Melhorias no TLB: Operações de esvaziamento de faixa para o Translation Lookaside Buffer (TLB), tornando o gerenciamento de memória mais eficiente.
  • FEAT_HAFT: Suporte a ARCH_HAS_NONLEAF_PMD_YOUNG, que melhora o desempenho em páginas não folhas.

Avanços em monitoramento e desempenho

O monitoramento de hardware também recebeu melhorias significativas. O suporte a contadores de desempenho foi expandido para diversas plataformas ARM64, incluindo:

  • NXP i.MX91 no driver PMU existente.
  • Ampere SoCs no driver Designware PCIe PMU.
  • Marvell Odyssey SoC com suporte ao PCIe PMU Marvell PEM.
  • Samsung Mongoose para o monitoramento de CPU.

Além disso, o PMUv3.9 agora permite controle mais refinado do acesso aos contadores de desempenho, aumentando a flexibilidade para desenvolvedores e administradores.

Correções e melhorias no código para arm64

O Linux 6.13 não apenas adicionou novos recursos, mas também realizou uma série de ajustes e limpezas no código:

  • Melhorias nos acessos às tabelas de página, incluindo reorganização e validação de macros.
  • Otimizações no cache para slots xol em uprobes, evitando operações desnecessárias.
  • Melhorias nos testes automáticos (kselftests) para garantir estabilidade e desempenho.
  • Correções em contextos de comutação, como tpidrro_el0 quando o kpti está ativado.
  • Ajustes no suporte a ACPI, como validações de arrays e tratamento de erros.

Com essas mudanças, o Linux 6.13 reforça a segurança e a eficiência do ARM64, preparando a arquitetura para os desafios da computação moderna. Seja para dispositivos móveis, servidores ou sistemas embarcados, essas atualizações tornam o Linux mais robusto, confiável e adaptado às inovações tecnológicas.