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

Fabio Sterpeloni fabinho-zzz em bol.com.br
Terça Janeiro 22 20:04:34 BRST 2008


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 em gmail.com>
>
>
> 2008/1/18 Josias LG <josiaslg em uol.com.br>:
>   
>> 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
>
>   


Mais detalhes sobre a lista de discussão freebsd