Na jornada evolutiva de sistemas operacionais de escala global como o Linux, limpar a casa é tão importante quanto construir novas fundações. Código legado inútil gera problemas de manutenção, retarda a inclusão de novas funcionalidades e, pior, pode servir como porta de entrada silenciosa para vulnerabilidades de segurança (exploits). É exatamente por conta disso que os desenvolvedores do Kernel do Linux iniciaram em outubro os preparativos formais para enviar uma relíquia técnica para o túmulo: a arquitetura x32 ABI.
O que era e por que o x32 ABI existiu?
Para entender por que isso é uma grande notícia, precisamos relembrar o início dos anos 2010. O mundo estava migrando dos velhos computadores de 32 bits para a nova arquitetura padrão de 64 bits (conhecida como x86_64, criada pela AMD).
Os processadores de 64 bits ofereciam registradores muito mais rápidos e podiam utilizar muito mais de 4GB de memória RAM. No entanto, o formato de dados em 64 bits naturalmente ocupa mais espaço nos caches internos do processador (L1, L2, L3) do que os minúsculos dados de 32 bits.
A Interface Binária de Aplicação x32 (x32 ABI) surgiu então como uma espécie de híbrido. O desenvolvedor poderia compilar o seu programa usando todas as instruções modernas, eficientes e rápidas do conjunto x86_64, mas limitaria o uso dos “ponteiros” do programa a apenas 32 bits (restringindo esse aplicativo a, no máximo, 4GB de memória de uso). A teoria era perfeita: ganha-se velocidade, economiza-se memória e o cache da CPU rende muito mais.
Um fracasso de adoção
Infelizmente, a ideia nunca pegou tração no mundo real. Grandes distribuições (como Debian, Ubuntu, e Fedora) até suportaram os pacotes x32 ABI por um período, mas os desenvolvedores de aplicativos simplesmente não tinham incentivos para manter compilações híbridas, especialmente porque o preço da memória RAM despencou com o tempo e os caches dos processadores explodiram em tamanho. Era muito mais fácil simplesmente compilar em x86_64 nativo.
Como consequência, pouquíssimos softwares comerciais ou open-source utilizaram o x32 ABI de forma regular. Para o Kernel Linux, no entanto, a herança permaneceu: os engenheiros do kernel precisavam manter linhas de código complexas para traduzir requisições de 32 para 64 bits, correndo o risco frequente de introduzir bugs, num trabalho que só beneficiaria uma fração mínima de usuários.
A aposentadoria formal dessa interface indica que a limpeza foi aceita pelos altos níveis da equipe do Kernel. Isso alivia a pressão nos ombros de desenvolvedores sêniores da infraestrutura principal do sistema.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!



