Primeiro veio o bug do ano 2000, e agora, o Kernel 5.10 adiará o bug do ano de 2038 até o ano de 2486. Entenda como isso foi feito.
O problema, ou bug do ano 2000 foi um dos problemas mais graves em programas de sistemas computadorizados que causou estragos em computadores e afetou sistemas em todo o mundo.
Algumas informações sobre por que esse problema surgiu – Já percebeu que quando um computador ou um site pede para você inserir os dois últimos dígitos do ano?
Acontece que antigamente os computadores eram programados para armazenar apenas os dois últimos dígitos dos anos, pois isso economizaria espaço de armazenamento (quatro dígitos contra dois dígitos), pois naquela época era muito alto o custo disso.
O problema é que o tempo passo e o ano 2000 estava chegando. Então, digamos que falte apenas um dia no ano de 1999 (99); um dia depois, os sistemas não conseguiriam entender se é o ano 2000 (00) ou 1900 (00).
Kernel 5.10 adiará o bug do ano de 2038 até o ano de 2486
Um problema semelhante ao Y2k deveria ter chegado no ano de 2038, mas graças ao sistema de arquivos XFS no kernel 5.10, ele foi estendido para o ano de 2486. As alterações feitas para corrigir esse problema foram.
Registrar o tamanho dos inode btrees no grupo de alocação aumenta as verificações de redundância e permite tempos de montagem mais rápidos.
2.147.483.647 é o valor máximo de um interger de 32 bits. Na terça-feira, 19 de janeiro de 2038, exatamente às 3:14:07, o valor do tempo armazenado desde 1º de janeiro de 1970 será igual ao valor de um número inteiro de 32 bits, ou seja, 2.147.483.647, causando o problema.
Aqui está uma curta animação que ilustra o que teria acontecido:
“Uma função” Large Timestamps “agora corrigiu isso, refatorando seu carimbo de data/hora e recurso de codificação de inode. Devido a isso, os carimbos de data/hora agora serão tratados como um contador de nanossegundos de 64 bits e deslocamento de bits para estender a medição eficiente”, disse o pessoal da Phoronix neste artigo.
Adicionando a isso, eles disseram:
“O XFS agora pode cuidar do problema do ano anterior de 2038 (o local que armazena o tempo desde 1970 em segundos agora não se encaixará em um inteiro assinado de 32 bits e, portanto, será encerrado) até o ano 2486. Isso foi possível criando um novo sistema de arquivos XFS com bigtime habilitado, que agora permite o registro de data e hora de dezembro de 1901 a julho de 2486. Para preservar a compatibilidade com versões anteriores, a função de carimbos de data/hora grandes não está habilitada por padrão no momento.”