Linux Kernel

Melhorias no suporte ao Linux para kernels de 32 bits em CPUs x86_64

Proposta de patch para o kernel Linux 2024 sugerindo mudanças na interface com usuário, destacando uma nova abordagem para melhorar a usabilidade e eficiência do sistema.

Com a aproximação de 2025, é cada vez menos comum encontrar sistemas que utilizam kernels de 32 bits em CPUs x86_64. Apesar de sua relevância em tempos passados, especialmente durante a era dos netbooks com capacidades limitadas de memória, a compatibilidade com esses sistemas está sendo gradualmente simplificada no kernel Linux.

Contexto histórico e a mudança de foco

Nos anos 2000, o suporte para kernels de 32 bits em hardware de 64 bits era essencial para aproveitar máquinas de baixo custo ou servidores antigos com limitações de RAM. Contudo, à medida que os sistemas de 64 bits se tornaram o padrão, a necessidade de manter suporte extensivo para funcionalidades específicas de 32 bits diminuiu drasticamente.

Recentemente, Arnd Bergmann, um dos principais desenvolvedores do kernel Linux, iniciou um trabalho significativo de limpeza e simplificação do código relacionado ao suporte de kernels de 32 bits em processadores x86_64 da Intel e AMD. Essa iniciativa segue esforços semelhantes realizados anteriormente para arquiteturas ARM de 32 bits.

O que está mudando no kernel?

O conjunto de patches proposto por Bergmann remove funcionalidades redundantes e ajusta o suporte para garantir um foco em hardware que realmente necessita de kernels de 32 bits. Algumas das principais mudanças incluem:

  • Remoção de funcionalidades específicas de hardware antigo: Recursos como HIGHMEM64G e BIGSMP, usados em servidores de alto desempenho de 2003, foram eliminados. Apenas hardware de 32 bits real continuará sendo suportado.
  • Fim do suporte para hosts KVM de 32 bits em CPUs de 64 bits: Apesar de funcional, essa configuração é desnecessária, já que kernels de 64 bits oferecem melhor desempenho e suporte para requisitos de memória de máquinas virtuais.
  • Simplificação da seleção de CPUs para otimização: Apenas CPUs puramente de 32 bits permanecem como alvos de otimização. Suporte para CPUs de 64 bits em kernels de 32 bits, como AMD K8 e Intel Core2, foi considerado desatualizado e descartado.
  • Ajustes no código genérico do compilador: Correções foram feitas para melhorar a consistência do código em diferentes configurações de hardware.

Essas mudanças resultam na adição de 185 novas linhas de código e na remoção de 1.216 linhas, demonstrando o compromisso com a eficiência e a limpeza do kernel.

O impacto para os usuários

Embora o suporte para sistemas de 32 bits continue disponível, as mudanças enfatizam que essa configuração é mais relevante para hardware legado. Sistemas modernos devem optar por kernels de 64 bits, que oferecem melhor desempenho, segurança e suporte contínuo.

Para usuários que ainda precisam executar software de 32 bits, o suporte a sistemas convidados em máquinas virtuais (como o KVM) permanece inalterado, garantindo compatibilidade sem comprometer a eficiência do kernel.

Conclusão

Essas mudanças refletem o foco do Linux em atender às necessidades modernas sem comprometer sua capacidade de suportar hardware legado. Para quem utiliza sistemas mais antigos, a atualização pode trazer ganhos de eficiência e uma experiência mais otimizada.

Explore mais sobre os patches detalhados nas discussões no Kernel.org e confira como essas mudanças impactam seu sistema.