Code informatique : vous avez craint le bug de l’an 2000, attendez de voir celui de 2038<!-- --> | Atlantico.fr
Atlantico, c'est qui, c'est quoi ?
Newsletter
Décryptages
Pépites
Dossiers
Rendez-vous
Atlantico-Light
Vidéos
Podcasts
High-tech
Le premier janvier 2000, les systèmes informatiques ont fait face à une erreur systémique qui a, somme toute, réinitialisé une boucle temporelle.
Le premier janvier 2000, les systèmes informatiques ont fait face à une erreur systémique qui a, somme toute, réinitialisé une boucle temporelle.
©Reuters

Crash généralisé

Le 1er janvier 2000, les systèmes informatiques ont fait face à une erreur systémique qui a, somme toute, réinitialisé une boucle temporelle. Ainsi, les horloges des différents ordinateurs dans le monde qui n'avaient pas été actualisées ont été réinitialisées, occasionnant un certain nombre de problèmes. Or, en 2038 se produira une erreur du même ordre, toujours basée sur la représentation informatique du temps.

Jean-Gabriel Ganascia

Jean-Gabriel Ganascia

Jean-Gabriel Ganascia est professeur à l'université Pierre et Marie Curie (Paris VI) où il enseigne principalement l'informatique, l'intelligence artificielle et les sciences cognitives. Il poursuit des recherches au sein du LIP6, dans le thème APA du pôle IA où il anime l'équipe ACASA .
 

Voir la bio »

Atlantico : En l'an 2000 est survenu un bug informatique, qui tenait davantage de l'erreur systémique que du bug. Le 1er janvier 2000 était codé de la même façon que le 1er janvier 1900, et plutôt que de passer à un nouveau millénaire, la base de données des ordinateurs se réinitialisait et redémarrait une boucle. Aujourd'hui, le temps est affiché au travers des systèmes de 32bits, dont la limite temporelle est fixée à 2038. Quels sont, concrètement, les risques ? Faut-il s'attendre à ce que la boucle redémarre de nouveau ?

Jean-Gabriel Ganascia : Ce n'est pas tout à fait le même problème, bien que ça y ressemble. En fait, le soucis que l'on pourrait rencontrer en 2038 est bien plus spécifique à une notation interne utilisée par certains systèmes informatiques. Le bug de l'an 2000 venait du fait que beaucoup d'éléments étaient basés sur le siècle, dans leur notation. On utilisait, notamment, les deux derniers chiffres de l'année pour la distinguer. Ici, dans le "bug de l'an 2038", tout repose sur la méthode de représentation interne de la date, nommée timestamp, qui peut est généralement représentée au travers de mots de 32 bits signés.

Cette notation reprend le nombre de secondes écoulées depuis le 1er janvier 1970. En considérant la façon dont est calculé le timestamp, lorsqu'on arrivera en 2038 la zone de 32 bits réservée sera dépassée et la boucle reprendra à zéro.  Le calcul est assez complexe, mais concrètement on multiplie le nombre d'années écoulées – 68 ans entre 1970 et 2038 – que l'on multiplie d'abord par le nombre de jours durant l'an, 365, puis par le nombre d'heures dans une journée et enfin par le nombre de secondes dans une heure. On tombe sur un nombre démentiel, que l'on peut globalement assimiler à 2 exposant 31, à partir de quoi la boucle redémarre. Bien évidemment, depuis la mise en place de ce système, un certain nombre d'arrangements ont été fait, donc il est possible que certaines erreurs viennent se glisser, mais c'est à cet ordre de grandeur qu'il faut s'en tenir. Et il y aura nécessairement un moment où un débordement surviendra, ce qui peut évidement poser problème si on n'y prend pas garde.

Pour autant, 2038, c'est loin d'être tout proche et d'ici 24 ans, il est plus que probable que l'on soit passé sur des machines plus performantes, qui compteront le temps en 64 bits. Dès lors, le problème ne devrait plus exister. D'autant plus que l'on cherche toujours à améliorer nos capacités mémorielles, ce qui entraîne nécessairement un passage à 64 bits, ou plus, le système 32 bits étant limité à des fichiers de 4Go. 

Dans le cadre du bug de l'an 2000, il avait fallu mettre à jour l'ensemble des logiciels et des périphériques. Cela devrait-il arriver aujourd'hui ? Le nombre d'ordinateurs ayant largement augmenté, quelle serait l'ampleur du phénomène ?

