Afinal, por que ainda temos programas em 32 bits?

Por Pedro Cipoli | 16 de Julho de 2019 às 19h30

Processadores de 64 bits já estão entre nós há há algum tempo. Até mesmo smartphones já usam essa arquitetura, caso do Apple A7 utilizado no iPhone 5s ainda em 2013. Mesmo assim, ainda temos uma quantidade considerável de aplicações de 32 bits, um cenário que não parece que vai mudar nos próximos anos. Por que isso acontece? Melhor ainda: isso não atrapalha o funcionamento de nossos computadores e smartphones? Vamos lá.

64 bits “puro”

Os processadores que temos atualmente, sejam eles da AMD ou da Intel, não trabalham apenas com 64 bits. Aliás, é um dos grandes trunfos do conhecido “x86-64”, fazendo uma referência ao Intel 80386, primeiro processador de 32 bits lançado em 1985, e ao suporte a 64 bits. Mais do que isso: eles podem trabalhar com 16 bits e até mesmo com instruções de 8 bits!

O sucesso do AMD64 se deve à sua retrocompatibilidade com arquiteturas anteriores.

Mas sim: há processadores 64 bits “puro sangue”. Puros mesmo, incapazes de rodar programas de 32 bits... o que não é tão bom quanto parece. É o caso da linha Itanium da Intel (instruções IA64), dedicada a ambientes corporativos. Não eram tão “versáteis” quanto o modelo AMD64, que acabou se tornando dominante por não poder trabalhar tanto com os programas 32 bits que já existiam quanto com os de 64 bits.

Participe do nosso Grupo de Cupons e Descontos no Whatsapp e garanta sempre o menor preço em suas compras de produtos de tecnologia.

Ok, mas isso não explica por que uma solução de 2003, que marca o primeiro Opteron, foi anunciada com AMD64, e ainda é utilizada hoje. Por que não ocorreu uma “transição” para os 64 bits depois de tanto tempo?

Em time que está ganhando…

Sendo bastante concisos: não é necessário mexer. Há alguns detalhes importantes na mudança da arquitetura, mas a principal delas é, em um distante primeiro lugar, o suporte a mais de 4 GB de memória RAM. Programas de 32 bits são capazes de endereçar singelos 4 GB, enquanto programas de 64 bits suportam 16,8 exabytes. Ou 16,8 bilhões de gigabytes, para dar uma dimensão mais precisa.

A verdade é que muitos programas não precisam de uma grande quantidade de memória RAM. E não estamos falando de bilhões e bilhões de gigabytes, mas sim de apenas 4 GB. Pense em uma calculadora, por exemplo. Ou um editor de textos, ou mesmo um reprodutor de músicas. Não são uma boa boa justificativa para “reescrever” certos programas para usarem 64 bits.

...não se mexe MESMO em alguns casos

Mas há boas justificativas para não fazê-lo em alguns casos. É o caso de aplicações muito complexas que contam com diversos segmentos de código “legado” que funcionam perfeitamente, mas que podem quebrar a aplicação inteira. Vale o custo (e todas as possíveis consequências) substituir cada trecho legado? Em muitos casos a resposta é não.

Mesmo porque não haveria benefícios significativos. Seria como ter a fundação de uma casa em perfeito estado, mas com diversos trechos que não combinam com uma reforma posterior. Se algo está cumprindo a sua função e não causa externalidades negativas, não há motivo para alterar.

Resumidamente, temos programas 32 bits (e teremos ainda por um bom tempo) pois não há necessidade de substituí-los. E, em alguns casos, pode até ser algo negativo pelas possíveis incompatibilidades resultantes.

Fonte: How To Geek, Reddit, Universidade de Washington

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.