Header Ads

Qual foi o bug do ano 2000 e por que aterrorizou o mundo?

Vladimir Sukhachev / Shutterstock

Bilhões de dólares foram gastos na correção do bug do ano 2000. Os sistemas governamentais, militares e corporativos estavam todos em risco, mas conseguimos passar, mais ou menos, ilesos. Então, a ameaça foi mesmo real?

Como plantamos nossa própria bomba-relógio

Nos anos 50 e 60, representando anos com dois dígitos se tornou a norma. Uma razão para isso foi economizar espaço. Os computadores mais antigos tinham pequenas capacidades de armazenamento e apenas uma fração da RAM das máquinas modernas. Os programas tinham que ser o mais compactos e eficientes possível. Os programas foram lidos a partir de cartões perfurados, que tinham uma largura finita óbvia (normalmente, 80 colunas). Você não pode digitar além do final da linha em um cartão perfurado.

Onde quer que fosse possível economizar espaço, estava. Um truque fácil e, portanto, comum era armazenar os valores do ano como dois dígitos. Por exemplo, alguém digitaria 66 em vez de 1966. Como o software tratava todas as datas como ocorrendo no século 20, entendeu-se que 66 significava 1966.

Eventualmente, os recursos de hardware melhoraram. Processadores mais rápidos, mais RAM e terminais de computador substituíram cartões e fitas perfurados. Mídias magnéticas, como fitas e discos rígidos, foram usadas para armazenar dados e programas. No entanto, a essa altura, havia um grande corpo de dados existentes.

A tecnologia de computadores estava avançando, mas as funções dos departamentos que usavam esses sistemas permaneciam as mesmas. Mesmo quando o software foi renovado ou substituído, o formato dos dados permaneceu inalterado. O software continuou a usar e espera anos de dois dígitos. À medida que mais dados foram acumulados, o problema foi agravado. O corpo dos dados era enorme em alguns casos.

Transformar o formato de dados em uma vaca sagrada foi outro motivo. Todos os novos softwares tiveram que procurar nos dados, que nunca foram convertidos para usar anos de quatro dígitos.

As limitações de armazenamento e memória também surgem nos sistemas contemporâneos. Por exemplo, sistemas embarcados, como firmware em roteadores e firewalls, são obviamente limitados por limitações de espaço.

Controladores lógicos programáveis ​​(PLCs), máquinas automatizadas, linhas de produção robóticas e sistemas de controle industrial foram programados para usar uma representação de dados o mais compacta possível.

Recortar quatro dígitos até dois é uma economia de espaço - é uma maneira rápida de reduzir pela metade seus requisitos de armazenamento. Além disso, quanto mais datas você tiver, maior será o benefício.

A pegadinha eventual

gazanfer / Shutterstock

Se você usar apenas dois dígitos para os valores do ano, não poderá diferenciar datas em séculos diferentes. O software foi escrito para tratar todas as datas como se fossem no século XX. Isso dá resultados falsos quando você atinge o próximo século. O ano de 2000 seria armazenado como 00. Portanto, o programa o interpretaria como 1900, 2015 seria tratado como 1915 e assim por diante.

No início da meia-noite de 31 de dezembro de 1999, todos os computadores e dispositivos com microprocessadores e softwares incorporados que armazenavam e processavam datas com dois dígitos enfrentariam esse problema. Talvez o software aceite a data errada e continue, produzindo lixo. Ou talvez isso gerasse um erro e continuasse — ou sufocasse completamente e travasse.

Isso não se aplicava apenas a mainframes, minicomputadores, redes e desktops. Microprocessadores operavam em aeronaves, fábricas, usinas de energia, sistemas de controle de mísseis e satélites de comunicação. Praticamente tudo o que foi automatizado, eletrônico ou configurável tinha algum código. A escala da questão foi monumental.

O que aconteceria se todos esses sistemas passassem de 1999 um segundo para 1900 no próximo?

Normalmente, alguns quartos previam o fim dos dias e a queda da sociedade. Em cenas que ressoam com muitos na pandemia atual, alguns foram levados ao estoque de suprimentos essenciais. Outros chamavam a coisa toda de brincadeira, mas, inegavelmente, era uma grande notícia. Tornou-se conhecido como o 'milênio', ” "Ano 2000," ” e & Y2K ” bug.

Havia outras preocupações secundárias. O ano de 2000 foi um ano bissexto, e muitos computadores - mesmo os sistemas mais experientes do ano bissexto - não levaram isso em consideração. Se um ano é divisível por quatro, é um ano bissexto; se é divisível por 100, não é.

De acordo com outra regra (não tão conhecida), se um ano é divisível por 400, é um ano bissexto. Grande parte do software que havia sido escrito não aplicou a última regra. Portanto, ele não reconheceria o ano 2000 como um ano bissexto. Como resultado, o desempenho em 29 de fevereiro de 2000 era imprevisível.

No Estado da União de 1999 do presidente Bill Clinton, ele disse:

“ Precisamos que todos os governos estaduais e locais, todas as empresas, grandes e pequenas, trabalhem conosco para garantir que [o] bug do computador Y2K seja lembrado como a última dor de cabeça do século 20 , não a primeira crise do século 21. ”

