Bogue de l'an 2000
Le bogue de l'an 2000 est une série de manques de prévoyance et d'erreurs de programmation dans les logiciels ou le matériel informatique, qui causent un traitement erroné des dates à partir du 1er janvier 2000. Le terme bogue du millénaire a aussi été utilisé, même si, strictement, le nouveau millénaire commençait le 1er janvier 2001. Y2K (Y pour year, K pour kilo) fut le sigle anglais pour nommer le problème.
La très grande médiatisation de ce problème en 1999 a amené une grande partie de la population mondiale à croire que des industries critiques (électricité, finances, etc.) et des fonctions du gouvernement pouvaient s'arrêter de fonctionner à 00h00, le 1er janvier 2000 et à d'autres dates critiques comme le 9 septembre 1999 (9.9.99) ou le 29 février 2000 (année bissextile).
Finalement, aucun problème catastrophique n'a été révélé. Cependant des sommes se comptant en milliards ont dû être dépensées pour réviser et le cas échéant, corriger ou remplacer les logiciels défectueux.
| Sommaire |
Description
On pensait parfois à raison que les programmes informatiques pouvaient arrêter de fonctionner ou produiraient des résultats erronés. Cela parce que les années étaient stockées avec seulement les deux derniers chiffres. Ainsi, l'année 2000 serait représentée par 00 et ne suivrait pas 1999 (99) dans une séquence numérique. Ceci créerait des comparaisons de données donnant des résultats incorrects. On pensait que les systèmes embarqués, faisant l'utilisation de logique similaire, pourraient ne plus fonctionner, ce qui causerait le dysfonctionnement d'outils et d'autres infrastructures cruciales.
On a également parlé de bogue de l'an 1999, la séquence « 99 », ayant été parfois utilisée par les programmeurs pour marquer la fin de fichier. Enfin, on redoutait également le 29 février de l'année 2000. C'était en effet une année bissextile, bien que 2000 soit divisible par 100.
Dans les années précédant 2000, quelques entreprises et gouvernements, lorsqu'ils ont fait des tests pour déterminer les impacts potentiels, ont rapporté que des systèmes critiques auraient besoin de grandes réparations ou risqueraient des problèmes sérieux. De 1997 à 1998, des estimations incertaines et alarmistes rapportaient à propos d'entreprises et d'industries une faible préparation de l'événement. L'imprécision de ces rapports et l'incertitude des possibilités que le bogue de l'an 2000 se produise ainsi --que des centaines de milliards de dollars soient dépensés dans la correction du problème,-- furent une raison majeure de la peur du public. Des comités spéciaux furent établis par les gouvernements pour analyser les travaux nécessaires pour éviter le bogue, particulièrement pour les infrastructures cruciales comme les télécommunications, afin d'assurer que la plupart des services critiques soient prêts au 1er janvier. À partir de 1999, même si les mêmes organisations et gouvernements prétendaient être bien préparées, la confiance du public n'y était plus.
Le problème a alors été surexploité par les médias qui y ont sans doute vu un moyen commode d'exprimer les craintes millénaristes diffuses. Certains estiment même que cette psychose aurait été volontairement alimentée par des entreprises informatiques dans le but de pousser les consommateurs et les professionnels à s'équiper de matériel informatique plus récent. Un label « compatible an 2000 » fut créé et attribué aux matériels informatiques censés ne pas souffrir du passage à l'an 2000.
Ce n'est que le passage sans problèmes à l'année 2000 qui a complètement écarté les craintes du public.
La faille des programmes
Le problème de programmation derrière le bogue de l'an 2000 était bien véritable. Dans les années 1960, la mémoire et l'entreposage des données en informatique étaient coûteux et rares, et la plupart des traitements étaient faits sur des cartes perforées représentant le texte sur des lignes de 80 colonnes seulement. Les langages de programmation du temps, comme le COBOL et le RPG, traitaient les nombres à partir de leur représentation ASCII ou EBCDIC. Ils utilisaient parfois un bit supplémentaire appelé « zone de perforation » pour garder un caractère pour les nombres négatifs, ou compressaient parfois deux chiffres en un sous une forme appelée décimal codé binaire, mais sinon, ils traitaient les nombres comme du texte ordinaire. Au fil du temps, les cartes à perforer furent remplacées par des rubans magnétiques, des fichiers sur disque, puis des bases de données simples comme ISAM, mais la structure des programmes ne changeait habituellement pas beaucoup. Des logiciels populaires ont continué la pratique de stocker les dates comme du texte. Rares étaient les logiciels utilisant les bases de données qui stockaient ou même prenaient en compte les deux chiffres du siècle, ceux-ci étaient presque systématiquement extrapolés.
Économiser deux caractères pour chaque champ de date était jusqu'aux années 90 une économie vitale pour certain systèmes. La plupart des programmeurs du temps ne s'attendaient pas à ce que leurs travaux demeurent en utilisation durant plusieurs décennies, et ne considéraient donc pas cela comme un problème important. Le problème a été reconnu pour la première fois en 1958 par Bob Bemer par le résultat d'un travail sur un logiciel de généalogie. Il passa les 20 années suivantes à essayer de sensibiliser les programmeurs, IBM, le gouvernement des États-Unis et l'ISO au problème, avec peu de résultats. Ceci incluait la recommandation d'utiliser quatre chiffres dans les clauses PICTURE de COBOL pour les années. Cela aurait pu être fait par les programmeurs à n'importe quel moment à partir de la version initiale du premier compilateur COBOL en 1961. Toutefois, l'indifférence et le manque de vision à long terme a empêché ce conseil d'être suivi. Malgré des articles de magazines sur le sujet à partir de 1970, la majorité des programmeurs ont seulement commencé à reconnaître l'année 2000 comme un problème dans les années 1990, mais même alors, il a été grandement ignoré jusqu'aux toutes dernières années de la décennie.
En pratique le codage des dates sur deux chiffres est toujours utilisé sans grand problèmes en 2003 dans de nombreux systèmes, les programmeurs utilisant des techniques de fenêtrage pour déduire le siècle.
Un problème connexe devrait affecter les systèmes Unix en 2038. En effet ces ordinateurs utilisent le nombre de secondes écoulé depuis le 1er janvier 1970 pour exprimer les dates, et en 2038 le nombre de seconde écoulés devrait dépasser les capacités de stockages des nombres signés sur quatre octets. Sur les variantes d'Unix représentant ce nombre de secondes avec des entiers non signés (ce qui, pour des raisons techniques, est peu fréquent), le problème se posera en 2106. Pour éviter ce problème il faut stocker la date sur un plus grand nombre de bits, usuellement avec l'arrivée de processeurs 64 bits, ce passage sur 64 bits permet de stocker des dates à plus de 250 milliards d'années dans le futur.
La faille des composants
Quelques fabricants du circuit faisant fonction d'horloge électronique dans les micro-ordinateurs avaient fabriqué des composants incapables de stocker ou d'exploiter les deux chiffres du siècle. Ceux-ci valaient 19 par défaut, comme pour les programmes extrapolés. Évidemment, de tels circuits, et par conséquent les micro-ordinateurs et leurs logiciels, pouvaient difficilement passer avec succès le 01/01/2000 sans commettre une erreur d'interprétation de date. Ceux-ci se retrouvaient dans nombre de micro-ordinateurs vétustes, mais pas seulement ceux-là. Certains constructeurs peu scrupuleux ou ignorants avaient continué à utiliser des composants connus comme bogués mais beaucoup moins chers.
Des rustines logicielles furent distribuées à l'envi pour être mises en place avant le jour fatidique.
Aspect économique
Le traitement du bogue de l'an 2000 a créé un important appel d'air sur le marché de l'emploi informatique, d'autant que cette échéance était simultanée à la bulle internet, et en Europe au passage à l'euro. Les sociétés de services en informatique ont alors fortement augmenté leurs effectifs.
Lien externe
- Une page sur les conséquences du bug de l'an 2000, ainsi que sur les autres bugs du même genre passés ou à venir
| Image manquante Symbole-ordinateur.png | Portail Informatique - Accédez d'un seul coup d’œil à toute la série des articles de Wikipédia concernant l'informatique. |
