« Effet 2038 » – également connu sous le nom Épocalypse– C'est une menace comparable au célèbre « Effect 2000 ». Cependant, les résultats récents du Musée national de l'informatique du Royaume-Uni révèlent que cette pompe à temps numérique pourrait même exploser avant de planifier, en mettant non seulement des systèmes obsolètes, mais aussi des infrastructures et des appareils même utilisés.
Un 'déjà-vu' de Y2K, mais plus complexe
En 1999, les gouvernements et les entreprises du monde entier ont travaillé contre l'horloge pour éviter le chaos qui aurait pu provoquer le BUH de l'effet de 2000 « , où l'utilisation de deux chiffres seulement pour représenter l'année a menacé de ramener les montres numériques à 1900. Le problème, bien que massif, était en grande partie un problème qui a affecté la programmation des applications.
Mais … le scénario actuel est différent. Comme expliqué par Robin Downs, un bénévole et spécialiste du musée dans les anciens systèmes, la décision de 2038 provient de la façon dont Unix – et par extension, plusieurs systèmes dérivés, tels que Linux – Stores Time: A Second comptable depuis le 1er janvier 1970, stocké dans un entier avec un signe de 32 bits.
À 03:14:07 UTC du 19 janvier 2038, ce compteur « débordera » et commencera à retourner des dates absurdes, comme si le temps s'était reculé de 1901 ou, selon certains cas, à 1970.
Erreurs inattendues: erreurs avant 2038
La découverte qui alarme la communauté technique s'est produite lors de la restauration d'un PDP-11/73, un ordinateur de la Historic Digital Equipment Corporation.
Bien que cette équipe ait déjà été pêchée contre Y2K, lors de la récession de son compilateur de 1982, un échec insoupçonné est apparu:
- Le système renvoie le bon moment, mais une date erronée.
- Au fur et à mesure que l'horloge progresse à 2037 – un an avant «l'épocalypse» -, tout programme qui invoque le ´time_t () ´ de la langue C est bloqué.
« Nous avons trouvé des erreurs qui se produisent avant même 2038, des vulnérabilités que nous ne connaissions même pas. »
Cela signifie que les systèmes vulnérables ne s'effondreront pas uniquement à la date critique que nous connaissions déjà, mais pourraient échouer de manière décalée tout au long de l'année précédente, ce qui rend la prévention difficile.
Pourquoi Linux est vulnérable
Linux, comme la plupart des systèmes de type Unix, utilise également la représentation du temps time_t Sur la base des secondes depuis le 1er janvier 1970. Dans les systèmes de 32 bits, cette variable est généralement définie comme un entier avec un signe de 32 bits … ce qui signifie que, lors de l'arrivée au 19 janvier 2038, il « retournera » et les fonctions temporelles (les fonctions temporelles (time(), localtime()etc.) retournera les dates non valides.
Heureusement, dans les systèmes 64-bits, le problème n'existe pas, puisque time_t Il peut représenter les dates pendant des milliards d'années en avant ou en arrière.
À partir du noyau 5.6 (2020), un support complet a été introduit afin que time_t Être 64 bits, même dans des architectures de 32 bits. Cela permet aux applications qui sont recomposées avec les nouvelles librairies peuvent gérer correctement les dates après 2038, mais tous les logiciels doivent être recompilés / adaptés; Sinon, le support du noyau n'aidera pas.
Le risque de systèmes héréditaires
Alors que les distributions modernes telles que Debian migrent déjà de manière préventive vers des structures de 64 bits pour stocker le temps, des millions d'appareils et de programmes dans des industries telles que les télécommunications, les transports ou les services bancaires continuent de dépendre des anciennes architectures.
L'exingeniero de Microsoft, Dave Plummer, est optimiste: il espère qu'il y aura suffisamment de temps pour identifier et mettre à jour les systèmes critiques. Mais Downs prévient que de nombreux jeunes ingénieurs, et même des programmeurs professionnels en C, ne connaissent pas l'ampleur du problème:
« Nous construisons aujourd'hui des appareils et des logiciels qui, nous l'espérons, dureront plus de 12 ans, et tous ne sont pas préparés à cette éventualité. »
Une menace plus diffuse que Y2K
La principale différence entre «l'effet 2000» et celui de 2038 réside dans son imprévisibilité: alors que le premier a affecté uniformément tout système qui a utilisé des dates à deux chiffres, le second se comporte de manière inégale. Chaque compilateur, système d'exploitation ou appareil peut réagir différent du débordement. Ceci est expliqué par Downs:
« Il n'y a pas de réponse universelle. À moins que chaque appareil et chaque version du logiciel ne soient testés séparément, nous ne saurons pas comment il réagira. La marge d'erreur est beaucoup plus grande que dans Y2K. »
Il y a encore plus de douze ans pour le 19 janvier 2038, oui, mais l'histoire récente montre que les problèmes informatiques mondiaux ne sont pas résolus du jour au lendemain et que la complaisance peut être le pire ennemi.
Via | Le registre
Dans Xataka | J'ai travaillé le 31 décembre 1999 à 23,59