À medida que se aproximava a meia-noite do dia 31 de dezembro de 1999, o mundo esperava ansiosamente, não só pela mudança de milénio, mas também pelo que poderia acontecer a muitos sistemas informáticos globais.
Esta transição não era apenas um motivo de festa; estava envolta em apreensão devido ao bug do milénio - uma potencial ameaça que prometia o caos.
Mas o que é um bug?
Um bug é um erro informático que acontece na programação. Se criarmos um programa e acontecer algo inesperado para o qual não planeámos solução, chamamos a isso um bug.
Este erro, abreviado como Y2K (Year 2000 – Ano 2000), teve origem na disseminação do uso de representações de datas de dois dígitos em sistemas computacionais. Muitos sistemas, programados para otimizar o espaço de memória, utilizavam apenas os dois últimos dígitos do ano, presumindo que os dois primeiros seriam sempre “19”. Por exemplo, 1980 seria registado como “80” pois assumimos que os dois primeiros dígitos serão sempre “19”.Com a mudança do calendário para o ano 2000, esses sistemas confrontavam-se com a possibilidade de interpretar erroneamente a data “00” como 1900, potencialmente resultando em consequências imprevisíveis e desastrosas.
A ansiedade era alimentada pela ubiquidade da tecnologia informática em quase todos os aspetos da vida moderna. Desde o setor financeiro até à saúde, praticamente todas as indústrias dependiam dos computadores para um funcionamento eficaz. O receio era que o bug Y2K pudesse desencadear falhas provocando corrupção de dados, instabilidade financeira e colocando em risco infraestruturas críticas. Inúmeras preparações foram levadas a cabo por governos, empresas e indivíduos em todo o mundo.
Milhões de programas foram meticulosamente revistos e ajustados, sistemas foram submetidos a testes rigorosos e foram elaborados planos de contingência para atenuar as potenciais consequências do bug do milénio. Este esforço global, que envolveu milhares de milhões de dólares e incontáveis horas de trabalho, visava garantir uma transição tranquila para o século XXI.
À medida que nos aproximávamos da meia-noite, a ansiedade atingia o seu pico. O mundo acordaria para um apocalipse tecnológico, ou revelar-se-ia o bug do milénio uma preocupação infundada?
Ainda na madrugada das primeiras horas de 2000, com os fogos de artifício a iluminar o céu noturno, observaram-se coletivos suspiros de alívio dos programadores em cada fuso horário, rapidamente percebendo que os seus esforços tinham funcionado. Tornou-se claro que as preparações meticulosas tiveram êxito - as principais perturbações foram evitadas e o Bug Y2K não se materializou no cenário apocalíptico que muitos temiam.
Este incidente serve como um testemunho da capacidade da humanidade para unir esforços, reconhecer uma ameaça potencial e tomar medidas coletivas para prevenir desastres. No entanto, ao refletirmos 24 anos após o bug do milénio, somos levados a considerar a possibilidade de desafios semelhantes num horizonte próximo, como a iminente ameaça do bug de 2038.
Atualmente, existem várias formas de os computadores representarem o tempo, cada uma com as suas vantagens, desvantagens e objetivos diferentes.
Um destes sistemas é o usado, originalmente, pelo sistema operativo Unix, assim como em vários outros sistemas operativos, algumas linguagens de programação, bases de dados, e mais. No entanto, este sistema tem um problema. Como o nome sugere, esta forma de representação do tempo foi criada para ser utilizada pelo sistema operativo AT&T Unix, desenvolvido por volta de 1970. Por isso, escolheu-se a meia-noite de 1 de janeiro de 1970 como referência, e representa-se o tempo contando o número de segundos que passaram desde então. O problema está na forma como os computadores representam esse número: em binário. Todos conhecemos o sistema de contagem decimal, em que existem dez dígitos, de 0 a 9. No entanto, no sistema binário, usado pelos computadores, existem apenas dois dígitos, chamados bits: 0 e 1. Através de sequências de bits, os computadores podem representar números maiores, como neste caso, em que são usados 32 bits de forma a poder representar um número inteiro entre -2.147.483.648 e 2.147.483.647. O problema é que, no dia 16 de janeiro de 2038, ao ultrapassar o limite superior, este número passará a contar desde o limite inferior: 13 de dezembro de 1901. Felizmente, a solução deste problema é simples: basta aumentar o número de bits para 64. No entanto, a sua aplicação não será tão fácil. Atualmente existem muitos mais computadores do que no ano 2000, e são cada vez mais essenciais às nossas vidas e o tamanho da infraestrutura que os suporta dificulta a resolução do problema. Existem muitos computadores e software que estão desatualizados há anos, e terão problemas se continuarem assim.Ainda faltam muitos anos até 2038, mas será que estamos preparados, ou será que este problema será negligenciado até à hora final, provocando consequências desastrosas?
Do Y2K a 2038:
A ameaça contínua dos bugs temporais
Por: António Bento e Duarte Coelho