XLOVE59-BOY

le bug de l an 2000

ENFIN CA NE FAIT PLUS PEUR C ETAIT UNE LEGENDE URBAINE

PREUVE QUE DES LEGENDES SONT FAUSSES. . .

Le bogue de l'an 2000 est un ensemble de problèmes de programmation portant sur le format de la date dans les mémoires des ordinateurs et, par conséquent dans les matériels informatiques. Dans de nombreux programmes et beaucoup de bases de données, il manquait les deux chiffres 19 correspondant au siècle, de sorte qu'au passage de 99 à 100, en réalité 00, de nombreux dysfonctionnements devaient se produire dans ces traitements informatiques, 00 correspondant à l'année 1900 au lieu de 2000.

La communication qui a été faite sur le problème du bogue de l'an 2000 a provoqué, dans la société, certaines peurs irrationnelles et sans grand rapport avec le problème : des avions qui risquaient de tomber, des ascenseurs qui pouvaient tomber en panne... En réalité, le problème de l'an 2000 était bien davantage lié à la gestion sur les grands ordinateurs dits mainframes (300 à 600 milliards de lignes de programme potentiellement affectées dans le monde), qu'aux systèmes industriels.

Assez curieusement donc, ce problème a réveillé, dans l'inconscient collectif, certaines peurs sur les risques liés au manque de maîtrise des êtres humains sur la technique : (claustrophobie, risque de chute sous l'effet de la pesanteur,...). Presque simultanément en France, les deux tempêtes de décembre 1999 ont entraîné quelques dizaines de morts. Ces phénomènes climatiques ne furent pas isolés, puisqu'ils furent suivis, dans les débuts du IIIe millénaire, par des sécheresses et des inondations. Les dégâts provoqués par le changement climatique, alors que le bogue n'avait entraîné pratiquement aucun dysfonctionnement apparent, ont laissé penser, dans l'esprit de beaucoup de gens, que le problème informatique de l'an 2000 était imaginaire, et cette façon de penser se rencontre même chez beaucoup de professionnels de l'informatique, au moins chez ceux qui sont spécialisés dans la micro-informatique ou les applications du web, qui étaient très peu affectées en comparaison des grands systèmes.

La communication institutionnelle, à partir de 1997 environ, a porté essentiellement sur les services critiques (services essentiels d'électricité et d'eau, transports aériens, services financiers, etc.) et des fonctions de gouvernement.

Les dates critiques étaient situées aux alentours de l'année 2000, mais il était nécessaire d'anticiper car les cycles de gestion pouvent être très longs (plusieurs années).

La principale date qui posait problème était le 1er janvier 2000. D'autres dates posaient également problème : le 9 septembre 1999 (9.9.99), le 29 février 2000 (année bissextile).

Finalement, aucun problème critique ne s'est produit. Cependant des sommes se comptant en centaines de milliards de $ (300 à 600 milliards, selon les analystes du Gartner Group, estimation basée sur un ratio de 1 $ par ligne), ont été dépensées pour traiter le problème de 1995 à 2000.

Y2K [modifier]

Y2K (wytookay Y pour year, K pour kilo) fut le sigle américain le plus couramment employé pour désigner le problème.

Par extension, Y2K a désigné le projet mondial de conversion des systèmes informatiques occasionné par le passage à l'an 2000.

Le terme millenium bug a aussi été utilisé aux États-Unis, même si stricto sensu, le nouveau millénaire commençait le 1er janvier 2001. Les Américains ont aussi parlé de Y2K bug, Y2K time bomb

Le web était très peu affecté par le bogue de l'an 2000. En revanche, les réseaux internet ont beaucoup servi à diffuser les informations pour la résolution du problème dans les années précédent l'an 2000, en particulier le centre d'information sur le web du consultant Peter de Jaeger.

Les origines du problème [modifier]

Le problème de programmation qui faisait craindre le bogue de l'an 2000 était avéré. Dans les années 1960, la mémoire et l'entreposage des données en informatique étaient coûteux et rares, 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 de cette époque, 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.

Cette pénurie de place en mémoire et dans les fichiers a incité les programmeurs à coder les années sur deux chiffres seulement. Les évolutions spectaculaires des moyens de traitement et de stockage n'ont pas vraiment remis en cause ces pratiques.

Il est cependant évident que cette pratique aurait dû être interdite depuis très longtemps, au moins dans les institutions qui traitent des dossiers sur de très longues durées (par exemple les prêts bancaires sur 15 ou 30 ans) et même dans bien d'autre secteurs.

