UM EVENTO
INIMAGINÁVEL EM UMA CENTENA DE ANOS TALVEZ SEJA INEVITÁVEL EM UM MILHÃO DE
ANOS.
Anos-luz de evolução separam os chips Intel® Core™ atuais dos 286, 386 e 486 das décadas de
80/90. Raras vezes paramos para pensar nisso, mas, quando o fazemos, custa-nos
acreditar que os monstruosos mainframes
dos anos 1950 — que ocupavam prédios inteiros e tinham menos poder de
processamento que uma calculadora de bolso teria dali a 30 anos — diminuíram de
tamanho a ponto de ser levados no bolso, ao mesmo tempo em
que seus recursos cresceram em progressão geométrica.
O pool de sistemas usado
pela NASA na missão Apollo 11 dispunha de 64 KB de RAM e processador com
frequência de operação de 0,043 MHz.
Isso corresponde a uma ínfima fração da capacidade de executar cálculos de
qualquer smartphone xing-ling, e o que hoje é considerado "top de
linha", "última geração", "estado da arte" e que tais
não demora a se tornar "coisa do passado". E assim sucessivamente.
Existem processadores de diferentes tamanhos, capacidades e funcionalidades
desenvolvidos, mas a maioria deles opera de forma parecida. Os primeiros modelos,
de 16-bit, eram capazes de armazenar
e acessar valores até 216
(equivalente a 65.539 números
diferentes). As versões de 32-bit operam
com 232 (= 4.294.967.295), mas é preciso tem em
mente que essa capacidade é dividida de forma equânime para calcular o tempo e
armazenar informações dos aplicativos do computador. Em outras palavras, cada
uma das funções ocupa metade da capacidade do processador, razão pela qual um
modelo baseado na arquitetura de 32-bit
não é capaz de continuar contando o tempo depois que a contagem atinge 2.147.483.647 segundos . Já os
processadores modernos, que equipam a maioria dos computadores atuais, são
baseados no sistema de 64-bit, cujo
limite é bem maior: 264 (18.446.744.073.709.551.616).
O bit (forma
reduzida binary digit) é a menor unidade de informação que o processador
é capaz de manipular, e pode representar apenas dois estados opostos —
fechado/aberto, desligado/ligado, falso/verdadeiro, etc. ―, que, por convenção, são expressos pelos
algarismos 0 e 1. Para economizar
tempo e espaço, não vou descer a detalhes
sobre esse assunto; quem quiser saber mais a respeito pode clicar aqui para acessar uma abordagem
detalhada, mas em linguagem palatável.
Computadores fazem cálculos monstruosos usando o código
binário, o que nos causa certa estranheza porque estamos habituados a usar a
base decimal. Mas é possível escrever qualquer número inteiro usando a base
binária, considerando que cada 1 ou 0 se refere a uma potência de 2 — o
primeiro, a 20; o segundo, a 21,
e assim por diante. O computador "vê" uma sequência de dígitos,
multiplica cada potência de 2 (da esquerda para direita) por 0 ou 1 e chega a um número. A sequência 10, por exemplo, tem dois bits e
equivale a 0x20 + 1x21. A sequência 111 tem
três bits e equivale a 1x20 +
1x21 + 1x22. A sequência de 4 bits 1001 equivale
ao número 9 (1x20 + 0x21 + 0x22 +
1x23), e assim por diante.
No que tange aos microchips (ou microprocessadores), os
termos 32-bit e 64-bit se referem ao tamanho do registro — ou seja, do "mapa" onde o processador distribui
os "endereços" dos dados de que precisa para operar. Como todos esses
endereços apontam para a RAM —
memória física do computador, onde tudo, do sistema operacional a um
simples arquivo de texto, é carregado e processado —, CPUs de 32-bit, que só conseguem operar com 232 (ou 4.294.967.295 endereços diferentes),
são incapazes de "enxergar" mais que 4 GB de RAM, independentemente da quantidade de memória fisicamente
instalada na máquina
Chips de 64-bit operam
com 264, sendo capazes de
mapear mais de 17 bilhões de endereços na
RAM e acessá-los de maneira mais rápida e eficiente. Vale lembrar, porém, que é
o sistema operacional quem "diz ao computador como utilizar seus
componentes", e um chip de 64-bit
só exibirá todo seu poder de fogo se o sistema também for de 64-bit. Mas tenha em emente que um chip
64-bit suporta sistemas operacionais
de 32-bit (embora não funcione em
plena capacidade), mas chips 32-bit não
suportam sistemas operacionais 64-bit;
que apps de 64-bit só funcionarão se
tanto o processador quanto o sistema
forem de 64-bit, embora não haja problema algum em instalar aplicativos de 32-bit em máquinas com sistema
operacional e processador 64-bit.
Observação: A Microsoft
oferece versões de 64-bit do Windows desde a edição XP. Para saber se o seu sistema é de 32 ou 64-bits, dê um clique direito no botão Iniciar, clique em Sistema
e, em Especificações do dispositivo,
veja a resposta em Tipo de Sistema.
Para obter informações adicionais sobre o
processador e a configuração de hardware, baixe e instale o freeware CpuZ.
Voltando ao bug de 2038, desta vez o xis da questão é a capacidade limitada dos processadores de 32-bit de contar o tempo em segundos — um problema bem mais fácil de resolver que o do bug do milênio, como vermos mais adiante.
Voltando ao bug de 2038, desta vez o xis da questão é a capacidade limitada dos processadores de 32-bit de contar o tempo em segundos — um problema bem mais fácil de resolver que o do bug do milênio, como vermos mais adiante.
Considerando que computadores medem o tempo desde 1º de
janeiro de 1970, às 3 horas, 14 minutos e 7 segundos de 19 de janeiro de 2038
eles chegarão ao limite de 2.147.483.647 segundos, e deverão parar de computar
os segundos seguintes. Para continuar a contagem, os valores começarão a ser
armazenados em uma contagem negativa, de -2.147.483.647 até zero, mas a maioria
dos sistemas não conseguirá fazer isso e então simplesmente vai parar de
funcionar ou, no melhor dos cenários, continuar funcionando, só que com a data
incorreta.
Pare evitar que isso aconteça, a adequação dos dispositivos
deverá ser feita até 2038. A maioria dos processadores comercializados
atualmente é de 64-bit e o Windows dispõe de versões de 64-bit desde o início deste século. Muitos
sistemas usados na operação de servidores (como o Unix) ainda são baseados na arquitetura de 32-bit, mas a lógica é que eles sejam substituídos nos próximos 19
anos. As máquinas que podem causar mais problemas são os chamados “sistemas
embarcados”, que são usados em sistemas de transporte e outros aparelhos que
devem ter longa durabilidade, como estabilizador de controle em carros, por
exemplo. A principal preocupação deve ser com sistemas vitais para a
infraestrutura, mas espera-se que os 19 anos que faltam sejam tempo suficiente
para administradores e governantes se planejarem.