Em outubro anterior, Clinton havia assinado o ato de divulgação de informações e prontidão para o ano 2000.

Isso levará algum tempo

Muito antes de 1999, governos e empresas em todo o mundo estavam trabalhando duro para encontrar correções e implementar soluções alternativas para o Y2K.

No começo, parecia que a solução mais simples era expandir o campo de data ou ano para conter mais dois dígitos, adicionar 1900 ao valor de cada ano e ta-da! Você tinha anos de quatro dígitos. Seus dados antigos seriam preservados corretamente e os novos seriam inseridos de maneira adequada.

Infelizmente, em muitos casos, essa solução não era possível devido ao custo, ao risco percebido dos dados e ao tamanho da tarefa. Sempre que possível, era a melhor coisa a fazer. Seus sistemas estariam com data segura até 9999.

Claro, isso apenas corrigiu os dados. O software também teve que ser convertido para manipular, calcular, armazenar e exibir anos de quatro dígitos. Apareceram algumas soluções criativas que removeram a necessidade de aumentar o armazenamento por anos. Os valores do mês não podem ser maiores que 12, mas dois dígitos podem conter valores até 99. Portanto, você pode usar o valor do mês como um sinalizador.

Você pode adotar um esquema como o seguinte:

  • Por um mês entre 1 e 12, adicione 1900 ao valor do ano.
  • Por um mês entre 41 e 52, adicione 2000 ao valor do ano e subtraia 40 do mês .
  • Por um mês entre 21 e 32, adicione 1800 ao valor do ano e subtraia 20 do mês.

Você precisou modificar os programas para codificar e decodificar as datas um pouco ofuscadas, é claro. A lógica nas rotinas de verificação de dados também teve que ser ajustada para aceitar valores malucos (como 44 por um mês). Outros esquemas usaram variações dessa abordagem. Codificar as datas como números binários de 14 bits e armazenar as representações inteiras nos campos de data foram uma abordagem semelhante no nível de bit.

Outro sistema que reformulou os seis dígitos usados ​​para armazenar datas dispensadas por meses inteiramente. Em vez de armazenar MMDDYY, eles trocaram para um formato DDDCYY:

  • DDD: o dia do ano (1 a 365, ou 366 para os anos bissextos).
  • C: Uma bandeira representando o século.
  • AA: ano.

As soluções alternativas também eram abundantes. Um método era escolher um ano como ano pivô. Se todos os seus dados existentes fossem mais recentes que 1921, você poderia usar 1920 como o ano central. Todas as datas entre 00 e 20 foram consideradas entre 2000 e 2020. Entre 21 e 99, entre 1921 e 1999.

Essas eram correções de curto prazo, é claro. Você comprou algumas décadas para implementar uma correção real ou migrar para um sistema mais novo.

Revisitar os sistemas em funcionamento para atualizar as correções antigas que ainda estão em execução? Okay, certo! Infelizmente, a sociedade não faz muito isso - basta olhar para todos os aplicativos COBOL que ainda são amplamente utilizados.

RELACIONADO: O que é COBOL e por que tantas instituições confiam nele?

compatível com Y2K? Prove!

Consertar sistemas internos era uma coisa. Corrigir o código e depois distribuir patches para todos os dispositivos do cliente no campo era outro, inteiramente. E as ferramentas de desenvolvimento de software, como bibliotecas de software? Eles colocaram em risco o seu produto? Você usou parceiros ou fornecedores de desenvolvimento para parte do código do seu produto? O código deles era seguro e compatível com o Y2K? Quem foi responsável se um cliente ou cliente tivesse um problema?

As empresas se viram no meio de uma tempestade de papelada. As empresas estavam se questionando solicitando declarações de conformidade legalmente vinculativas de fornecedores de software e parceiros de desenvolvimento. Eles queriam ver seu plano abrangente de preparação para o Y2K e os relatórios de revisão e correção de código do Y2K específicos do sistema.

Eles também queriam uma declaração para verificar se seu código era seguro para o ano 2000 e que, caso algo ruim acontecesse em ou após 1º de janeiro de 2000, você aceitaria a responsabilidade e eles seriam absolvidos.

Em 1999, eu trabalhava como gerente de desenvolvimento de uma casa de software no Reino Unido. Fabricamos produtos que se relacionavam com os sistemas telefônicos comerciais. Nossos produtos, desde que os call centers profissionais de tratamento automático de chamadas confiem diariamente. Nossos clientes foram grandes players nesse campo, incluindo BT, Nortel e Avaya. Eles estavam revendendo nossos produtos reformulados para um número incontável de clientes em todo o mundo.

Nas costas desses gigantes, nosso software estava sendo executado em 97 países diferentes. Devido a diferentes fusos horários, o software também passava da meia-noite na véspera do Ano Novo de 1999, mais de 30 vezes!

