Debian anuncia medida contra o “bug de 2038” (imagem: reprodução/Debian) Resumo O Debian Linux adotará time_t de 64 bits a partir da versão 13 “Trixie” para evitar o bug do ano 2038 (Y2K38).Em sistemas de 32 bits, time_t atinge seu limite em 19/01/2038, fazendo a contagem de tempo voltar a 1901 ou 1970.A mudança garante que mesmo arquiteturas de 32 bits usem time_t de 64 bits, evitando falhas relacionadas à data.Você já ouviu falar do “bug Y2K38” ou, em bom português, “falha do ano 2038”? É um problema que vem sendo comparado ao famoso “bug do milênio”, mas com potencial de ser mais grave. Apesar de ainda estarmos em 2025, os desenvolvedores do Debian Linux já estão atuando para evitar um desastre.Como? Mudando o método de armazenamento de informação sobre tempo de 32 bits para 64 bits.Para entendermos o que isso significa, temos que considerar que sistemas operacionais baseados no Unix, a exemplo das distribuições Linux, tipicamente usam um tipo de dado chamado time_t para armazenar valores referentes ao tempo. Isso é feito com base na contagem dos segundos decorridos desde 1º de janeiro de 1970.O problema é que essa abordagem foi definida há muito tempo e, portanto, levou em conta os antigos sistemas de 32 bits. Aqui, o time_t consiste, portanto, em um tipo de dado que representa um número inteiro que ocupa 32 bits de memória.Mas vai além. Esses 32 bits são do tipo “signed”, ou seja, podem representar tanto um número negativo quanto um número positivo. Isso significa que o time_t pode representar valores que vão de −2.147.483.648 a 2.147.483.647. É aqui que o bug Y2K38 começa a ganhar forma.O que é o bug Y2K38?Lembre-se de que o cálculo de tempo definido no Unix consiste na contagem de segundos desde 1º de janeiro de 1970. Pois bem, em 19 de janeiro de 2038, essa contagem chegará a 2.147.483.647 segundos, justamente o valor máximo que o time_t consegue armazenar.No segundo seguinte, a contagem será reiniciada, ou seja, assumirá o valor −2.147.483.648. Isso significa que, possivelmente, o sistema operacional entenderá que a data, nesse ponto, será 13 de dezembro de 1901 (ou 1970, que é o ano em que a contagem se inicia).Imagine o transtorno que isso causará…Animação que ilustra o bug Y2K38 (imagem: reprodução/CodeProject)Como os desenvolvedores do Debian vão prevenir o problema?Distribuições Linux mais recentes normalmente contam com um time_t de 64 bits. Isso, por si só, já é uma solução. O problema é que há muitas implementações de 32 bits do Linux por aí, muitas das quais usam o Debian, afinal, essa é uma distribuição antiga e bastante confiável.Essas implementações aparecem em soluções de internet das coisas e em sistemas embarcados de fábricas, por exemplo. Para evitar que essas máquinas deixem de funcionar corretamente por conta do bug Y2K38, os desenvolvedores do Debian estão recorrendo a abordagens que, na prática, fazem o formato time_t ter 64 bits em sistemas com arquitetura de 32 bits.A mudança valerá a partir do Debian 13 “Trixie”, versão prevista para ser lançada no próximo mês. Mas essa está longe de ser uma tarefa fácil. Os desenvolvedores da distribuição explicam que o time_t aparece em 6.429 dos 35.960 pacotes do sistema operacional.Com informações de The RegisterDebian Linux anuncia medida contra “bug de 2038”; entenda o problema