Pilotage [modifier]

Le pilotage de cette opération s'est mis en place progressivement entre 1995, date à laquelle IBM a reconnu le problème, et 1998.

En France, le CIGREF (Club Informatique des Grandes Entreprises Françaises) s'est saisi du problème en 1995. Il a mis en place un premier groupe de travail constitué d'une dizaine de grandes entreprises.

C'est aussi en 1995 que Peter de Jaeger, ingénieur entré chez IBM en 1980 qui ne cessait d'alerter sur le problème, a quitté son entreprise pour fonder un centre d'information sur le passage à l'an 2000 (year 2000 information center). Son site web était le plus interconnecté au monde avec 25 000 liens.[réf. nécessaire]

Les services d'intelligence américains se sont penchés sur la question dès 1996. Pour le DoD (Department of Defense), c'est le cabinet Mitre qui a effectué les adaptations des systèmes. Le gouvernement américain a mis en place une cellule sous la responsabilité du vice-président Al Gore, et a installé une salle de commandement qui fournissait une visibilité mondiale sur l'avancement du projet. Les Américains étaient en mesure de connaître l'avancement de chaque pays dans la résolution du problème.

En France, le pilotage gouvernemental s'est mis en place en 1998. Il a porté sur cinq secteurs de services essentiels, dont l'électricité et l'eau.

En Europe, la charge de travail pour les informaticiens était telle que, dans la plupart des cas, il a été nécessaire de repousser au-delà du 1er janvier 2000 les conversions à l'euro qui ne concernaient pas directement les marchés financiers.

La période transitoire de passage à l'euro a donc dû se dérouler en deux phases :

  • Première phase en 1999 pour les systèmes financiers,
  • Deuxième phase en 2000-2001 pour les autres systèmes. Les bascules à l'euro, c'est-à-dire les conversions de la devise dans les systèmes comptables de la monnaie locale à l'euro, ont été effectuées la plupart du temps dans cette deuxième phase. Peu d'entreprises ont réussi à faire la bascule à l'euro en 1999.

Il faut noter que le gouvernement français a lancé une politique d'intelligence économique vers 1995. Elle a été arrêtée peu de temps plus tard.

Stratégies adoptées [modifier]

Pour comprendre les stratégies des grandes entreprises, il est important de garder en tête les différents types d'informatique :

L'informatique de gestion

Les principaux impacts se trouvaient dans ce type de systèmes, tant dans le matériel informatique (hardware) que dans le logiciel (software). Pour traiter ces non conformités, il fallait soit migrer vers de nouvelles plateformes matérielles et applications logicielles, soit réparer les anciennes plateformes et applications.

L'informatique technique (temps réel)

Les impacts sur ce type de systèmes étaient moindres, en raison du plus faible nombre de systèmes de pilotage industriels employant l'année. La plupart des systèmes embarqués ou de pilotage dans l'aéronautique, le spatial, l'armement, les transports, le nucléaire, n'utilisent en effet que le jour, l'heure, la minute ou la seconde.

L'informatique scientifique

Pour ces systèmes, les impacts étaient quasi-nuls, le temps n'étant qu'un paramètre d'intégration des calculs scientifiques, pour la résolution des équations différentielles discrétisées.

Revenons aux deux types de stratégies adoptées par les grandes entreprises dans la décennie 1990, pour en analyser les forces et les faiblesses :

La migration des anciennes applications vers de nouvelles applications,

