Muito se falou do " bug do milênio " no final dos anos 1990. Alguns previam cenários até de mísseis nucleares sendo lançados autom...
Muito se falou do "bug do milênio" no final dos anos 1990. Alguns previam cenários até de mísseis nucleares sendo lançados automaticamente, o que desencadearia uma guerra nuclear de proporções apocalípticas.
O bug seria causado pela utilização de apenas dois dígitos para o ano nas variáveis de data o que traria conseqüências imprevisíveis para os softwares de muitas aplicações críticas. No SERPRO, em Brasília, ficamos de prontidão na passagem do ano de 1999 para 2000, após termos consertado e testado aplicativos dentro de um cronograma de preparação para o "bug do ano 2000".
No day-after o mundo continuava lá (o homem e a tecnologia vão acabar conseguindo aniquilar com tudo) e eu fui comprar um pão no Supermercado Super Maia em Valparaíso de Goiás. Foi quando verifiquei que a data de validade deixava uma mensagem clara que o bug do milênio passara por lá: "válido até 2010" (estou guardando um pão duro com bolor verde até hoje para processar o supermercado e mostrar que alguém perdeu dinheiro com o bug do milênio. Brincadeirinha!)
Para mim esse bug foi o maior em termos de abrangência, embora tenha havido poucos problemas noticiados o que, alguns defendem, foi devido a uma supervalorização do problema, (muitos dizem que este não foi um bug, e sim uma feature dos sistemas pré-século XXI) o que deu uma valorizada nos programadores de COBOL à época.
O primeiro bug, com essa alcunha, foi registrado em 1945 quando a cientista Grace Brewster descobriu que uma falha no computador Mark II fora causado por uma mariposa.
O inseto foi removido e fechado no livro de registros de ocorrências do projeto com o dizeres: "Primeiro caso real de bug encontrado". Passados mais de 60 anos e os erros de computadores não dão sinais de esmorecerem.
A seguir uma lista cronológica de erros compilados pela revista eletrônica Wired, traduzido pelo site MDig:
28 de Julho de 1962
Falha na sonda Mariner 1
Um bug no software de vôo da sonda Mariner 1 provocou que, segundos após o lançamento da nave, esta se desviasse de seu curso pré-establecido. Os responsáveis da missão foram obrigados a destruir o foguete quando se encontrava sobrevoando o Atlântico.
A investigação do acidente determinou que o problema estava numa fórmula escrita a lápis que depois foi "inadequadamente" digitada no computador de cálculo, o que fez que o foguete calculasse mal a trajetória que devia seguir.
1982
Explosão em um gasoduto soviético
A maior explosão já registrada na Terra, de causas não nucleares, teve sua origem numa falha de programação. Supostamente, agentes da CIA infiltraram um bug num sistema de informática Canadense adquirido pelos soviéticos para controlar o gaseoduto Transiberiano. Seguiam ordens de Ronald Reagan, que tinha mandado seus agentes sabotar toda a tecnologia russa, colocando artefatos que permitissem manipular a distância todo tipo de máquinas e tecnologia. Assim, em 1982 a CIA decidiu sabotar este gasoduto, mas ao ativar o bug as coisas saíram muito diferente do esperado provocando a gigantesca explosão.
1985-1987
Acelerador médico Therac-25
O Therac-25 era um acelerador linear empregado nos hospitais na década de 80 para tratar tumores. A máquina emitia radiação de alta energia sobre células cancerosas sem causar dano ao tecido circundante. Os funcionários, com o tempo e a prática, conseguiam grande velocidade digitando a sequência de comandos para iniciar um tratamento. Mas devido a uma falha de programação, durante um processo onde efetuavam estas correções, a máquina emitia 100 vezes mais energia do que a requerida. Em consequência deste bug morreram ao menos cinco pacientes e várias dezenas sofreram os efeitos de ficarem expostos a uma elevada radiação, inclusive os próprios funcionários.
1988
O Worm de Morris
O primeiro vírus da Internet nasceu na tarde de 2 de novembro de 1988, quando um estudante norte-americado, Tappan Morris, liberou um programa criado por ele mesmo que infectou entre 2.000 e 6.000 computadores só no primeiro dia, antes se ser rastreado e eliminado. Para que seu vírus tivesse efeito, Morris descobriu dois erros no sistema operacional UNIX, que lhe permitiram ter acesso não autorizado a milhares de computadores.
1988-1996
Gerador de números aleatórios de Kerberos
Os autores do sistema de geração de números aleatórios Kerberos que são utilizados para fazer comunicações seguras através da Rede falharam à hora de conseguir que seu programa realmente escolhesse os números aleatoriamente. Devido a essa falha, durante oito anos foi possível entrar em qualquer computador que utilizasse o sistema Kerberos para autentificação, ainda que realmente se desconhece se o bug chegou a ser aproveitado por alguém.
15 de Janeiro de 1990
Queda da rede de AT&T
Um bug no software que controlava os comutadores dos telefonemas de longa distância da gigante da telefonia ATT fazia que derrubasse a chamada no comutador vizinho quando recebiam uma determinada mensagem. Por essa falha, o comutador da cidade de Nova York derrubou outras centenas de comutadores causando um caos na telefonia daquele país.
1993
Divisão de números com ponto flutuante no Pentium
Um problema com os microprocesadores provocou uma falha na divisão de números com ponto flutuante. Por exemplo, ao dividir 4195835,0 por 3145727,0 o resultado apresentado pelo microprocesador era 1,33374 ao invés de 1,33382, um erro de 0.006%. Ainda que a falha afetava a poucos usuários, resultou todo um problema para a Intel, que viu-se obrigada a trocar entre três e cinco milhões de chips, numa operação que lhe custou mais de meio bilhão de dólares.
1995/1996
O Ping da Morte
Devido a um problema que afetava o código que maneja o protocolo IP, era possível "capturar" um computador com Windows lhe enviando um ping corrupto. O problema afetava vários sistemas operacionais mas o pior caso era, lógico, com o Windows, que travava e mostrava a famosa "tela azul".
4 de Junho de 1996
Desintegração do Ariane 5
Os cientistas que desenvolveram o foguete Ariane 5, vôo 501, reutilizaram parte do código de seu predecessor, o Ariane 4, mas os motores do novo foguete incorporavam também, sem que ninguém desse conta, um bug numa rotina aritmética no computador de vôo que falhou segundos após a decolagem do foguete; em decorrência, meio segundo depois o computador principal da missão também apresentou problemas. O Ariane 5 desintegrou-se 40 segundos após o lançamento.
Novembro 2000
Sobredosagem radiológica no Instituto Nacional do Cancro da Cidade do Panamá
Numa série de acidentes, falhas e verdadeiras trapalhadas em seqüência, os engenheiros da empresa Multidata Systems International calcularam erroneamente a dose de radiação que um paciente deveria receber durante a terapia de radiologia. A falha estava no software de controle da máquina de raios, que provocou que ao menos oito pacientes morressem pelas altas doses recebidas e outros 20 recebessem sobredosagens que poderiam causar graves danos a sua saúde.
O bug seria causado pela utilização de apenas dois dígitos para o ano nas variáveis de data o que traria conseqüências imprevisíveis para os softwares de muitas aplicações críticas. No SERPRO, em Brasília, ficamos de prontidão na passagem do ano de 1999 para 2000, após termos consertado e testado aplicativos dentro de um cronograma de preparação para o "bug do ano 2000".
No day-after o mundo continuava lá (o homem e a tecnologia vão acabar conseguindo aniquilar com tudo) e eu fui comprar um pão no Supermercado Super Maia em Valparaíso de Goiás. Foi quando verifiquei que a data de validade deixava uma mensagem clara que o bug do milênio passara por lá: "válido até 2010" (estou guardando um pão duro com bolor verde até hoje para processar o supermercado e mostrar que alguém perdeu dinheiro com o bug do milênio. Brincadeirinha!)
Para mim esse bug foi o maior em termos de abrangência, embora tenha havido poucos problemas noticiados o que, alguns defendem, foi devido a uma supervalorização do problema, (muitos dizem que este não foi um bug, e sim uma feature dos sistemas pré-século XXI) o que deu uma valorizada nos programadores de COBOL à época.
O primeiro bug, com essa alcunha, foi registrado em 1945 quando a cientista Grace Brewster descobriu que uma falha no computador Mark II fora causado por uma mariposa.
O inseto foi removido e fechado no livro de registros de ocorrências do projeto com o dizeres: "Primeiro caso real de bug encontrado". Passados mais de 60 anos e os erros de computadores não dão sinais de esmorecerem.
A seguir uma lista cronológica de erros compilados pela revista eletrônica Wired, traduzido pelo site MDig:
28 de Julho de 1962
Falha na sonda Mariner 1
Um bug no software de vôo da sonda Mariner 1 provocou que, segundos após o lançamento da nave, esta se desviasse de seu curso pré-establecido. Os responsáveis da missão foram obrigados a destruir o foguete quando se encontrava sobrevoando o Atlântico.
A investigação do acidente determinou que o problema estava numa fórmula escrita a lápis que depois foi "inadequadamente" digitada no computador de cálculo, o que fez que o foguete calculasse mal a trajetória que devia seguir.
1982
Explosão em um gasoduto soviético
A maior explosão já registrada na Terra, de causas não nucleares, teve sua origem numa falha de programação. Supostamente, agentes da CIA infiltraram um bug num sistema de informática Canadense adquirido pelos soviéticos para controlar o gaseoduto Transiberiano. Seguiam ordens de Ronald Reagan, que tinha mandado seus agentes sabotar toda a tecnologia russa, colocando artefatos que permitissem manipular a distância todo tipo de máquinas e tecnologia. Assim, em 1982 a CIA decidiu sabotar este gasoduto, mas ao ativar o bug as coisas saíram muito diferente do esperado provocando a gigantesca explosão.
1985-1987
Acelerador médico Therac-25
O Therac-25 era um acelerador linear empregado nos hospitais na década de 80 para tratar tumores. A máquina emitia radiação de alta energia sobre células cancerosas sem causar dano ao tecido circundante. Os funcionários, com o tempo e a prática, conseguiam grande velocidade digitando a sequência de comandos para iniciar um tratamento. Mas devido a uma falha de programação, durante um processo onde efetuavam estas correções, a máquina emitia 100 vezes mais energia do que a requerida. Em consequência deste bug morreram ao menos cinco pacientes e várias dezenas sofreram os efeitos de ficarem expostos a uma elevada radiação, inclusive os próprios funcionários.
1988
O Worm de Morris
O primeiro vírus da Internet nasceu na tarde de 2 de novembro de 1988, quando um estudante norte-americado, Tappan Morris, liberou um programa criado por ele mesmo que infectou entre 2.000 e 6.000 computadores só no primeiro dia, antes se ser rastreado e eliminado. Para que seu vírus tivesse efeito, Morris descobriu dois erros no sistema operacional UNIX, que lhe permitiram ter acesso não autorizado a milhares de computadores.
1988-1996
Gerador de números aleatórios de Kerberos
Os autores do sistema de geração de números aleatórios Kerberos que são utilizados para fazer comunicações seguras através da Rede falharam à hora de conseguir que seu programa realmente escolhesse os números aleatoriamente. Devido a essa falha, durante oito anos foi possível entrar em qualquer computador que utilizasse o sistema Kerberos para autentificação, ainda que realmente se desconhece se o bug chegou a ser aproveitado por alguém.
15 de Janeiro de 1990
Queda da rede de AT&T
Um bug no software que controlava os comutadores dos telefonemas de longa distância da gigante da telefonia ATT fazia que derrubasse a chamada no comutador vizinho quando recebiam uma determinada mensagem. Por essa falha, o comutador da cidade de Nova York derrubou outras centenas de comutadores causando um caos na telefonia daquele país.
1993
Divisão de números com ponto flutuante no Pentium
Um problema com os microprocesadores provocou uma falha na divisão de números com ponto flutuante. Por exemplo, ao dividir 4195835,0 por 3145727,0 o resultado apresentado pelo microprocesador era 1,33374 ao invés de 1,33382, um erro de 0.006%. Ainda que a falha afetava a poucos usuários, resultou todo um problema para a Intel, que viu-se obrigada a trocar entre três e cinco milhões de chips, numa operação que lhe custou mais de meio bilhão de dólares.
1995/1996
O Ping da Morte
Devido a um problema que afetava o código que maneja o protocolo IP, era possível "capturar" um computador com Windows lhe enviando um ping corrupto. O problema afetava vários sistemas operacionais mas o pior caso era, lógico, com o Windows, que travava e mostrava a famosa "tela azul".
4 de Junho de 1996
Desintegração do Ariane 5
Os cientistas que desenvolveram o foguete Ariane 5, vôo 501, reutilizaram parte do código de seu predecessor, o Ariane 4, mas os motores do novo foguete incorporavam também, sem que ninguém desse conta, um bug numa rotina aritmética no computador de vôo que falhou segundos após a decolagem do foguete; em decorrência, meio segundo depois o computador principal da missão também apresentou problemas. O Ariane 5 desintegrou-se 40 segundos após o lançamento.
Novembro 2000
Sobredosagem radiológica no Instituto Nacional do Cancro da Cidade do Panamá
Numa série de acidentes, falhas e verdadeiras trapalhadas em seqüência, os engenheiros da empresa Multidata Systems International calcularam erroneamente a dose de radiação que um paciente deveria receber durante a terapia de radiologia. A falha estava no software de controle da máquina de raios, que provocou que ao menos oito pacientes morressem pelas altas doses recebidas e outros 20 recebessem sobredosagens que poderiam causar graves danos a sua saúde.
Muito bom relembrar destes momentos, eu lembro do bug do milênio que seria causado por causa dos números binários 0 e 1, e também lembro do Gerador de números aleatórios de Kerberos.... Ótimo Post, Valeu
ResponderExcluirNão posso me lembrar de nenhum desses bugs, pois ainda era um feto quando alguns aconteciam, e um bebê quando outros aconteciam. Só tenho a dizer que a falha de software está prevista perante qualquer mente humana, até porque os softwares são criados primeiramente por estes, que estão expostos a todo tipo de erro.
ResponderExcluir