freebsd
[Início] [Todas as Listas]

Re: [FUG-BR] OFF-TOPIC- Bug do ano 2038 - faltam 30 anos (Unix)

From: Fabio Sterpeloni <fabinho-zzz@xxxxxxxxxx>
To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" <freebsd@xxxxxxxxxx>
Subject: Re: [FUG-BR] OFF-TOPIC- Bug do ano 2038 - faltam 30 anos (Unix)
Date: Tue, 22 Jan 2008 20:04:34 -0200
E qual seria o impacto de mudarmos a base, de 1970 para 1971?
Eh... na verdade passarmos a usar uma base móvel...

Porque a maioria dos softwares usa essa informação depois de traduzida na data de hoje... talvez não fosse tão complicado
Ou será que muitos softwares usam o tal número de 32 bits na forma bruta?


Luiz Otavio O Souza escreveu:
----- Original Message ----- From: "Joao Rocha Braga Filho" <goffredo@xxxxxxxxx>


2008/1/18 Josias LG <josiaslg@xxxxxxxxxx>:
http://uoltecnologia.blog.uol.com.br/arch2008-01-13_2008-01-19.html#2008_01-17_20_57_59-126529944-29

O titulo do post já dá pistas: vem mais encrenca por aí. Mal saímos do
bug do milênio e já estão preocupados com outro.

Na mesma linha do bug anterior, este também tem a ver com tempo e datas.
O problema afeta programas que utilizam a representação de tempo Posix
(Interface portátil entre sistemas operacionais), baseada em Unix -
sistema operacional que controla a maioria dos servidores.

Nessa representação, o tempo é cálculado desde 1o de janeiro de 1970 e
usa um número binário (representado por zeros e uns) de 32 bits. A
última data que pode ser representada nesse formato é 03:14:07 de 19 de
janeiro de 2038 (32 números 1 seguidos).

Após esse momento, a data será representada por um número decimal
negativo (foto). Isso fará o calendário voltar para 1970 ou 1901,
afetando a maioria dos programas executados pelo sistema. Bug a vista!

PS - E dessa vez não vai ser tão simples resolver. Mudar a base de dados
para 64 bits. A mudança quebraria a compatibilidade binária de alguns
softwares. O Zip - compactador - foi construído para 32 bits. Muitos
sistemas embarcados feitos até 2006 usam arquitetura de 32 bits. Tomara
que consigam fazer a migração dos sistemas até 2038. No aguardo e torcendo!
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Bug velho. Eu sei deste bug deste a década de 90. Mas existe um
Workaround, tornar o tipo time_t unsigned. O bug passa a ser em
2107. Já fiz as contas a uns 15 anos atrás.
--------------

João,

É isso mesmo... se cada ano tem 31.536.000 segundos (60 X 60 X 24 X 365 - Segundos por minuto X Minutos por hora X Horas por dia X Dias por ano), 32 bits poderiam representar 136 anos (que a partir de 1970 nos levariam até 2106), mas parece que só utilizam 31bits (signed int) o que pode representar apenas 68 anos que vai nos levar até o ano de 2038.

32^2 = 4.294.967.295
31^2 = 2.147.483.647

luiz

-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


<Anterior na Thread] Thread Atual [Próximo na Thread>