Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
Technologie du net

Blog du High-Tech des dernières tendances du moment. Nos articles sont de source sûre, ils proviennent pour la plupart du temps de magasins spécialisés où la clientèle qui ont testé ou validé cette technologie.

Code informatique : le bug de l’an 2038

Publié le 1 Août 2014 par Skero in Réseaux Sociaux

http://www.atlantico.fr/sites/atlantico.fr/files/styles/une/public/images/2014/05/rtrfzyy.jpg

 

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 ?

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.

 

Commenter cet article