La fin du monde est pour 2038

Après celle du bogue de l’an 2000, la fin du monde reviendra en 2038. Le problème à l’an 2000 était toutes les représentations des années avec seulement 2 chiffres tel « 85 » pour représenter 1985, 2085, 2185, … Très mauvais! Mais d’où sort le problème de 2038?

Sur les machines Unix de toutes les saveurs, le temps est représenté par un entier signé de 32 bits qui compte les secondes. Il y a donc 2^32 = 4294967296 secondes représentables. En divisant le tout par 60*60*24*364.25, nous obtenons une belle couverture de 136.47 ans . Puisque le nombre est signé, il peut donc y avoir 68.235 ans avant ou après une certaine date. La date choisie s’appelle « L’Epoch » et représente 1970-01-01 00:00:00 . Si nous ajoutons les 68 années possibles à cette date, nous atterrissons en 2038. Qu’arrivera-t-il rendu à ce moment? Tout comme pour l’an 2000, le compteur retournera à son plus bas et c’est 1970 – 68.235 , ce qui nous amène en 1901.

Comment arranger ce problème? Facile! Maintenant avec les nouvelles machines qui utilisent des registres de 64 bits, il est possible d’avoir 18446744073709551616 secondes ou 586 146 828 633.6 années. Cela est amplement suffisant pour attendre la vrai fin du monde.

Par contre, il y a beaucoup de travail à faire, car il n’y a pas que les processeurs à modifier, mais aussi les informations dans les fichiers. Il y a toujours la date de création, modification et parfois même de dernier accès au fichier. Il faut donc modifier les systèmes de fichiers pour changer ces dates en format 64 bits. On parle donc d’un ajout de 12 octets par fichiers. À quand ext4 ?

Il nous reste 30 ans pour éviter ce problème atroce… serons-nous à temps?

Pour plus d’informations:

http://en.wikipedia.org/wiki/Year_2038_problem