L'année 2038


La plupart des ordinateurs (personnels ou embarqués) utilisent un compteur 32 bits (donc à 32 chiffres et comptant en binaire) qui compte le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit. Puisque le nombre contient 32 chiffres, il possède forcément un maximum au delà duquel il ne pourra pas continuer. Ce maximum correspond au 19 janvier 1938 à 3h14min7s. Il se sera écoulé à ce moment là 01111111 11111111 11111111 11111111 secondes en binaires, soit 2 147 483 647 secondes en décimales. A la seconde suivante, le compteur passera à 10000000 00000000 00000000 00000000 secondes en binaire. Puisque le premier chiffre indique le signe, cela représentera 2 147 483 647 secondes (en décimales) avant le 1er janvier 1970, soit le 13 décembre 1901.
Si vous n'y croyez pas et que vous avez un agenda électronique, essayer d'afficher l'année 2039. Il y a de bonnes chances qu'un année incongrue s'affiche alors...
Ainsi, à cette date là en 2038, les systèmes pourront suivre trois cas de figure (selon leu configuration) : soit afficher la date du 13 décembre 1901 (suite "logique"), soit afficher le 1er janvier 1970 (remise à zéro) soit enfin s'arrêter.
Prévoir ce qu'il se passera est assez aisé, mais y remédier l'est moins ! En effet la très grande majorité des ordinateurs utilisent ce type de compteur. Il faudra mettre à jour tous les systèmes, ce qui est facilement faisable avec les systèmes d'exploitations mais nettement moins avec les systèmes embarqués.
Et autre soucis : beaucoup de formats de fichiers utilisent ce comptage, et risquent ainsi d'être inutilisables passé cette date (comme le format ZIP par exemple).

Un travail long et coûteux va donc devoir être mis en place pour prévoir ce bug, qui n'est pas sans rappeler celui de l'an 2000 (concernant le comptage uniquement des dizaines et des unités, ne prenant pas en compte les centaines et ne faisaient donc pas de différence entre 1900 et 2000). Mais comme ce dernier s'est passé sans grande encombre, on peut espérer de même pour dans 25 ans !

Affaire à suivre...


_____________________
Sources :
http://fr.wikipedia.org/wiki/Bug_de_l'an_2038