Busca
Facebook Aventuras na HistóriaTwitter Aventuras na HistóriaInstagram Aventuras na HistóriaYoutube Aventuras na HistóriaTiktok Aventuras na HistóriaSpotify Aventuras na História
Matérias / Bug do milênio

Y2K38: O novo bug do milênio que levará computadores de volta para dezembro de 1901

Na virada para o ano 2000, bug em computadores que poderia ter colapsado o mercado foi resolvido; mas erro em aparelhos modernos pode causar problemas em breve

Pamela Malva Publicado em 14/01/2020, às 18h00 - Atualizado em 28/12/2023, às 12h44

WhatsAppFacebookTwitterFlipboardGmail
Imagem meramente ilustrativa de erro de sistema - Getty Images
Imagem meramente ilustrativa de erro de sistema - Getty Images

Pouco antes da virada entre os anos 1999 e 2000, as pessoas estavam ansiosas e curiosas para um novo ciclo, afinal, um novo milênio e uma nova década começariam. Programadores, bancários e engenheiros computacionais, no entanto, não estavam tão felizes assim.

Para falar a verdade, eles estavam quase entrando em desespero por culpa do Bug Y2K, o bug do milênio. Era inevitável: quando os relógios dos computadores começassem a contagem do novo ano, todos os sistemas voltariam ao ano de 1900.

Isso aconteceria porque, naquela época, a contagem na linguagem COBOL não reconheceria um novo milênio e retornaria para a última virada conhecida: a de 100 anos antes. No mercado, isso significava boletos atrasados, clientes de banco aparecendo como devedores e juros altíssimos.

Claro, naquele momento, tudo foi resolvido. Mas, agora, outro bug e suas consequências aterrorizam programadores e engenheiros atuais. Uma falha muito parecida em computadores modernos pode causar o mesmo erro no dia 19 de janeiro de 2038.

O novo Bug do Milênio

O novo bug, conhecido como Y2K38, em referência ao primeiro, pode acontecer porque os sistemas que temos hoje, com a representação de tempo em POSIX, funcionam de um jeito específico. Eles contam o número de segundos a partir do dia 1 de janeiro de 1970, ao meio-dia.

Esse padrão de cálculo, presentes em softwares desenvolvidos na linguagem C, está presente na maioria dos sistemas atuais. Por isso, o bug pode afetar uma grande parte dos computadores em atuação no ano de 2038.

Tais sistemas, em linguagem C, usam o padrão de 4 bytes e reconhecem um número máximo positivo (de 2.147.483.64, ou 19 de janeiro de 2038). A partir dessa data, o tempo será armazenado em números negativos, o que jogará todos os sistemas de volta em 13 de dezembro de 1901 (uma sexta-feira 13).

Imagem ilustrativa de erro de sistema / Crédito: Getty Images

Assim como tudo foi resolvido nos anos 2000 e o bug, de fato, não foi tão devastador como prometia, soluções podem ser feitas no futuro para que o Bug Y2K38 não nos afete. Em sistemas bem escritos, por exemplo, é só programá-los para uma nova versão, com valores de 8 bytes ao invés de 4 bytes.

Muitas empresas de softwares, no entanto, já se protegeram contra possíveis bugs. No caso do Windows NT, que utiliza 64 bits e a contagem iniciou-se em 1 de janeiro de 1601, um bug só deve acontecer em 2184.

Em computadores com a contagem iniciada em 1 de janeiro de 1980, por exemplo, mesmo que usem 32 bits, o bug é esperado apenas em 2116. Muito mais a frente, a Apple alega que já se muniu de sistemas inteligentes o suficiente para que um problema assim aconteça apenas no ano de 29.940, permitindo muito tempo de descanso para seus programadores.