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.