VIVE LA RÉVOLUTION
Accueil du site > Comment publier un article > Après le bug de l’an 2000, le bug de l’an 2038 !

Après le bug de l’an 2000, le bug de l’an 2038 !

samedi 27 février 2021, par anonyme (Date de rédaction antérieure : 27 février 2021).

En 2038, un bug qui montrera la fragilité de l’informatique

https://www.letemps.ch/sciences/203…

Publié vendredi 26 février 2021 à 16:36

Denis Delbecq

Le bug de l’an 2000 avait donné des sueurs froides aux informaticiens, sans mener à la catastrophe attendue. De nouveaux dysfonctionnements pourraient survenir en raison de la manière dont les systèmes d’exploitation stockent le temps

Que ferez-vous le 19 janvier 2038 à 3h 14 min et 7 s ? Sans doute serez-vous en train de dormir. Mais pendant votre sommeil, le franchissement de cette date et de cette heure pourrait engendrer des dysfonctionnements informatiques. Une nouvelle manifestation de la difficulté à représenter correctement le temps dans les mémoires et les fichiers. Ou plus précisément, la conséquence d’une certaine insouciance qui a longtemps prévalu dans l’informatique, dont le fameux « bug de l’an 2000 » avait été un coûteux avatar.

« Il ne s’agissait pas d’un bug mais d’un problème de conception, rappelle Gérard Berry, professeur émérite au Collège de France et auteur de L’Hyperpuissance informatique*. Les ordinateurs ont commencé à se développer avec la période héroïque du cobol et de l’informatique de gestion. Une époque où l’on travaillait de manière artisanale ; personne n’imaginait que des programmes dureraient des décennies. »

C’est ainsi que l’année était stockée sur deux chiffres pour économiser de la mémoire, au lieu des quatre que nous utilisons couramment. Au 1er janvier 2000, l’année allait donc passer de 99 à 00 et remonter le temps d’un siècle, au risque de provoquer une catastrophe économique… qui ne s’est pas produite. « Pour corriger le problème, il a fallu des investissements humains et financiers immenses. Tout semble s’être passé sans encombre. Il y a sûrement eu des victimes, mais elles ne s’en sont pas vantées ! » Rien qu’aux Etats-Unis, 100 milliards de dollars ont été dépensés pour prévenir et guérir ce « Y2K ».

Date limite

Trente-huit ans après, un phénomène similaire pourrait donc se produire, mais de bien moindre ampleur. Il est une nouvelle fois question de la manière dont les systèmes d’exploitation et les logiciels stockent le temps. Le codage est plus subtil qu’au siècle dernier, mais non moins confronté à une date limite. Le temps est représenté par le nombre de secondes écoulées depuis une date de référence fixée au 1er janvier 1970 à 00h00m00s UTC (GMT). Par exemple, à l’heure où nous écrivons ces lignes, il se sera écoulé 1 601 971 542 secondes depuis le 1er janvier 1970.

Pour éviter l’imprécision des nombres à virgule, on utilise des nombres entiers, dont la taille est nécessairement limitée. Ils étaient le plus souvent codés sur 32 bits, ce qui semblait largement suffisant. Le premier d’entre eux représente le signe (un moins pour les dates antérieures à la référence, et un plus pour les dates postérieures) ; les 31 autres égrènent les secondes : la date la plus lointaine qui peut être représentée correspond à 2 147 483 647 secondes depuis le 1er janvier 1970… soit le 19 janvier 2038 à 03h14m07s UTC.

Au-delà, le signe bascule en négatif et le temps est rembobiné au… 13 décembre 1901 à 20h 45 min 52 s UTC ! Fort heureusement, la parade est toute trouvée et sera cette fois pérenne : il suffit de coder la date sur 64 bits, le standard des composants informatiques du moment. La date de péremption de l’horloge est alors repoussée de plus de 292 milliards d’années, environ vingt fois l’âge de l’Univers !

Ce défaut est d’ores et déjà corrigé dans les systèmes d’exploitation les plus répandus, comme Unix, Linux, Windows ou MacOS. En revanche, dans certains programmes, à l’image des bases de données MySQL, la date reste codée sur 32 bits. C’est aussi le cas dans les vieilles versions des systèmes d’exploitation et dans de nombreux ordinateurs embarqués dans toutes sortes de systèmes qui sont plus difficiles à mettre à jour. « Le temps joue un rôle central dans beaucoup de ces systèmes embarqués », insiste Gérard Berry.

Ils ne sont donc pas à l’abri de problèmes, à l’image du système de gestion des boutons d’appel dans les chambres de nombreux hôpitaux suisses qui a « planté » lors du passage au 1er janvier 2019, rendant les sonnettes muettes. Un dysfonctionnement heureusement bénin et vite corrigé. Tout comme celui qui toucha les iPhone 4 aux Etats-Unis au moment du passage à l’heure d’hiver en 2010, retardant d’une heure les sonneries de réveil. Plus gênant, au passage du 1er janvier cette année-là, un bug a bloqué plus de 20 millions de cartes de paiement et de retrait en Allemagne pendant plusieurs jours.

Avions de chasse qui perdent les pédales

Les conséquences d’un temps mal géré peuvent être dramatiques : « A Dhahran, en février 1991, un missile américain Patriot a raté l’interception d’un scud irakien qui a tué 28 soldats et blessé 98 autres, raconte Gérard Berry. Un bug dans la gestion du temps du Patriot obligeait à redémarrer son ordinateur de bord toutes les quatre heures. » Au moment de lancer le missile, son informatique fonctionnait depuis une centaine d’heures et l’horloge avait dérivé de 34 centièmes de seconde, assez pour rater la cible de 750 mètres.

Un autre incident, survenu en février 2007, montre à quel point ces systèmes embarqués sont vulnérables aux bugs : huit avions de chasse furtifs F22 Raptor flambant neufs de l’US Air Force ont perdu les pédales en franchissant la ligne de changement de date à l’ouest d’Hawaii, leurs systèmes vitaux (navigation, gestion du carburant, communications) cessant de fonctionner. Par chance, ils ont pu être guidés de visu jusqu’à leur base par des avions ravitailleurs présents sur les lieux.

« La gestion du temps est de plus en plus compliquée avec les microprocesseurs récents, souligne Gérard Berry. Il y a vingt ou trente ans, il était facile de prévoir la durée que prenait l’exécution d’un programme. Aujourd’hui, avec les nombreuses optimisations qui se déroulent de manière autonome au sein même des puces, cela relève de la prouesse. Or dans de nombreux systèmes, cette capacité de prédiction est critique, par exemple dans les systèmes de conduite des avions ou des fusées. Nous n’en avons pas fini avec le temps ! »

* Editions Odile Jacob, 2017

Répondre à cet article

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0