Le bug de l'an 2038

Proposé par
le

Vous vous souvenez peut-être du bug de l'an 2000, mais il existe aussi le bug de l'an 2038.  Il concerne potentiellement tous les systèmes d'exploitation et les programmes qui mesurent le temps avec un nombre entier codé sur 32 bits. Il se produira le 19 janvier 2038 à 3h14 8s UTC et les systèmes concernés croiront être le 13 décembre 1901 à 20h45 52s.

Aucun risque d’apocalypse" disent les spécialistes, "mais certains systèmes sont vulnérables". Les filières industrielles ont douze ans pour se mettre à jour et passer le cap sans casse.


Commentaires préférés (3)

Epsiloon en a fait sa couverture et un bon article en mars 2026. Ça explique bien le problème, les impacts potentiels, les solutions auxquelles les spécialistes réfléchissent etc.
D'ailleurs l'article semble être disponible en ligne : www.epsiloon.com/tous-les-numeros/n57/le_bug_de_l_an_2038/
Globalement une revue que je recommande. C'est de la vulgarisation scientifique généraliste.

En fait l'horloge d'un ordinateur compte le nombre de secondes depuis un moment appelé Epoch et en déduit une date. Pour les systèmes Unix (Linux/MacOS) mais aussi dans un tas de langages de programmation, Epoch est fixé au 1er janvier 1970.
Si on compte avec des entiers signés sur 32 bits le maximum est 2^31 - 1, soit 2147483647. Si on ajoute 1, on va inverser le premier bit qui correspond au signe et ainsi obtenir -2147483648. Donc après 2 milliards et des bananes secondes comptées, ce qui correspond à cette date en 2038, l'ordinateur se mettrait à compter à rebours avec des nombre négatifs, et c'est pour ça que l'horloge reculerait brutalement

a écrit : En fait l'horloge d'un ordinateur compte le nombre de secondes depuis un moment appelé Epoch et en déduit une date. Pour les systèmes Unix (Linux/MacOS) mais aussi dans un tas de langages de programmation, Epoch est fixé au 1er janvier 1970.
Si on compte avec des entiers signés sur 32 bits le maximum es
t 2^31 - 1, soit 2147483647. Si on ajoute 1, on va inverser le premier bit qui correspond au signe et ainsi obtenir -2147483648. Donc après 2 milliards et des bananes secondes comptées, ce qui correspond à cette date en 2038, l'ordinateur se mettrait à compter à rebours avec des nombre négatifs, et c'est pour ça que l'horloge reculerait brutalement Afficher tout
Petite précision : il y aura un brusque retour dans le passé, qui fera donc passer les horloges de 2038 à 1901, et ensuite le compte continuera à avancer dans le sens normal de passage du temps, 1902 puis 1903... Ça fonctionne comme une boucle, une fois qu'on a atteint la fin on revient d'un coup au début.
Ta formulation de "à rebours" m'a mis un doute, donc je préfère préciser pour ceux qui auraient le même doute que moi.


Tous les commentaires (11)

Epsiloon en a fait sa couverture et un bon article en mars 2026. Ça explique bien le problème, les impacts potentiels, les solutions auxquelles les spécialistes réfléchissent etc.
D'ailleurs l'article semble être disponible en ligne : www.epsiloon.com/tous-les-numeros/n57/le_bug_de_l_an_2038/
Globalement une revue que je recommande. C'est de la vulgarisation scientifique généraliste.

En fait l'horloge d'un ordinateur compte le nombre de secondes depuis un moment appelé Epoch et en déduit une date. Pour les systèmes Unix (Linux/MacOS) mais aussi dans un tas de langages de programmation, Epoch est fixé au 1er janvier 1970.
Si on compte avec des entiers signés sur 32 bits le maximum est 2^31 - 1, soit 2147483647. Si on ajoute 1, on va inverser le premier bit qui correspond au signe et ainsi obtenir -2147483648. Donc après 2 milliards et des bananes secondes comptées, ce qui correspond à cette date en 2038, l'ordinateur se mettrait à compter à rebours avec des nombre négatifs, et c'est pour ça que l'horloge reculerait brutalement

a écrit : Epsiloon en a fait sa couverture et un bon article en mars 2026. Ça explique bien le problème, les impacts potentiels, les solutions auxquelles les spécialistes réfléchissent etc.
D'ailleurs l'article semble être disponible en ligne : www.epsiloon.com/tous-les-numeros/n57/le_bug_de_l_an_2038/r /> Globalement une revue que je recommande. C'est de la vulgarisation scientifique généraliste. Afficher tout
Oui tous les "bons" journalistes de Sciences et Vie qui ont claqué la porte pour faire un vrai magazine scientifique, S&V l’était dans le temps mais n’est devenu qu’une coquille vide.

>>Les filières ont 12 ans pour se mettre à jour: ça veut dire qu’elles vont s’y mettre en 2037. Ce comportement n’était pas réservé à Y2K, il n’y a qu’à regarder comment ça se passe en ce moment avec la fin de la 3G dans différents pays.

a écrit : >>Les filières ont 12 ans pour se mettre à jour: ça veut dire qu’elles vont s’y mettre en 2037. Ce comportement n’était pas réservé à Y2K, il n’y a qu’à regarder comment ça se passe en ce moment avec la fin de la 3G dans différents pays. Comme pour les sessions d'examen, on avait 12 mois pour se préparer mais on commençait à étudier deux jours avant

Trop cool les années folles arrivent très vite alors.

a écrit : En fait l'horloge d'un ordinateur compte le nombre de secondes depuis un moment appelé Epoch et en déduit une date. Pour les systèmes Unix (Linux/MacOS) mais aussi dans un tas de langages de programmation, Epoch est fixé au 1er janvier 1970.
Si on compte avec des entiers signés sur 32 bits le maximum es
t 2^31 - 1, soit 2147483647. Si on ajoute 1, on va inverser le premier bit qui correspond au signe et ainsi obtenir -2147483648. Donc après 2 milliards et des bananes secondes comptées, ce qui correspond à cette date en 2038, l'ordinateur se mettrait à compter à rebours avec des nombre négatifs, et c'est pour ça que l'horloge reculerait brutalement Afficher tout
Petite précision : il y aura un brusque retour dans le passé, qui fera donc passer les horloges de 2038 à 1901, et ensuite le compte continuera à avancer dans le sens normal de passage du temps, 1902 puis 1903... Ça fonctionne comme une boucle, une fois qu'on a atteint la fin on revient d'un coup au début.
Ta formulation de "à rebours" m'a mis un doute, donc je préfère préciser pour ceux qui auraient le même doute que moi.

a écrit : Petite précision : il y aura un brusque retour dans le passé, qui fera donc passer les horloges de 2038 à 1901, et ensuite le compte continuera à avancer dans le sens normal de passage du temps, 1902 puis 1903... Ça fonctionne comme une boucle, une fois qu'on a atteint la fin on revient d'un coup au début. /> Ta formulation de "à rebours" m'a mis un doute, donc je préfère préciser pour ceux qui auraient le même doute que moi. Afficher tout Retour en 1970 , à la seconde 1 de l'epoch time

a écrit : En fait l'horloge d'un ordinateur compte le nombre de secondes depuis un moment appelé Epoch et en déduit une date. Pour les systèmes Unix (Linux/MacOS) mais aussi dans un tas de langages de programmation, Epoch est fixé au 1er janvier 1970.
Si on compte avec des entiers signés sur 32 bits le maximum es
t 2^31 - 1, soit 2147483647. Si on ajoute 1, on va inverser le premier bit qui correspond au signe et ainsi obtenir -2147483648. Donc après 2 milliards et des bananes secondes comptées, ce qui correspond à cette date en 2038, l'ordinateur se mettrait à compter à rebours avec des nombre négatifs, et c'est pour ça que l'horloge reculerait brutalement Afficher tout
Merci de ton complément facilement compréhensible par le commun des mortels.

Ce bug n'affectera quasiment pas les particuliers. Tous les OS que vous utilisez sont immunisés, car ça fait longtemps qu'ils utilisent un uint64_t (nombre non signé sur 64 bits) pour compter le nombre de secondes (certains utilisent même 128 bits). Au pire, certains vieux OS utilisent un uint32_t, et ils rencontreront le soucis en 2106.

Avec un uint64_t, les dates possibles sont hors de toute considération humaine, de plusieurs fois l'âge de l'univers. Android, IOS, Windows, MacOS, FreeBSD, la très grande majorité des distributions Linux et bien d'autres sont immunisés, ils utilisent tous au moins un uint64_t depuis longtemps.

Les problèmes concernent surtout de très vieux OS purement 32 bits (c'est à dire des OS qui n'ont pas du tout de type de variable 64 bits), des OS très spécifiques, des applications en particulier, de vieux systèmes embarqués, et certains mécanismes et logiciels internet.

C'est donc un problème, mais pas vraiment pour les particuliers : vos ordinateurs, smartphones et les plupart des appareils que vous utilisez ne connaîtront pas ce bug. Certaines applications le connaitront, mais elles ont le temps de chercher une solution.

C'est pas simple par contre, il ne suffit pas de se dire "je change la variable 32 bits en une variable 64 bits", il va falloir que certains logiciels implémentent un nouveau mécanisme mais aussi qu'ils gèrent les bases de données ou toutes les anciennes données numériques existantes (et impossible à modifier sans casser la compatibilité ou toutes les applications les exploitant) qui utilisent un nombre 32 bits pour la date, de manière particulière (en réintérpretant ce nombre). Y'a du boulot.