Extrait de CPU release Ex0015 : Les bugs du Temps.
Quand on doit stocker informatiquement une date, on enregistre avant tout un nombre, un nombre entier dans la plupart des cas.
Une des astuces utilisées aux débuts de l'informatique était d'écrire les années dans les dates en omettant le siècle. Ainsi 1964 fut écrit 64
. L'idée était de répondre à un besoin immédiat pour un logiciel dans des contraintes de coût aussi bien en mémoire qu'en disque. Alors oui, les développeurs à l'époque se doutaient bien qu'il y aurait un souci pour toutes les dates situées en l'an 2000, mais ils se sont dit que d'ici là, une meilleure astuce d'enregistrement sera disponible, ou le prix de la mémoire serait nettement moins inabordable.
Mais les programmes informatiques se sont retrouvés à durer et à calculer des dates beaucoup plus loin que ce qu'elles avaient été prévues à l'origine. Donc nous avions un risque non négligeable d'avoir de méchantes erreurs de calculs dès qu'un enregistrement de date se fasse après 1999.
Le bug de l'An 2000 était anticipé dans le secteur de la banque et de la finance depuis les années 1980s. Ben oui, forcément, si vous proposez des emprunts immobiliers sur 20 ans, vous avez eu du temps pour vous rendre compte des problèmes.
Les autres secteurs de l'industrie comme les réseaux électriques, la gestion de l'eau ou du téléphone, les centrales de climatisation et les ascenseurs préoccupaient énormément : on ne savait plus trop depuis combien de temps leurs logiciels étaient en place, et s'il allaient passer la date fatidique. Les Cassandres de service prédirent des pertes totales de données, des robinets d'eau qui allaient cracher du gaz, des avions qui tombent comme des pierres, et la perte des comptes bancaires.
Donc les États, les administrations, les grandes entreprises firent appel à des cabinets de consultants afin d'estimer les risques, à des société de service logiciel pour revoir les codes sources ou remplacer les logiciels. Des prestations et des remises à niveaux qui demandèrent des budgets colossaux, établis sur des années d'efforts.
Et le moment venu, le 31 décembre 1999 à 23 h 59 mn 59 s
...
Le bug n’eut pas lieu.
Les entreprises et les organismes certificateurs se sont félicités d'avoir mis les moyens pour passer l'An 2000 sans encombre.
Et peu importe le budget : les frais exceptionnels avaient été anticipés et provisionnés depuis au moins 5 ans, il fallait absolument les dépenser.
Plantage !
Celles-ci étaient allées jusqu'à changer les imprimantes et les multiprises électriques ! Il n'était pas rare d'entendre que certaines filiales qui n'avaient que de chiches budgets d'équipements firent passer des besoins tout à fait quelconques sur le budget du Bug de l'An 2000. Tant qu'on pouvait obtenir du vendeur un papier certifiant que l'onduleur électrique ou l'armoire passe l'An 2000, l'achat était accepté sans sourciller.
Alors oui, à ce stade, le Bug de l'An 2000 a eu lieu car les risques furent largement exagérés.
Au pire pour les entreprises qui n'avaient pas prises leurs précautions, on a vu des factures indiquer 19100
au lieu de 2000
. La plupart du temps, le bug était purement cosmétique, mais les calculs n'étaient pas faux.
À l'époque où ils étaient aussi drôle qu'ils faisaient réfléchir, un sketch des Guignols de l'Info mettait en scène deux patrons de la World Company dans une salle de réunion, après l'euphorie du passage de l'An 2000 et de ses bénéfices engrangés.
Un Sylvestre pose devant chaque place de la table de réunion un mouchoir. L'autre lui demande :
— Tu crois qu'ils vont se rendre compte qu'on les a floués ?
— Tu devrais faire attention aux girafes
— Quelles girafes ? y'en a pas...
— Bien sûr que non, il n'y en a pas : j'ai mis des mouchoirs.
(citation volontairement approximative)
Par la suite, il y eu d'autres dates à bugs comme 2001, 2004, 2008,... la remise à zéro du calendrier Maya le 21 décembre 2012 n'a provoqué qu'une seule catastrophe, le film « 2012 » par Roland Emmerich.
Et pour les bugs futurs...
En 2036, normalement, nous aurons un problème sur la gestion du protocole de temps unifié NTP, qui permet aux ordinateurs de se caler exactement à la même heure. Mais il est aisé de le remplacer par un nouveau protocole, et il n'est pas lié à trop de programmes différents.
le 18 Janvier 2038 à 3:14:08, soit 2 147 483 647 secondes après le 1er janvier 1970, l'heure zéro en temps Epoch, la notation d'heure standard sur tout système Unix, Linux et bien d'autres. Comme c'est un nombre à 32 bits qui l'exprime, en rajoutant une seconde, on retombera à zéro, donc 68 ans en arrière.Or la notation Epoch, on la retrouve au cœur des systèmes d'exploitations, de la gestion des disques durs, des dates dans certaines bases de données,... Epoch est très répandu et se retrouve dans énormément de logiciels. On n'a pas encore commencé à faire les travaux pour prévoir bien plus large, même si des opportunistes ont déjà créé des cabinets de consulting sur le sujet.
Pourtant, les premiers symptômes sont apparus en 2006, et il est très probable que des systèmes de fichiers, des bases de données, des machines embarquées et autres soient toujours utilisées dans 22 ans. Et ce bug a déjà frappé Facebook au 1er Janvier 2016.
À très long terme, le principal danger sera quand on aura oublié toute cette tradition d'erreurs de date, mais qu'une technologie y soit encore sensible. Quand on aura oublié que les ordinateurs et smartphones Apple ont un petit bug qui les empêche de gérer l'année 10 001 correctement, et que ces composants seront une base vitale de nos pacemakers.
Auteur : DaScritch
Illustration graphique : Gerd Altmann, CC0