365 curiosités

Mon Carnet culture

Quel est le bug de 2038?

Après le bug de l’an 2000 et le bug de 2010 pour certaines cartes bancaires, un autre bug informatique surviendra en 2038.

Dans le langage UNIX la date et l’heure sont calculées à partir du nombre de secondes écoulées depuis le 1/1/1970 à 0h00. Or, sur des « vieux » systèmes, ce temps est codé sur 32 bit, ou plutôt 31 bit car le premier bit indique le signe + ou -.

On peut coder au maximum 231-1 secondes = 2,1 milliards de secondes, soit 24855 jours, c’est à dire un peu plus de 68 années. Au delà, en 2038 (=1970+68), la fonction time reviendra à zéro, ce qui entrainera des problèmes sur les logiciels.

Heureusement, la solution est connue et existe. Il faudra modifier les anciens programmes et coder le temps sur 64 bit, ce qui permettra de tenir des dizaines de milliards d’années, soit plusieurs fois l’âge de l’univers!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *