Le 19 janvier 2038 à 03 h 14 min 07 s UTC, certains systèmes encore fondés sur un temps Unix atteindront leur valeur maximale. À la seconde suivante, le compteur débordera et pourra renvoyer une date de décembre 1901, avec des effets potentiellement graves sur les logiciels, les fichiers, les bases de données et certains équipements embarqués.
Le bug de l’an 2038 n’est pas une rumeur tardive née autour d’une échéance spectaculaire. Il découle d’un choix ancien et central de l’informatique Unix, qui compte le nombre de secondes écoulées depuis le 1er janvier 1970 à 00 h 00 min 00 s UTC. Tant que cette valeur est stockée dans un entier signé de 32 bits, sa borne supérieure reste fixée à 2 147 483 647 secondes. Cette limite correspond exactement au 19 janvier 2038 à 03 h 14 min 07 s UTC. Une seconde plus tard, la valeur déborde et devient négative, ce qui peut être interprété comme une date du 13 décembre 1901.
Le sujet rappelle forcément le passage à l’an 2000, mais le mécanisme n’est pas le même. Le problème de 2000 venait d’années codées sur deux chiffres dans de nombreux logiciels, tandis que celui de 2038 est lié à une limite binaire de représentation du temps. Il ne menace donc pas tous les ordinateurs indistinctement, mais les systèmes qui conservent encore des structures temporelles sur 32 bits, y compris dans des couches profondes du système, du noyau jusqu’aux bibliothèques logicielles et à certains formats de fichiers.
Cette fragilité ne concerne d’ailleurs pas uniquement le moment exact de janvier 2038. Des erreurs peuvent apparaître bien avant, dès qu’un logiciel manipule des dates lointaines, calcule des échéances, attribue une durée de vie à des données ou génère des certificats valables très longtemps. Des cas concrets ont déjà été documentés dans des produits industriels, notamment autour de certificats expirant au-delà de janvier 2038 et de mécanismes de durée de vie de données fondés sur des horodatages trop proches de la limite.
Une panne moins visible qu’un grand crash
Le risque le plus crédible n’est pas celui d’un arrêt simultané et mondial, mais d’une multitude de dysfonctionnements dispersés. Un programme peut refuser une date future, un système de fichiers peut enregistrer un horodatage incohérent, une API peut renvoyer une erreur de débordement, un certificat peut devenir inutilisable, ou encore une application métier peut produire des calculs faux sur des contrats ou des échéances longues. Le manuel Linux précise déjà qu’un exécutable utilisant un time_t sur 32 bits pourrait déclencher une erreur lorsque l’heure système dépassera 03 h 14 min 08 s UTC le 19 janvier 2038.
Les infrastructures anciennes sont les plus exposées. Dans l’écosystème Linux, plusieurs interfaces historiques fondées sur timeval ou timespec ont été remplacées parce que leur champ tv_sec déborde en 2038 sur les architectures 32 bits. Le noyau recommande désormais des équivalents sur 64 bits. Des correctifs ont aussi été apportés au fil des années à des sous-systèmes précis, preuve que le problème n’est pas théorique mais traité morceau par morceau.
Les systèmes de fichiers illustrent bien cette transition inachevée. La documentation du noyau Linux indique par exemple que l’ancien format V4 de XFS ne peut pas stocker des horodatages au-delà de 2038, ce qui a conduit à sa dépréciation au profit du format V5. Ailleurs, certaines limitations ne peuvent pas être corrigées simplement par une mise à jour logicielle lorsqu’elles sont inscrites dans la structure même des métadonnées.
La sortie passe par le 64 bits
La réponse technique est connue depuis longtemps. Elle consiste à adopter des représentations temporelles sur 64 bits, que ce soit dans les systèmes d’exploitation, les bibliothèques, les applications et parfois les formats d’échange. Oracle rappelle explicitement qu’un time_t sur 64 bits écarte la limite de janvier 2038 et que les applications qui doivent fonctionner au-delà de cette date ont intérêt à migrer vers un environnement 64 bits. Même dans certains anciens environnements Linux, des ajustements ont été apportés pour permettre l’usage d’un temps codé sur 64 bits et limiter ainsi le risque lié à l’an 2038.
Le vrai défi est donc moins conceptuel qu’industriel. De nombreux systèmes encore en service ne sont ni visibles du grand public ni faciles à remplacer. Il peut s’agir d’équipements embarqués, d’automates, d’outils industriels, de vieux logiciels métiers ou de composants compilés depuis longtemps et jamais revalidés pour l’après 2038. Dans ces cas, la correction demande souvent un audit complet des dépendances temporelles, des tests sur dates futures et parfois une migration matérielle, pas seulement un simple correctif applicatif.
Le bug de l’an 2038 ne relève donc ni du fantasme ni de la catastrophe universelle annoncée. Il s’agit d’un défaut informatique bien identifié et techniquement soluble, précisément daté, déjà documenté dans des systèmes réels. Mais il rappelle qu’en informatique, les choix les plus discrets, comme la taille d’un entier stockant l’heure, peuvent devenir des failles structurelles plusieurs décennies plus tard.






Réagissez à cet article
Connectez-vous
Vous avez déjà un compte ? Connectez-vous et retrouvez plus tard tous vos commentaires dans votre espace personnel.
Vous n'avez pas encore de compte ?
Inscrivez-vous !