très souvent des progiciels de gestion intégrés (PGI), sous Unix (dans l'industrie principalement). En Europe, ce type de stratégie a présenté l'avantage de coupler le passage à l'an 2000 et à l'euro, donc de réduire globalement les coûts. En effet, le passage à l'euro consistait alors en une mise à jour vers une version euro, puis en une bascule à l'euro selon les spécifications du fournisseur de PGI. L'autre avantage réside dans le passage à des systèmes complètement rénovés, avec des architectures informatiques mieux normées. Environ 60% des grandes entreprises françaises ont adopté ce type de stratégie selon un expert du CIGREF.

La réparation (ou conversion).

Ce deuxième type de stratégie a concerné les entreprises moins prévoyantes, ou dont la complexité des systèmes ne permettait pas de mieux anticiper le problème. En Europe, il comportait l'inconvénient de nécessiter une double conversion pour le passage à l'an 2000 et à l'euro, donc d'augmenter les coûts. D'autre part, ces entreprises sont restées avec d'anciennes architectures d'applications informatiques moins normées. Environ 40% des grandes entreprises françaises ont opté pour cette stratégie selon le même expert du CIGREF.

Les plus petites entreprises avaient des problèmes beaucoup plus légers, dans la mesure où elles étaient déjà équipées de progiciels, qu'il suffisait de mettre à jour vers des versions conformes an 2000 et euro.

Aspect économique [modifier]

Les analystes du Gartner Group ont estimé en 1995 que le projet Y2K coûterait environ 300 à 600 milliards de $ dans le monde, sur la base de 300 à 600 milliards de lignes de programme existant dans le monde, et 1 $ par ligne de programme à convertir.

On a estimé que ce coût s'est réparti à peu près à parts égales en Amérique, en Europe, et en Asie.

Le projet a donc coûté entre 100 et 200 milliards de $ en Europe.

Le traitement du passage informatique à l'an 2000 a créé un important appel d'air sur le marché de l'emploi informatique, d'autant plus qu'en Europe cette échéance était quasi-simultanée avec le passage à l'euro. Même si les systèmes internet étaient peu concernés, la bulle internet a aussi encore accru cet appel d'air. Les sociétés d'informatique (constructeurs informatiques et sociétés de services en informatique) ont alors fortement augmenté leurs effectifs.

La surcharge de travail autour de l'an 2000, aggravée encore par le passage à l'euro, a aussi entraîné une dépression sur le marché informatique à partir de 2002.

Aspects juridiques [modifier]

Le bogue de l'an 2000 pose des questions juridiques sur les responsabilités respectives des utilisateurs d'informatique, et des fournisseurs de matériels informatiques et de logiciels.

Ces aspects sont rendus complexes par le nombre important de fournisseurs engagés dans les grands contrats d'intégration :

  • constructeurs de matériels informatiques et leurs services de maintenance,
  • fournisseurs de logiciels spécifiques,
  • éditeurs de solutions progicielles (ERP),
  • intégrateurs,
  • entreprises de facilities management,
  • Opérateurs de télécommunications,

etc.

Les sociétés de conseil en management ont aussi joué un grand rôle, pour la planification des projets de mise en conformité à partir des estimations des analystes (Gartner Group...).

Lorsque le problème a commencé à être sérieusement identifié, c'est-à-dire vers 1995 (en France, constitution d'un premier groupe de travail au CIGREF), le CIGREF (Club Informatique des Grandes Entreprises Françaises) s'est appuyé sur la directive européenne sur la responsabilité des produits défectueux de 1985, non encore transposée. Selon cette directive, le fournisseur d'un produit est responsable des défauts d'un produit pendant une période de dix ans après sa mise en service ou sa commercialisation. Ainsi, tout matériel ou logiciel commercialisé à partir du 1er janvier 1990 était concerné.

Le SYNTEC, qui représente les SSII, n'a pas été d'accord avec cette position, et a adopté une position plus favorable aux fournisseurs, prenant comme référence la date du 1er janvier 1995.

Un grand fournisseur de logiciel a retenu la date du 1er janvier 1994.

Les juristes ont commencé à s'exprimer sur le sujet en 1996.

En France, le ministère de l'Économie et des Finances a donné une première position sur le sujet en janvier 1997, en réponse à une lettre envoyée par un cabinet de juristes spécialisés en droit de l'informatique.

La directive sur les produits défectueux n'a été transposée en droit français que le 19 mai 1998. Certains fournisseurs se sont donc appuyés sur cette date !

Sur le fond, ce qui est en jeu, c'est :

  • les responsabilités respectives des utilisateurs et des fournisseurs,
  • la façon dont les fournisseurs ont exercé leur devoir d'information,
  • la façon dont les fournisseurs ont exercé leur devoir de conseil,
  • à travers la date de référence (1990, 1995,...), la transposition de la directive sur les produits défectueux de 1985, et l'applicabilité effective en droit national de cette directive non transposée.

On voit qu'un délai de 13 ans a été nécessaire pour transposer la directive de 1985. En moyenne, une directive européenne est transposée en droit national en deux ans.

Description détaillée du problème [modifier]

On pensait à raison que les programmes informatiques utilisés pour la gestion risquaient de s'arrêter de fonctionner ou produiraient des résultats erronés. Cela parce que la date système du matériel informatique (hardware) ne comportait que deux chiffres pour l'année, sans le siècle, et que les logiciels et bases de données présentaient le même problème, avec seulement les deux derniers chiffres pour l'année. Ainsi, l'année 2000 serait représentée par 00 et ne suivrait pas 1999 (99) dans une séquence numérique. Ceci risquait de créer des calculs et des comparaisons de données avec des résultats incorrects.

