Bug do ano 2038… ihhh…

Por intermédio de um amigo meu, ouvi falar do tal bug de 2038.
Provavelmente muita gente não vai se preocupar com esse bug… principalmente quem usa um sistema não-POSIX … ou seja, ruindows e cia, além de outros SOs.
Isso vai tirar o cabelo de muitos administradores de sistemas Linux… e espero que consigam resolvê-los… aliás, Linux é bão não? =P
Esse bug é similar ao do ano 2000, quando as máquinas podiam confundir 2000 com 1900. Mas como foram tomadas medidas e testes, além de ser exagerado pela mídia, a transição de 1999 para 2000 se passou sem muitos problemas.
O bug surge nos sistemas baseados baseados em POSIX (o caso do Unix, e todas as distribuições GNU/Linux, além de outros SOs), onde a data é contada usando o padrão UTC (Coordinated Universal Time), em que os programas contam em segundos, a partir de Jan de 1970, até a data atual.
A maioria dos computadores modernos usam um inteiro padrão sinalizado de 4 bytes para contar os segundos. Isso equivale a um contador de 32 bits, armazenando um valor de 2^31. O bit restante é o sinal. Isso significa que se o contador de segundos atingir 2147483647, na transição, irá a -2147483648. Ou na pior das hipóteses, o sistema sofrerá um buffer overflow. A consequência de ter uma data negativa pode fazer muitos programas falharem e instalar o caos nos sistemas.
A data precisa da ocorrência é Terça de 19 de Jan, 03:14:07 em 2038. A próxima data mostrada será Sexta de 13 de Dez, 20:45:52 1901 (o que daria o sugestivo nome de Bug da Sexta-Feira 13).
Parece que o jeito é usar um contador long double double long long. =P Mas até lá usaremos sistemas de 64 bits, ou quem sabe, 128 para cima.

Sites para saber um pouco mais:
http://www.2038bug.com/index.html
http://en.wikipedia.org/wiki/Year_2038_bug (e ver os links ao final do artigo também)

Anúncios

Sobre giseli

Eu: Engenheira, sedenta por bits e chocólatra assumida. Além de ser fã de IAs, principalmente Wintermute e HAL9000
Esse post foi publicado em Computação, Informação. Bookmark o link permanente.

2 respostas para Bug do ano 2038… ihhh…

  1. Danilo Egea disse:

    E parece que o windows tbm vai sofrer com esse problema, mas 10 anos mais tarde, se nao me engano ele conta o tempo em segundos apartir de 1 de janeiro 1980. Ainda bem que java jah usa 64 bits pra representar as horas, isso nos da aproximadamente 280 bilhoes de anos ateh esse problema acontecer hehehe…

  2. Danilo Egea disse:

    Ei mocinha, entra no skype de vez em quando !!! 🙂

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s