O Bug nada mais é do que um programa que determina um erro de lógica na compreensão de um software, também era usado para localizar possíveis problemas que ocorressem na engenharia, ele auxiliou muito para a localização defeitos mecânicos, acredita-se que este termo foi retirado do fato de alguns insetos que pousassem no ENIAC (primeiro computador eletrônico), e que ficassem pousados lá e um acabou ficando preso causando assim: Curto Circuito e levando falhas nos programas.
Esse tipo de sistema também mede e/ ou faz com que seja contada a passagem do ano, ou seja, ele é pré-programado para fazer com que o relógio anulado seja mudado.
Exemplo:
Se estivéssemos no ano de 1900 o sistema leria para fazer a conta, “19 + 00 = 1900”, e passaria normalmente para o ano 2000, mas como a mudança se dava somente por dois dígitos muitos empresários donos de bancos temiam o fato de o programa errar e fazer com que houvesse perdas nas vendas e tudo voltasse com dívidas que já foram pagas serem cobradas novamente, para tentar solucionar estes problemas, foi programado somente para mudar os dois últimos dígitos do ano, essa contagem esta programada até o ano de 2025, esse tipo hardware é chamado de “Bug do milênio”.
Tem - se previsto que a contagem do ano pelo Bug, durará até o ano de 2038, depois disto o relógio voltará para o ano em que começou a contagem que foi em 1970 ou até mesmo para o ano de 1901, mas conceitos sobre a solução deste problema já estão sendo analisados e tentando ser resolvidos, o relógio (bug) para a continuação da contagem dos milênios, será trabalhado e possivelmente estará pronto em 2038.
Esse tipo de sistema também mede e/ ou faz com que seja contada a passagem do ano, ou seja, ele é pré-programado para fazer com que o relógio anulado seja mudado.
Exemplo:
Se estivéssemos no ano de 1900 o sistema leria para fazer a conta, “19 + 00 = 1900”, e passaria normalmente para o ano 2000, mas como a mudança se dava somente por dois dígitos muitos empresários donos de bancos temiam o fato de o programa errar e fazer com que houvesse perdas nas vendas e tudo voltasse com dívidas que já foram pagas serem cobradas novamente, para tentar solucionar estes problemas, foi programado somente para mudar os dois últimos dígitos do ano, essa contagem esta programada até o ano de 2025, esse tipo hardware é chamado de “Bug do milênio”.
Tem - se previsto que a contagem do ano pelo Bug, durará até o ano de 2038, depois disto o relógio voltará para o ano em que começou a contagem que foi em 1970 ou até mesmo para o ano de 1901, mas conceitos sobre a solução deste problema já estão sendo analisados e tentando ser resolvidos, o relógio (bug) para a continuação da contagem dos milênios, será trabalhado e possivelmente estará pronto em 2038.
O bug do 2000 "bug do Milênio"
Na década de 60, com a solidificação de vários sistemas computacionais e a ampliação de sua abrangência, foi necessária a adoção de diversos padrões para garantir a compatibilidade entre os diversos tipos de hardware e os softwares escritos para eles. Numa época em que cada byte de memória economizado representava economia de dinheiro muitos destes padrões adotavam formas resumidas para armazenar dados. Ainda hoje centenas destes padrões ainda estão em vigor, embora muitos tenham sido substituídos para se atualizar com a flexibilidade dos novos hardwares disponíveis.
Nos sistemas mais antigos, como aqueles na linguagem COBOL e semelhantes, as datas eram armazenadas com apenas 2 dígitos para o ano, ficando os restantes implicitamente entendidos como sendo "19". Desta forma cada data armazenada deixava de ocupar oito bytes (dois para o dia, dois para o mês e quatro para o ano), e passava a ocupar somente seis bytes (somente dois no ano).
A opção por representar as datas desta forma vinha da necessidade real de economia de memória e espaço de armazenamento. Hoje isso parece insignificante mas na época isso foi o suficiente para justificar a adoção do padrão, tamanho o custo das memórias e dispositivos de armazenamento.
Para ter uma idéia imagine um banco de dados com vários campos, entre eles data de nascimento, data de casamento e data de cadastro. Para cada registro a economia nas três datas totaliza seis bytes. Se o banco de dados tiver dez mil registros são 60kB bytes a menos, o que era significativo numa época em que os discos tinham o tamanho de 180kB.
O problema
Como todas as datas eram representadas por somente 2 dígitos, os programas assumiam o "19" na frente para formar o ano completo. Assim, quando o calendário mudasse de 1999 para 2000 o computador iria entender que estava no ano de "19" + "00", ou seja, 1900. Os softwares mais modernos, que já utilizavam padrões mais atuais, não teriam problemas em lidar com isso e passariam corretamente para o ano 2000, mas constatou-se que uma infinidade de empresas e instituições de grande porte ainda mantinham em funcionamento programas antigos, em função da confiança adquirida por anos de uso e na sua estabilidade. Para além disso, temiam-se os efeitos que poderiam ser provocados no hardware pelo sistema BIOS, caso este reconhecesse apenas datas de dois dígitos.
Caso as datas realmente "voltassem" para 1900, clientes de bancos veriam suas aplicações dando juros negativos, credores passariam a ser devedores, e boletos de cobrança para o próximo mês seriam emitidos com 100 anos de atraso.
Soluções
O temor do Bug do milênio motivou uma renovação em massa dos recursos de informática (tanto de software como de hardware) e houve uma louca corrida para corrigir, atualizar e testar os sistemas antes que ocorresse a mudança do milênio. Velhos programadores de COBOL foram tirados da aposentadoria, para voltar a trabalhar em sistemas muitas vezes desenvolvidos por eles mesmos, vinte anos antes.
Na verdade, alguns dos sistemas desenvolvidos já possuíam alguma previsão para a virada do milênio. Um exemplo de técnica de compensação ao Bug pode ser encontrado no velho sistema em COBOL da empresa brasileira Espiral Informática: O sistema adicionava 1900 ao ano sempre que este fosse maior do que 25. E adicionava 2000 a todos os anos anteriores a 25. Assim, "24" seria interpretado como 2024, e "26", como "1926". Já "85" era interpretado como 1985. Este sistema tinha vida útil até 2025, data escolhida de forma arbitrária pelo desenvolvedores, possivelmente na crença de que em 2025 o sistema já teria sido substituído por simples obsolescência.
Nos computadores da Apple, era utilizado um sistema de contagem de segundos desde 1 de Janeiro de 1904, sendo que o sistema operativo se encarregava de converter os segundos em data.
Consequências
Surpreendentemente, houve poucas falhas decorrentes do Bug do milênio, que se revelou quase inofensivo apesar de ter gerado uma onda de pânico coletivo, especialmente nos países nos quais os computadores estavam mais popularizados. O assunto gerou muita polêmica devido aos grandes lucros gerados para as empresas de informática, foi alvo de matérias copiosas na imprensa e deu até origem a vários filmes. Hoje é considerado como um dos casos registrados pela História de pânico coletivo vazio de fundamentos, uma versão moderna do "temor do fim do mundo" que acometeu os povos da Europa Medieval na virada do ano de 999 para 1000.
Muitos acretitam que esse erro foi "feito" de propósito ou pelo menos foi adiado afinal as empresa de Software que tinham lucrado muito com a veda dos Software com defeito, tiveram que vender software novos, e de uma vez só vederam milhares.
O bug de 2038
O problema do ano 2038 é uma falha na representação de datas em computadores, que pode causar erros em alguns programas de computador no ano de 2038.
O problema afeta os programas que utilizam a representação de tempo POSIX, em que a data é calculada através do número de segundos (ignorando os segundos bissextos) desde 1 de janeiro de 1970. Esta representação é padrão nos sistemas operacionais do tipo Unix e afeta a maioria dos sistemas, pois grande parte deste software foi desenvolvido na linguagem C. Na maioria dos sistemas de 32 bits, o tipo de dados time t, utilizado para armazenar esta contagem de segundos, é um inteiro de 32 bits do tipo signed (considera o sinal). O último registro de tempo que pode ser representado por este formato, seguindo o padrão POSIX, é 03:14:07 na terça-feira 19 de janeiro de 2038 (UTC). Após este momento a data será representada por um número decimal negativo que, dependendo da implementação, corresponderá ao ano 1970 ou 1901. Este valor para a data corrente certamente resultará em erros de cálculo e de funcionamento na maior parte dos programas em execução pelo sistema.
Este exemplo ilustra o reinício da contagem as 03:14:08 do dia 19 de janeiro de 2038
Solução
Não há maneira simples de resolver este problema para os sistemas existentes. Alterar a definição do time_t para 64 bits pode quebrar a compatibilidade binária de softwares, dados persistidos e de qualquer sistema que manipule datas representadas no formato binário. Alterar o time_t para um inteiro de 32 bits unsigned (não considera o sinal) pode alterar vários programas que trabalham com diferenças de tempo.
A maioria dos sistemas que suportam a arquitetura de 64 bits já suportam o time_t de 64 bits. A migração para esta arquitetura já está em andamento e muitos esperam que ela esteja completa até 2038. Porém, milhões de sistemas de 32 bits foram instalados até o ano de 2006, muitos em sistemas embarcados, e é muito incerto se eles serão totalmente substituídos até 2038. Apesar de, normalmente, os sistemas serem atualizados num prazo de 18-24 meses, os sistemas embarcados podem operar sem alterações por toda a vida do sistema que controlam. A utilização do time_t de 32 bits foi codificada em alguns formatos de arquivo, como o ZIP, o que significa que o problema pode permanecer por um longo período após a expiração da vida útil das máquinas envolvidas.
A utilização de valores de 64 bits introduz um novo "corte" na data em aproximadamente 290 bilhões de anos, num domingo em 4 de dezembro de 292.277.026.596. Claramente este problema não é uma questão imediata.
Lista dos Sistemas o peracionais tipo UNIX
ADFGHI | LMNOPQ | RSTUVX |




Nenhum comentário:
Postar um comentário
Postagens que forem consideradas racista, obcenas e criminosas serão excluidas