Partager cet article

2.147.483.647: pourquoi ce nombre peut tout faire buguer et rend fous les informaticiens

Red numbers / DaveBleasdale via FlickrCC License by

Red numbers / DaveBleasdale via FlickrCC License by

L’explosion du vol du 4 juin 1996 (sans équipage) d’Ariane 5, la mort de 28 soldats américains lors de la guerre du Golfe, tués par un missile Scud irakien qu’un missile Patriot avait échoué à intercepter et le plantage du compteur de visionnages de YouTube par Gangnam Style ont la même origine.

La BBC écrit qu’il s’agit d’un bug informatique qui fait planter les programmes quand ils atteignent le nombre 2.147.483.647 (deux milliards cent quarante-sept millions quatre cent quatre-vingt-trois mille six cent quarante-sept). Ce nombre correspond à la valeur maximale programmée dans les microprocesseurs de 32-bits et, lorsque le programme atteint cette capacité maximale de stockage, il plante.

Et ça n’est pas tout. Comme nous l’écrivions le 1er mai, l'autorité américaine de l'aviation civile vient d'ordonner aux compagnies opérant des Boeing 787 Dreamliner de couper de manière périodique l'alimentation électrique des générateurs de l'avion tous les 248 jours. Or, compté en centièmes de secondes, ce nombre de jours correspond au même nombre maudit.

L'article de la BBC raconte que c'est aussi ce bug qui est soupçonné d'avoir causé la perte de contact par la Nasa en 2013 de sa sonde spatiale Deep Impact. 

D'autres conséquences de ce bug sont plus amusantes: le nombre est devenu célèbre quand le clip Gangnam Style du Sud-Coréen PSY l'a atteint en nombre de vues sur YouTube, obligeant l'entreprise à reprogrammer son compteur pour désormais accepter plusieurs quintillions de vues (ou 1030). C'est aussi ce plantage qui rend le pacifiste Gandhi soudainement belliqueux dans le jeu vidéo de stratégie Civilization, menaçant les joeurs d'utiliser l'arme nucléaire pour les détruire...

Un nouveau bug de l’an 2000 en 2038

Selon la BBC, un programmeur a anticipé il y a déjà 15 ans qu’il fallait se préparer à un bug de grande ampleur le 19 janvier 2038 à 3 heures 14 minutes et 7 secondes, temps universel. A ce moment précis, tous les logiciels qui tournent sous Unix et comptent en secondes à partir du 1er janvier 1970 à minuit atteindront le fameux nombre 2.147.483.647.

Dès 1999, un article du New York Times alertait sur l'urgence qu'il y avait à se pencher sur cette échéance qui n'est lointaine qu'en apparence. Par exemple, les remboursements de prêts sur 30 ans ont été dès 2009 calculés jusqu'à 2039. Mais surtout, les programmes informatiques sont construits par couches successives, et les plus récentes sont vulnérables aux couches inférieures...

Les informaticiens le reconnaissent, on ne sait pas encore précisément quelles conséquences pourrait avoir ce bug de l'an 2038, ni s'il sera plus grave que celui du passage à l'an 2000, finalement bien maîtrisé. Et nul doute qu'un marché de reprogrammation de ce bug se développera avant la date fatidique.

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour réaliser des statistiques de visites, vous proposer des publicités adaptées à vos centres d’intérêt et nous suivre sur les réseaux sociaux. > Paramétrer > J'accepte