Vous avez aimé la panique de l'an 2000 ? Vous avez adoré stocker des boîtes de conserve et attendre la fin du monde dans votre salon ? J'ai une excellente nouvelle pour vous : la suite est déjà programmée.

Sortez vos agendas (électroniques, si possible, c'est plus drôle). Notez la date : Mardi 19 janvier 2038. L'heure précise ? 03 heures, 14 minutes et 7 secondes (heure universelle).

À cet instant précis, une grande partie de l'informatique mondiale va prendre une profonde inspiration et... retourner faire un tour en 1901.

Pourquoi le temps a commencé en 1970 ?

Pour comprendre ce futur bazar, il faut revenir aux années 70, à la naissance du système UNIX. C'est le grand-père des systèmes d'exploitation modernes (Linux, macOS, Android, les serveurs du web... tout ça, c'est du UNIX caché).

Les créateurs d'UNIX avaient besoin d'une méthode simple pour que les ordinateurs sachent quelle heure il est. Ils ont décidé de lancer un chronomètre géant. Le point de départ (le zéro) a été fixé arbitrairement au 1er janvier 1970. Depuis, vos ordinateurs ne comptent pas les années. Ils comptent les secondes écoulées depuis cette date.

Au moment où vous lisez ces lignes, ce compteur tourne autour de 1,7 milliard de secondes.

Le sac à dos est trop petit

Le problème, c'est l'espace de stockage prévu pour ce chiffre. À l'époque, les ordinateurs fonctionnaient en 32 bits. Imaginez que vous avez un compteur kilométrique de voiture qui ne peut afficher que des chiffres jusqu'à une certaine limite.

Pour un système 32 bits, la valeur maximale positive est de 2 147 483 647.

C'est un chiffre énorme, non ? En 1970, ça paraissait être une éternité. Les ingénieurs se sont dit : "D'ici à ce qu'on atteigne ce chiffre, on aura tous des voitures volantes et ce vieux code sera à la poubelle." Spoiler : nous n'avons pas de voitures volantes, et nous utilisons toujours ce code.

Le jour où le compteur explose

Le 19 janvier 2038, à 03:14:07, le compteur atteindra 2 147 483 647 secondes. Une seconde plus tard, il va essayer d'ajouter +1.

Comme il n'a plus de place, le système va "déborder" (le même problème qu'Ariane 5, vous vous souvenez ?). Le bit le plus à gauche, qui sert habituellement à indiquer le signe (positif ou négatif), va basculer. Le compteur ne va pas passer à 2 147 483 648. Il va passer à -2 147 483 648.

Pour l'ordinateur, cela correspond au vendredi 13 décembre 1901.

Les conséquences : Retour vers le passé

Si le bug n'est pas corrigé, voici ce qui risque d'arriver :

  • Les bases de données refuseront de valider des transactions car elles penseront qu'elles ont lieu 137 ans avant l'ouverture de votre compte.
  • Les systèmes de sécurité qui calculent des durées (comme les feux rouges ou les pilotes automatiques) pourraient devenir fous en calculant des temps négatifs.
  • Votre téléphone pourrait afficher qu'il est temps d'aller au bal musette.

La bonne nouvelle ? La plupart de nos ordinateurs personnels et smartphones modernes sont déjà passés en 64 bits. Avec le 64 bits, la limite est repoussée à une date si lointaine que le Soleil aura probablement explosé d'ici là.

La mauvaise nouvelle ? Le monde est rempli de "vieux trucs" qu'on ne met jamais à jour. Des routeurs au fond des océans, des systèmes de contrôle dans les usines, des satellites en orbite... Eux sont toujours en 32 bits.

Une fin mémorable

Le Bug de l'an 2038 est fascinant car c'est une apocalypse au ralenti. Nous savons exactement quand elle arrive, à la seconde près. Nous avons la solution technique. Et pourtant, comme l'étudiant qui a un devoir à rendre dans 12 ans, l'humanité procrastine.

Alors, si le 19 janvier 2038, vous êtes dans un avion et que le pilote annonce au micro : "Mesdames et messieurs, bienvenue à bord, nous espérons un atterrissage en douceur en 1901", ne paniquez pas.

"C'est peut-être ça, le vrai progrès : un bon vieux bug qui nous force à déconnecter."

Rendez-vous dans 12 ans pour savoir si on a fait nos devoirs.