Escusado será dizer que esses líderes de mercado estavam se sentindo um pouco expostos. Eles queriam evidências concretas de que nosso código era compatível. Eles também queriam saber que a metodologia de nossas revisões de código e suítes de testes era boa e que os resultados dos testes eram repetíveis. Passamos pelo mangle, mas passamos por ele com um atestado de saúde. Obviamente, lidar com tudo isso levou tempo e dinheiro. Mesmo que nosso código fosse compatível, tivemos que suportar o impacto financeiro de prová-lo.

Ainda assim, saímos mais leves que a maioria. O custo global total da preparação do Y2K foi estimado entre US $ 300 e US $ 600 bilhões pela Gartner e US $ 825 bilhões pela Capgemini. Somente os EUA gastaram mais de US $ 100 bilhões. Também foi calculado que milhares de homens-ano foram dedicados ao tratamento do bug do Y2K.

O milênio amanhece

Lukas Gojda / Shutterstock

Não há nada como colocar seu dinheiro onde está sua boca. Na véspera de Ano Novo de 1999, John Koskinen, presidente do Conselho do Presidente na conversão do ano 2000, embarcou em um voo que ainda estaria no ar à meia-noite. Koskinen queria demonstrar ao público sua fé na remediação de vários anos imensamente cara necessária para preparar o milênio dos EUA. Ele aterrissou em segurança.

É fácil para os não-técnicos olharem para trás e pensarem que o bug do milênio foi exagerado, exagerado e apenas uma maneira de as pessoas ganharem dinheiro. Nada aconteceu, certo? Então, qual foi o barulho?

Imagine que há uma represa nas montanhas, segurando um lago. Abaixo é uma vila. Um pastor anuncia à aldeia que ele viu rachaduras na represa e não vai durar mais de um ano. Um plano é elaborado e o trabalho começa a estabilizar a barragem. Finalmente, o trabalho de construção está concluído e a data prevista da falha passa sem incidentes.

Alguns moradores podem começar a murmurar, eles sabiam que não havia nada com o que se preocupar e, veja, nada aconteceu. É como se eles tivessem um ponto cego no momento em que a ameaça foi identificada, tratada e eliminada.

O equivalente a Y2K do pastor era Peter de Jager, o homem que levou o assunto à consciência pública em um artigo de 1993 da revista Computerworld. Ele continuou a fazer campanha até ser levado a sério.

Quando o novo milênio começou, De Jager também estava a caminho de um vôo de Chicago para Londres. E também, assim como o voo de Koskinen, o de Jager chegou em segurança e sem incidentes.

O que aconteceu?

Apesar dos esforços hercúlicos para impedir o Y2K de afetar os sistemas de computadores, houve casos que escaparam pela rede. A situação em que o mundo se encontraria sem rede seria impensável.

Os aviões não caíram do céu e os mísseis nucleares não se lançaram, apesar das previsões dos vendedores de condenações. Embora o pessoal de uma estação de rastreamento dos EUA tenha ficado um pouco frustrado ao observar o lançamento de três mísseis da Rússia.

No entanto, foi um lançamento ordenado por humanos de três mísseis SCUD, enquanto a disputa russo-chechena continuava a aumentar. No entanto, isso elevou as sobrancelhas e os batimentos cardíacos.

Aqui estão alguns outros incidentes que ocorreram:

  • Duas usinas nucleares no Japão desenvolveram falhas que foram rapidamente resolvidas. As falhas foram descritas como menores e não ameaçadoras.
  • A idade do primeiro bebê nascido no novo milênio na Dinamarca foi registrada como 100.
  • As passagens de ônibus na Austrália foram impressas com a letra errada. data e rejeitada pelo hardware de verificação de tickets.
  • O serviço nacional de notícias do Egito falhou, mas foi restabelecido rapidamente.
  • US satélites de espionagem foram retirados do ar por três dias devido a um patch defeituoso para corrigir o bug do ano 2000.
  • Foi apresentado um homem que retornava uma cópia da Filha do General a uma loja de vídeo em Nova York com uma fatura de US $ 91.250 por devolver a fita 100 anos atrasada.
  • Vários meses nos anos 2000, uma autoridade de saúde de uma região da Inglaterra detectou uma anomalia estatística no número de crianças nascidas com a síndrome de Down. As idades de 154 mães foram calculadas incorretamente em janeiro, distorcendo os resultados dos testes. A idade dessas mulheres as colocou em um grupo de alto risco, mas não foi detectado. Se os riscos tivessem sido identificados corretamente, as mães receberiam um teste de amniocentese. Quatro crianças nasceram com síndrome de Down e duas gestações foram encerradas.

O legado: 20 anos depois

Lembra dos anos que mencionamos? Eles foram a solução alternativa que comprou pessoas e empresas algumas décadas para dar uma correção real ao Y2K. Existem alguns sistemas que ainda contam com essa correção temporária e ainda estão em serviço. Já vimos algumas falhas em serviço.

No início deste ano, os parquímetros em Nova York deixaram de aceitar pagamentos com cartão de crédito. Isso foi atribuído ao fato de atingirem os limites superiores do ano em que estavam no pivô. Todos os 14.000 parquímetros tiveram que ser visitados e atualizados individualmente.

Em outras palavras, a grande bomba-relógio gerou muitas bombas-relógio.

Via: How to Geek

Nenhum comentário