O ano 2038 pode fazer com que a maioria dos computadores modernos parem de funcionar se não nos prepararmos para isso. Isto não é por causa de algum vírus massivo ou hardware degradante, tem tudo a ver com a forma como os computadores acompanham o tempo.
Inicialmente cada computador mantém o tempo usando um processador de 32 bits, e conta para a frente a partir de 00:00:00 UTC no dia 1 de janeiro de 1970, referido como ‘a época’. Este ponto no tempo foi definido como o padrão para os sistemas de computação modernos, mas há um grande problema. Sete segundos após 3:14 UTC no dia 19 de janeiro de 2038, o sistema de 32 bits que armazena esse tempo em muitos computadores ficará sem posições.
O problema é similar ao problema do Y2K, onde um valor de 2 dígitos não poderia mais ser usado para codificar os anos 2000 ou mais tarde, mas é diferente, pois esse bug de 32 bits está relacionado a sistemas do tipo Unix e ao formato de tempo Unix.
Estas semelhanças com o bug Y2K levaram a que o problema de 2038 fosse conhecido como o Bug Millennium Unix.
O Bug Millennium Unix
Os processadores que executam software de 32 bits podem lidar com 232 valores diferentes ou 4.294.967.295 números diferentes dentro de 4GB de memória. Estes sistemas armazenam datas e horas em blocos de 32-bit. Na realidade, esse grande número de valores diferentes é reduzido pela metade para a manutenção do tempo e outras aplicações de armazenamento de dados. Isso deixa 2.147.483.647 valores positivos para armazenar dados.
Isso significa que a última vez que pode ser representada no código de tempo Unix de 32 bits é 231-1 ou 2.147.483.647 segundos após 1 de janeiro de 1970. Os tempos posteriores a este ponto serão enrolados e armazenados como números negativos. Isto é causado pelo sistema de armazenamento ficar sem números inteiros para modular, deixando apenas o sinal para mudar. Os computadores então interpretarão isso como o dia 13 de dezembro de 1901, e em seguida, em vez da data real.
Isso pode não soar como uma grande coisa, mas pense em todas as formas como usamos o software. Se você tem licenças que são timestampadas, você pode de repente perder o acesso a documentos de trabalho importantes, informações financeiras e mais.
Problemas não começarão a surgir apenas em 2038, qualquer software que use datas futuras precisará ser consertado em breve. Programas que funcionam com datas 20 anos no futuro, como fundos de investimento e programas de agendamento avançado, precisam ser corrigidos até 2018.
Tudo isso pode parecer uma simples correção, basta alterar a data final do método de armazenamento, mas não é tão simples assim. Os engenheiros de computação por trás dos jogos e aplicativos que têm períodos de espera já estão tendo problemas nas datas de codificação, depois de 19 de janeiro de 2038. Como o método de armazenamento é Unix de 32 bits, é impossível para estes programadores de terceiros codificar datas passadas desta vez.
RELACIONADO: 12 WEBSITES MAIS VELHOS DOS ANOS 1980 E 90S STILL ONLINE HOJE
>
Mas, e daí, você pode perguntar. As datas serão alteradas, os programadores já estão à espera destes problemas e qualquer potencial problema não causará pânico, eles apenas serão rapidamente corrigidos. Bem, isto não é exactamente verdade.
Sistemas de transporte, incluindo equipamento de voo e carros modernos, usam software incorporado que muitas vezes fica intocado. Quase tudo nos carros modernos é controlado pela sua ECU, ou computador de bordo, que usa o registo do tempo Unix para controlar datas e horas. Isto significa que este bug pode potencialmente interromper os sistemas de frenagem ABS, controles eletrônicos de estabilidade, controles de tração e sistemas GPS; todos eles podem ser significativamente impactados.
Todos estes sistemas não exigirão acesso a datas para rodar, mas alguns exigirão, e é difícil saber quais foram programados com código dependente de data.
Então, qual é a correção? Não há uma fácil.
Sistemas embutidos como os de automóveis e eletrodomésticos são projetados para durar todo o ciclo de vida do dispositivo sem uma atualização de software. A eletrônica conectada pode ser rapidamente corrigida com uma atualização de software quando chegar a hora, mas são os sistemas embarcados que provavelmente causarão mais estragos em 2038, já que a maioria não será atualizada.
Uma opção é mudar o sistema de armazenamento de dados do inteiro de 32 bits para um inteiro não assinado de 32 bits. Isso teoricamente permitiria o armazenamento de data até 2106, mas qualquer sistema que usasse uma data anterior a 1970 se depararia com problemas ao acessar esses dados.
Se o armazenamento de dados fosse aumentado para 64 bits, teríamos problemas de compatibilidade de armazenamento entre sistemas mais antigos que só usam armazenamento de dados de 32 bits.
Não há solução universal atual para o problema, e mesmo as correções mais amplamente aceitas ainda têm bugs em certas áreas de uso. No entanto, há notícias positivas no final disto.
A maior parte dos novos equipamentos eletrônicos foi projetada para usar o mais novo método de armazenamento de dados de 64 bits. Uma data inteira tão grande se estenderia 20 vezes mais que a idade atual estimada do universo, aproximadamente 292 bilhões de anos às 15:30:08 UTC de domingo, 4 de dezembro 292.277.026.596. Então seu iPhone pode estar seguro até lá.
Felizmente, esta questão é bem conhecida e tem sido estudada minuciosamente, o que significa que os engenheiros de computação irão provavelmente resolver os problemas, pelo menos com software que ainda está actualizado e mantido. No entanto, quanto a essa condição de hortelã de 1997 Prius sentado na sua garagem em 2038? Bem, você pode não ser capaz de conduzi-lo depois das 3:14 da manhã de janeiro de 2038, graças ao seu agora defeituoso computador de bordo.