On pensait que les systèmes embarqués, dans la mesure où ils obéissaient à une logique similaire, risquaient de ne plus fonctionner, entraînant le dysfonctionnement d'outils et d'autres infrastructures cruciales dans les systèmes industriels.

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(mais bien divisible par 400).

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.

Les médias ont communiqué sur ce problème d'une façon qui n'était pas toujours pertinente. La communication en France s'est faite relativement tard, en raison d'un certain aveuglement des autorités publiques.

Aux États-Unis surtout, la presse a beaucoup communiqué dès 1996, notamment sous l'influence de Peter de Jaeger, avec comme corolaire des craintes millénaristes.

Certains estiment 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. Dans la plupart des cas, les modifications étaient en réalité justifiées. Il faut dire que si le problème avait été anticipé plus tôt, il aurait coûté beaucoup moins cher !

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.

Pour approfondir : le matériel informatique [modifier]

Quelques fabricants du circuit faisant fonction d'horloge électronique dans les 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 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 d'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.

Pour approfondir : le logiciel [modifier]

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 certains systèmes. La plupart des programmeurs de l'époque ne s'attendaient pas à ce que leurs travaux demeurassent 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 ont 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.

Conclusion : un problème de normalisation [modifier]

L'une des raisons pour lesquelles on a tant tardé à s'attaquer au problème venait de ce que les dates n'étaient pas normalisées.

Différentes formes de stockage des dates existent dans les mémoires, les programmes, et les bases de données des grands systèmes selon que l'on adopte le format de date français, américain ou anglais.

Les systèmes Unix de leur côté décomptent les secondes pour calculer les dates.

Et l'avenir ?

Le bogue de l'an 2038 devrait affecter les systèmes Unix en 2038. En effet ces systèmes utilisent le nombre de secondes écoulées depuis le 1er janvier 1970 (cette date « 0 » est appelée Epoch) pour exprimer les dates. Or en 2038 le nombre de secondes écoulées devrait dépasser les capacités de stockage 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. Avec l'arrivée de systèmes 64 bits il sera possible de stocker des dates à plus de 250 milliards d'années dans le futur.

En informatique, le bogue de l'an 2038 est un problème similaire au bogue de l'an 2000 qui pourrait perturber le fonctionnement de certains ordinateurs aux alentours du 19 janvier 2038, et plus particulièrement le 19 janvier 2038 à 3 h 14 min 7 s, temps universel.[1]

Le problème concerne des logiciels qui utilisent la représentation POSIX du temps, dans lequel le temps est représenté comme un nombre de secondes depuis le 1er janvier 1970 à 0 heure. Sur les ordinateurs 32 bits, la plupart des systèmes d'exploitation concernés représentent ce nombre comme un nombre entier signé de 32 bits, ce qui limite le nombre de secondes à 2 147 483 647 (01111111 11111111 11111111 11111111 en base 2). Ce nombre maximum sera atteint le 19 janvier 2038 à 3 h 14 min 7 s (temps universel). La seconde suivante, la représentation du temps « bouclera » (10000000 00000000 00000000 00000000 en base 2) et représentera -2 147 483 648 en complément à deux.

Les logiciels concernés sont très nombreux car la norme POSIX, inspirée des systèmes UNIX, a été utilisée pour de nombreux programmes écrits en langage C pour de nombreux systèmes d'exploitation. Sur certains ordinateurs, la date limite est située en 2106 et non en 2038 car le temps y est représenté par un entier à 32 bits non signé (tout en restant conforme à la norme POSIX). Mais ces ordinateurs sont minoritaires. Le passage à 64 bits résout le problème presque définitivement, la date butoir se situant à 292 milliards d'années. Mais, malgré le succès croissant des ordinateurs à 64 bits, il est possible que de nombreux ordinateurs à 32 bits soient encore actifs en 2038, en particulier dans les systèmes embarqués.

Il n'existe pas de correctif simple pour ce problème, dans la mesure où le format sur 32 bits est présent aussi dans de nombreux formats de fichiers (par exemple le format ZIP). Un changement de représentation dans les ordinateurs rendrait donc inopérants les programmes qui exploitent l'actuelle équivalence entre la représentation interne et le format de fichiers.



28/02/2008
0 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 58 autres membres