Qu'est-ce que le bug Y2K et pourquoi at-il terrifié le monde?
Des milliards de dollars ont été dépensés pour résoudre le bogue de l'an 2000. Les systèmes gouvernementaux, militaires et corporatifs étaient tous menacés, mais nous avons réussi, plus ou moins, à rester indemnes. Alors, la menace était-elle même réelle?
Sommaire
Comment nous avons planté notre propre bombe à retardement
Dans les années 50 et 60, représenter des années à deux chiffres est devenu la norme. L'une des raisons à cela était de gagner de l'espace. Les premiers ordinateurs avaient de petites capacités de stockage et seulement une fraction de la RAM des machines modernes. Les programmes devaient être aussi compacts et efficaces que possible. Les programmes ont été lus à partir de cartes perforées, qui avaient une largeur finie évidente (généralement, 80 colonnes). Vous ne pouviez pas taper après la fin de la ligne sur une carte perforée.
Partout où on pouvait économiser de l'espace, c'était. Une astuce simple, et donc courante, consistait à stocker les valeurs de l'année sur deux chiffres. Par exemple, quelqu'un donnerait 66 au lieu de 1966. Parce que le logiciel traitait toutes les dates comme se produisant au 20e siècle, il était entendu que 66 signifiait 1966.
Finalement, les capacités matérielles se sont améliorées. Il y avait des processeurs plus rapides, plus de RAM et des terminaux informatiques remplaçaient les cartes perforées et les bandes. Des supports magnétiques, tels que des bandes et des disques durs, ont été utilisés pour stocker des données et des programmes. Cependant, à ce moment-là, il y avait un grand nombre de données existantes.
La technologie informatique évolue, mais les fonctions des départements qui utilisent ces systèmes restent les mêmes. Même lorsque le logiciel a été renouvelé ou remplacé, le format des données est resté inchangé. Le logiciel a continué à utiliser et prévoit des années à deux chiffres. À mesure que davantage de données s'accumulaient, le problème s'est aggravé. Le corpus de données était énorme dans certains cas.
Faire du format de données une vache sacrée était une autre raison. Tous les nouveaux logiciels devaient se plier aux données, qui n'étaient jamais converties pour utiliser des années à quatre chiffres.
Les limitations de stockage et de mémoire se posent également dans les systèmes contemporains. Par exemple, les systèmes embarqués, tels que les micrologiciels dans les routeurs et les pare-feu, sont évidemment limités par les limitations d'espace.
Les contrôleurs logiques programmables (PLC), les machines automatisées, les lignes de production robotisées et les systèmes de contrôle industriels ont tous été programmés pour utiliser une représentation des données aussi compacte que possible.
La réduction de quatre chiffres à deux est un gain de place considérable: c'est un moyen rapide de réduire de moitié vos besoins de stockage. De plus, plus vous avez de dates à traiter, plus les avantages sont importants.
Le Gotcha éventuel
Si vous n'utilisez que deux chiffres pour les valeurs de l'année, vous ne pouvez pas différencier les dates de différents siècles. Le logiciel a été écrit pour traiter toutes les dates comme si elles étaient au 20e siècle. Cela donne de faux résultats lorsque vous atteignez le siècle prochain. L'année 2000 serait stockée comme 00. Par conséquent, le programme l'interpréterait comme 1900, 2015 serait traité comme 1915, et ainsi de suite.
À minuit le 31 décembre 1999, tous les ordinateurs – et tous les appareils dotés d'un microprocesseur et d'un logiciel intégré – qui stockaient et traitaient les dates sur deux chiffres seraient confrontés à ce problème. Peut-être que le logiciel accepterait la mauvaise date et continuerait, produisant une sortie poubelle. Ou, peut-être que cela lancerait une erreur et continuerait – ou, étoufferait complètement et planterait.
Cela ne s’appliquait pas uniquement aux ordinateurs centraux, aux mini-ordinateurs, aux réseaux et aux ordinateurs de bureau. Des microprocesseurs fonctionnaient dans les avions, les usines, les centrales électriques, les systèmes de contrôle des missiles et les satellites de communication. Presque tout ce qui était automatisé, électronique ou configurable contenait du code. L'ampleur du problème était monumentale.
Que se passerait-il si tous ces systèmes passaient de 1999 une seconde à 1900 la suivante?
Typiquement, certains quartiers prédisaient la fin des jours et la chute de la société. Dans des scènes qui feront écho à de nombreuses personnes dans la pandémie actuelle, certains ont décidé de stocker des fournitures essentielles. D'autres ont appelé le tout un canular, mais, indéniablement, c'était une grande nouvelle. Il est devenu connu sous le nom de «millenium», «an 2000» et «Y2K».
Il y avait d'autres préoccupations secondaires. L’année 2000 a été une année bissextile et de nombreux ordinateurs – même les systèmes avertis des années bissextiles – n’en ont pas tenu compte. Si une année est divisible par quatre, c'est une année bissextile; s'il est divisible par 100, ce n'est pas le cas.
Selon une autre règle (moins connue), si une année est divisible par 400, c'est une année bissextile. Une grande partie du logiciel qui avait été écrit n’avait pas appliqué cette dernière règle. Par conséquent, il ne reconnaîtrait pas l'an 2000 comme une année bissextile. Par conséquent, la façon dont il se produirait le 29 février 2000 était imprévisible.
Dans l’état de l’Union de 1999 du président Bill Clinton, il a déclaré:
«Nous avons besoin que chaque État et gouvernement local, chaque entreprise, grande et petite, travaille avec nous pour nous assurer que (le) bug informatique de l'an 2000 restera dans les mémoires comme le dernier casse-tête du 20e siècle, pas la première crise du 21e siècle. . "
En octobre dernier, Clinton avait signé la loi de 2000 sur la divulgation d'informations et de préparation.
Cela va prendre du temps
Bien avant 1999, les gouvernements et les entreprises du monde entier avaient travaillé dur pour trouver des correctifs et mettre en œuvre des solutions de contournement pour l'an 2000.
Au début, il semblait que la solution la plus simple consistait à étendre le champ date ou année pour contenir deux chiffres supplémentaires, ajouter 1900 à chaque valeur d'année et ta-da! Vous avez ensuite eu des années à quatre chiffres. Vos anciennes données seraient conservées correctement et les nouvelles données s'intégreraient bien.
Malheureusement, dans de nombreux cas, cette solution n’était pas possible en raison du coût, du risque perçu pour les données et de l’ampleur de la tâche. Dans la mesure du possible, c'était la meilleure chose à faire. Vos systèmes seraient sécurisés jusqu'à 9999.
Bien sûr, cela vient de corriger les données. Le logiciel a également dû être converti pour gérer, calculer, stocker et afficher les années à quatre chiffres. Des solutions créatives sont apparues qui ont supprimé le besoin d'augmenter le stockage pendant des années. Les valeurs du mois ne peuvent pas être supérieures à 12, mais deux chiffres peuvent contenir des valeurs allant jusqu'à 99. Vous pouvez donc utiliser la valeur du mois comme indicateur.
Vous pouvez adopter un schéma comme celui-ci:
- Pour un mois compris entre 1 et 12, ajoutez 1900 à la valeur de l'année.
- Pour un mois compris entre 41 et 52, ajoutez 2000 à la valeur de l'année, puis soustrayez 40 du mois.
- Pour un mois compris entre 21 et 32, ajoutez 1800 à la valeur de l'année, puis soustrayez 20 du mois.
Il fallait bien sûr modifier les programmes pour encoder et décoder les dates légèrement obscurcies. La logique des routines de vérification des données a également dû être ajustée pour accepter des valeurs folles (comme 44 pendant un mois). D'autres schémas ont utilisé des variantes de cette approche. Le codage des dates sous forme de nombres binaires 14 bits et le stockage des représentations entières dans les champs de date était une approche similaire au niveau du bit.
Un autre système qui a réaffecté les six chiffres utilisés pour stocker les dates entièrement dispensées de mois. Au lieu de stocker MMDDYY
, ils sont passés à un DDDCYY
format:
- DDD: Le jour de l'année (1 à 365, ou 366 pour les années bissextiles).
- C: Un drapeau représentant le siècle.
- YY: L'année.
Les solutions de contournement abondaient également. Une méthode consistait à choisir une année comme année pivot. Si toutes vos données existantes étaient plus récentes que 1921, vous pouvez utiliser 1920 comme année pivot. Toutes les dates entre 00 et 20 ont été prises pour signifier 2000 à 2020. Tout ce qui va de 21 à 99 signifiait 1921 à 1999.
Il s'agissait bien sûr de correctifs à court terme. Il vous a fallu quelques décennies pour implémenter un vrai correctif ou migrer vers un système plus récent.
Revisiter les systèmes de travail pour mettre à jour les anciens correctifs encore en cours d'exécution? Oui en effet! Malheureusement, la société ne fait pas grand-chose – il suffit de regarder toutes les applications COBOL qui sont encore largement utilisées.
Conforme à l'an 2000? Prouve le!
La réparation des systèmes internes était une chose. La correction du code, puis la distribution de correctifs à tous les appareils client sur le terrain en était une autre, entièrement. Et qu'en est-il des outils de développement logiciel, comme les bibliothèques de logiciels? Avaient-ils compromis votre produit? Avez-vous utilisé des partenaires de développement ou des fournisseurs pour une partie du code de votre produit? Leur code était-il sûr et conforme à l'an 2000? Qui était responsable si un client ou un client avait un problème?
Les entreprises se sont retrouvées au milieu d'une tempête de paperasse. Les entreprises tombaient sur elles-mêmes et demandaient des déclarations de conformité juridiquement contraignantes aux fournisseurs de logiciels et aux partenaires de développement. Ils voulaient voir votre plan de préparation Y2K global et vos rapports de révision et de correction du code Y2K spécifiques au système.
Ils voulaient également une déclaration confirmant que votre code était sûr pour l'an 2000, et que, dans le cas où quelque chose de mauvais se produirait le 1er janvier 2000 ou après, vous accepteriez la responsabilité et ils seraient absous.
En 1999, je travaillais en tant que responsable du développement d'une société de logiciels basée au Royaume-Uni. Nous avons fabriqué des produits qui interfacent avec les systèmes téléphoniques d'affaires. Nos produits à condition que les centres d'appels professionnels de gestion automatique des appels comptent quotidiennement. Nos clients étaient des acteurs majeurs dans ce domaine, notamment BT, Nortel et Avaya. Ils revendaient nos produits rebadgés à un nombre incalculable de leurs clients à travers le monde.
Sur le dos de ces géants, notre logiciel fonctionnait dans 97 pays différents. En raison de différents fuseaux horaires, le logiciel devait également passer jusqu'à minuit le soir du Nouvel An 1999, plus de 30 fois!
Il va sans dire que ces leaders du marché se sentaient quelque peu exposés. Ils voulaient des preuves tangibles que notre code était conforme. Ils voulaient également savoir que la méthodologie de nos revues de code et de nos suites de tests était solide et que les résultats des tests étaient reproductibles. Nous avons traversé le mangle, mais nous l'avons traversé avec un bon état de santé. Bien sûr, gérer tout cela prenait du temps et de l'argent. Même si notre code était conforme, nous avons dû supporter le coup financier de le prouver.
Pourtant, nous sommes descendus plus légers que la plupart. Le coût global total de la préparation de l'an 2000 a été estimé entre 300 et 600 milliards de dollars par Gartner et 825 milliards de dollars par Capgemini. Les États-Unis ont dépensé à eux seuls plus de 100 milliards de dollars. Il a également été calculé que des milliers d'années-homme ont été consacrées à la résolution du bogue de l'an 2000.
The Millennium Dawns
Il n'y a rien de tel que de mettre votre argent là où se trouve votre bouche. Le soir du Nouvel An 1999, John Koskinen, président du Conseil présidentiel sur la conversion à l'an 2000, est monté à bord d'un vol qui serait encore en vol à minuit. Koskinen voulait démontrer au public sa foi dans la réparation pluriannuelle extrêmement coûteuse qu'il avait fallu pour préparer les États-Unis au millénaire. Il a atterri en toute sécurité.
Il est facile pour les non-techniciens de regarder en arrière et de penser que le bogue du millénaire a été exagéré, sur-typé et juste un moyen pour les gens de gagner de l'argent. Il ne s'est rien passé, non? Alors, quel était le problème?
Imaginez qu'il y ait un barrage dans les montagnes, retenant un lac. En dessous, c'est un village. Un berger annonce au village qu'il a vu des fissures dans le barrage, et cela ne durera pas plus d'un an. Un plan est établi et les travaux commencent à stabiliser le barrage. Enfin, les travaux de construction sont terminés et la date de défaillance prévue passe sans incident.
Certains villageois pourraient commencer à marmonner qu'ils savaient qu'il n'y avait rien à craindre, et regardez, il ne s'est rien passé. C'est comme s'ils avaient un angle mort pour le moment où la menace a été identifiée, traitée et éliminée.
L'équivalent de l'an 2000 du berger était Peter de Jager, l'homme crédité d'avoir porté la question à la connaissance du public dans un article de 1993 Monde de l'ordinateur magazine. Il a continué de faire campagne jusqu'à ce qu'il soit pris au sérieux.
À l'aube du nouveau millénaire, de Jager était également en route sur un vol de Chicago à Londres. Et aussi, tout comme celui de Koskinen, le vol de Jager est arrivé en toute sécurité et sans incident.
Ce qui est arrivé?
Malgré les efforts herculéens pour empêcher Y2K d'affecter les systèmes informatiques, il y a eu des cas qui se sont glissés dans le filet. La situation dans laquelle le monde se serait retrouvé sans filet aurait été impensable.
Les avions ne sont pas tombés du ciel et les missiles nucléaires ne se sont pas lancés eux-mêmes, malgré les prédictions des malfaiteurs. Bien que le personnel d'une station de repérage américaine ait frisson quand ils ont observé le lancement de trois missiles en provenance de Russie.
Cependant, il s'agissait d'un lancement commandé par l'homme de trois missiles SCUD alors que le différend russo-tchétchène continuait de s'intensifier. Cela a cependant augmenté les sourcils et le rythme cardiaque.
Voici quelques autres incidents qui se sont produits:
L'héritage: 20 ans plus tard
Rappelez-vous ces années pivot que nous avons mentionnées? Ils ont été la solution de contournement qui a acheté des personnes et des entreprises quelques décennies pour apporter une véritable solution à l'an 2000. Certains systèmes dépendent encore de ce correctif temporaire et sont toujours en service. Nous avons déjà constaté quelques défaillances en service.
Au début de cette année, les parcmètres de New York ont cessé d'accepter les paiements par carte de crédit. Cela a été attribué au fait qu'ils ont atteint les limites supérieures de leur année pivot. Les 14 000 horodateurs ont dû être visités et mis à jour individuellement.
En d'autres termes, la grosse bombe à retardement a engendré beaucoup de petites bombes à retardement.