C'est indéniable. Cependant, en l'an 2000, on commençait d'ores et déjà à voir des ordinateurs un peu partout ! Ceci étant, il est plus que probable que d'ici la date fatidique, une large partie du parc des ordinateurs soit amenée changer naturellement, à mesure que les utilisateurs et internautes changent de machines. Finalement, ne seraient concernés que les ordinateurs dont le système d'exploitation aurait conservé cette représentation du temps que nous présentions tout à l'heure, en 32 bits. C'est, par ailleurs, une des premières différences avec le bug de l'an 2000 : on avait alors affaire à une représentation lisible du temps, tandis qu'il est ici question de représentation interne, qui ne concerne que le système d'exploitation.

Cependant, en admettant que le bug de l'an 2038 advienne dès à présent, en 2014 et à l'improviste (ce qui n'est bien entendu pas probable un instant), il va de soi  que les conséquences seraient catastrophiques et la nécessité de remplacer l'ensemble des machines représenterait un travail titanesque, herculéen. C'est d'ailleurs pour cela qu'en l'an 2000, les travaux avaient déjà commencé, et des précautions avaient été prises. L'ensemble des mises à jours ont été réalisés progressivement, de façon à ce qu'un minimum de programmes soient encore vulnérables au le moment venu. Ce qui sera fait de nouveau, d'ici à 2038.

Une des solutions envisagée, et mise en place par différents producteurs d'ordinateurs, est de changer le système de 32bits à 64bits. Cependant, cette solution ne fait que repousser l'échéance. Aujourd'hui, qu'est-ce qu'il serait possible de faire pour y mettre un terme définitif ?

Il est important de réaliser que le temps est, par nature, indéfini. Ce n'est pas le cas des différentes représentations qu'il peut avoir, fussent-elles sur un ordinateur ou ailleurs. Au contraire, celles-ci sont par essence finies, ce qui signifie qu'il n'existe pas de moyen de mettre un terme définitif, et que la contrainte de repousser l'échéance perdurera.

Une fois ce postulat établi, il peut être intéressant de revenir sur quelques détails. Certes, il ne s'agit que de repousser l'échéance et donc d'éloigner le problème. Cependant...  Avec un système 64 bits, et en suivant le raisonnement propre au 32 bits – ce qui est logique, puisqu'il s'agit des mêmes méthodes de calcul – on s'aperçoit qu'on en arrive à des échéances qui dépassent indéniablement celles de nos vies, mais aussi potentiellement celle de l'espèce humaine. Avec un système en 64 bits, on en arrive à plusieurs millions d'années de gagnées, toujours en restant sur la base des 68 années qui séparent 1970 et 2038. Multiplier 68 par par 2 exposant 31  – en sachant que  2 exposant 31 équivaut à plusieurs millions...  – . Ce qui laisse tout de même un certain temps, reconnaissons-le.

Le bug de l'an 2038 possède d'ores et déjà une page Wikipédia. Que faut-il en déduire ? Un danger identifié, en informatique, est-il toujours aussi dangereux ?

Dès lors que l'on sait ce qui se profile, il est possible de faire un effort pour le surmonter. C'est ce qui fait le danger de la catastrophe : elle est souvent pernicieuse parce qu'elle arrive par-devers nous. On peut d'ailleurs se référer à la théorie de Jean-Pierre Dupuy, qui parlait de "catastrophisme éclairée". Indubitablement, le nombre de choses probables qui sont susceptible d'arriver de façon imprévue est énorme, en plus d'advenir très fréquemment. Pour autant, cela reste quelque chose qui nous prend par surprise. Prenons l'exemple de Fukushima : le monde se doutait du tremblement de terre à venir, et pourtant, personne n'avait pensé qu'il aurait pu produire une telle vague. Si quelqu'un avait su l'imaginer, rien de tout cela ne se serait produit, puisque la centrale aurait été arrêtée.  Les grands bouleversement, de cet ordre et de cette ampleur sont toujours liés à la surprise qu'ils peuvent occasionner.

Bien évidemment, une page Wikipédia ne résout pas le problème. Mais le fait d'être averti permet de prévoir et de réagir en conséquences. Et la difficulté résulte dans le fait de prévoir quelque chose qui n'est que peu, voire pas probable. Le bug de l'an 2038 est connu, et dès lors le danger est minimisé. Le pire mal qu'il puisse faire, finalement, c'est d'être potentiellement coûteux ; et c'est toutefois un aspect diminué par le fait qu'on aura certainement eu l'occasion de renouveler les parcs d'ordinateurs. Un appareil dure globalement 2 à 3 ans. Ce bug adviendra dans 24 années.

En raison de débordements, nous avons fait le choix de suspendre les commentaires des articles d'Atlantico.fr.

Mais n'hésitez pas à partager cet article avec vos proches par mail, messagerie, SMS ou sur les réseaux sociaux afin de continuer le débat !