Matérias » Bizarro

Bug do Milênio: o episódio que levará os computadores de volta para dezembro de 1901

Ainda que muitos sistemas já estejam preparados, a grande maioria dos aparelhos modernos pode ser afetada pelo erro em 2038

Pamela Malva Publicado em 14/01/2020, às 18h00

Imagem meramente ilustrativa de erro de sistema
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 arrancando os cabelos 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ó programa-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 teve início 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.


+Saiba mais sobre o tema através dos livros abaixo

O Bug Do Milênio, de Godo R. Goemann Jr. (1999) - https://amzn.to/382C6vh

História da computação, de Raul Wazlawick (2016) - https://amzn.to/35UNp76

Introdução à computação, de André C. P. L. F. de Carvalho e Ana Carolina Lorena (2016) - https://amzn.to/2tUym01

Conceitos de Linguagens de Programação, de Robert W. Sebesta (2018) - https://amzn.to/30m2n5d

Vale lembrar que os preços e a quantidade disponível dos produtos condizem com os da data da publicação deste post. Além disso, assinantes Amazon Prime recebem os produtos com mais rapidez e frete grátis, e a revista Aventuras na História pode ganhar uma parcela das vendas ou outro tipo de compensação pelos links nesta página.