Le Bug de L'An 2000
[ou les "Faiblesses" de l'Informatique par l'Exemple]
CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641, École polytechnique, Institut Polytechnique de Paris, CNRS, France
france telecom, France Telecom R&D
[Site Map, Help and Search [Plan du Site, Aide et Recherche]]
[The Y2K Bug [Le bug de l'an 2000]]
[Real Numbers don't exist in Computers and Floating Point Computations aren't safe. [Les Nombres Réels n'existent pas dans les Ordinateurs et les Calculs Flottants ne sont pas sûrs.]]
[N'oubliez pas de visiter Une Machine Virtuelle à Explorer l'Espace-Temps et au-delà où vous trouverez plus de 10.000 images et animations à la frontière de l'Art et de la Science]
(Site WWW CMAP28 : cette page a été créée le 03/09/1999 et mise à jour le 03/10/2024 17:00:37 -CEST-)
(publié dans la revue Sécurité Informatique du CNRS, numéro 26, 01/09/1999)
AVERTISSEMENT :
Ce site est strictement "personnel" et son auteur
est l'unique responsable de son contenu. Il ne reflète donc en aucune façon
les positions officielles que l'Ecole Polytechnique et France Telecom
ont ou pourraient avoir face aux problèmes qu'il décrit.
Enfin, il réside sur un ordinateur appartenant à l'Ecole Polytechnique.
Mots-Clefs : A2M,
An 2000,
Bogue,
Bug,
Bugix,
Millenium Bug,
Year 2000 Problem,
Y2K,
Y2K Bug.
Le bug de l'an 2000, aujourd'hui bien
connu de tous, est la conjonction, dans un
court laps de temps, d'un certain nombre
d'anomalies de gestion des dates dans les ordinateurs et parmi lesquelles :
- le codage et le traitement des années en
ne conservant que leurs deux derniers
chiffres, pratique, bien antérieure a
l'informatique, empruntée par les
programmeurs des temps heroïques alors que
la mémoire des ordinateurs était un bien
précieux (il s'agit donc d'un choix jugé alors
fort astucieux),
- la méconnaissance fréquente de la
définition du calendrier grégorien et, en
particulier, de la notion d'année bissextile
(2000 aura 366 jours et ne sera pas l'entrée
dans le troisième millénaire !),
- l'existence de programmations
approximatives concernant l'arithmétique sur
des dates représentées par des chaînes de
caractères (l'opération '9'+1 pouvant ne plus
donner "10"),
- l'utilisation de dates particulières (le
9/9/99 par exemple) avec une signification
toute différente (une fin de fichier, un code
d'erreur,...),
- la présence de compteurs de temps à la
capacité limitée (notons au passage que cette
anomalie déborde largement le cadre du bug de l'an 2000
et se retrouve, par exemple,
dans les applications scientifiques de l'informatique,
dans lesquelles le comptage
est une opération fondamentale)
Lors du passage du 31/12/1999 au
01/01/2000 de très nombreux systèmes vont
donc basculer de l'an 99 à l'an 00 (ou tout
autre valeur spécifique à chaque constructeur
ou fournisseur) ; Ainsi, des calculs de durée
vont se trouver lourdement faussés ou encore
des actions périodiques (sauvegardes,
recyclages, contrôles,...) ne seront pas
déclenchées quand il le faut, des divisions
par 0 auront lieu lorsque l'année est utilisée
dans les techniques d'accélération dites de
hash-coding,... Sans attendre le 31/12/1999,
des anomalies sont déjà survenues, par
exemple, avec les cartes de crédit ou encore
avec le GPS (Navstar Global Positionning System) qui, utilisant un compteur de
semaines sur 10 bits, est revenu vingt ans en
arrière lors du passage du 21/08/1999 au
22/08/1999 (ce phénomène, parce qu'il fait
partie des spécifications initiales, n'a causé
aucune catastrophe, mais uniquement des
anomalies mineures dans des systèmes
d'aide à la navigation automobile).
Si l'énoncé du problème est simple (trop
d'ailleurs, ce qui justifie en partie
l'incrédulité), le traitement est lui, par contre,
purement cauchemardesque. Quelques
chiffres, quelques faits et quelques
interrogations permettent d'évaluer l'ampleur
du chantier :
- La date est omniprésente (ordinateurs
évidemment, mais aussi dans l'informatique
dite enfouïe : systèmes de sécurité, robots de
fabrication, centrale de production d'énergie,
centraux téléphoniques, magnétoscopes,
mais aussi sous-marins nucléaires,
missiles,...).
- Il n'est plus aujourd'hui d'ordinateurs
ou de programmes isolés : toutes nos
activités en dépendent ; nous sommes donc
en présence du plus merveilleux exemple
d'effet dominos avec ce gigantesque système
non linéaire et chaotique (imaginons ainsi les
conséquences possibles sur les places
boursières...).
- La planète entière est donc concernée et
tout individu peut y être sensible aussi bien
au niveau professionnel que personnel (par
exemple aux titres d'assuré social et
d'utilisateur des systèmes bancaires).
- Environ 100 milliards de lignes de
programmes, redigés dans des langages
généralement obsolètes, sont concernées (4%
des sources sont irrémédiablement perdus,
les 96% restants ne sont parfois pas à jour
par rapport aux exécutables utilisés...).
- Cette maintenance est d'une complexité
sans précédent et sa date d'achèvement ne
peut être reportée.
- Son coût en est énorme (le chiffre de
1000 milliards de dollars est actuellement
avancé pour la planète entière, auxquels il
faudrait ajouter 2000 milliards de dollars au
titre des inévitables dédommagements).
- Qui sera responsable des inévitables
dégats (les assureurs ont donc à s'inquiéter à
double titre : en tant que gros utilisateurs de
l'informatique et de par leurs fonctions...) ?
- La notion de compatibilité an 2000
existe-t-elle ?
- Quelle législation s'appliquera et sur
quelle jurisprudence s'appuyera-t-elle ?
- Pour les européens, le passage a la
monnaie unique ne vient pas simplifier les
choses, de même que la loi sur les 35 heures
pour les français !
Comment est-il possible dans ces
conditions nous ayons tant tardé pour
corriger en temps voulu ces anomalies ? Il est
bon de préciser qu'en particulier dans les
milieux bancaires le problème est connu
depuis bien longtemps. Au niveau du public,
dès 1990, Arthur C. Clarke dans son roman
Ghost from the grand banks mettait en scène
trois sujets d'actualité : l'ensemble de
Mandelbrot, le Titanic et le problème de l'an
2000 (The Century Syndrome) ! S'il était
peut-être trop tôt en 1990 pour sensibiliser la
planète entière, il est très certainement trop
tard aujourd'hui. Alors, qui sont les
responsables (les coupables ?) ?
Les informaticiens en premier lieu car ils
n'ont pas su voir à long terme les
conséquences de leur choix (mais nous
sommes tous victimes, malheureusement, de
cette déficience : les inventeurs de
l'automobile, par exemple, ne peuvent être
tenus pour responsable de la pollution
atmosphérique...) et n'ont peut-être pas eu
ensuite la franchise ou le courage d'exposer
clairement ces difficultés et leurs
conséquences à leurs directions générales.
Les grandes associations professionnelles
(ACM, IEEE,...) ont d'ailleurs été bien
discrètes sur ce sujet : la maintenance
n'aurait-elle aucun intérêt ? Tout cela est bien
regrettable, car l'aspect positif du problème
est qu'il implique nécessairement une
meilleure connaissance de nos systèmes
informatiques et une modernisation de nos
infrastructures lorsque l'on se donne le
temps d'agir, alors que la précipitation
actuelle ne peut conduire qu'à du rafistolage
hâtif, désoptimisé et forcément partiellement
erroné ; de nouvelles difficultés sont donc à
prévoir ultérieurement ! En effet, certaines
solutions utilisés actuellement sont de
véritables bombes à retardement (par
exemple la méthode dite de l'année pivot),
mais il est trop tard pour faire mieux !
N'oublions donc pas demain de revenir
définitivement sur ces problèmes.
Les utilisateurs de l'informatique, en
particulier ceux qui sont dans ce domaine les
plus gros investisseurs (les banques, les
assurances,...), ont eux aussi leur part de
responsabilité ; ils n'ont fait, lorsque cela fut
nécessaire, que le minimum sans penser à
demain. Ils auraient pu de plus exercer très
tôt une pression suffisante sur leurs
fournisseurs (les grands constructeurs,...)
pour qu'ils mettent, eux-aussi, en place des
outils "compatibles" qui, ainsi, se seraient
répandus sans douleur chez tous leurs clients
: cela aurait peut-être été la mort du bug dans
l'œuf...
Que dire ensuite de la responsabilité des
média ? Elle est très certainement
considérable : en effet, un événement
n'existe que s'il est relaté. Est-il alors
concevable que la presse informatique
spécialisée, en France particulièrement, n'ait
aborde en général ce problème qu'il y a deux
ou trois ans ? De plus, l'importance d'un
événement est certainement appréciée par le
nombre de lignes et de minutes qui lui sont
consacrées. A titre d'exemple, dans les
journaux, la maladie de la vache folle a été
plus fréquemment et plus longuement
présentée que le problème de l'An 2000.
Est-ce à dire que leurs importances relatives
sont dans le même ordre ? Rien n'est moins
sûr ; en effet, en ce qui concerne nos
ordinateurs les conséquences de cette
insouciance pourraient être dramatiques et le
temps presse : pour certains qui ne sont pas
encore sensibilisés (environ 50% de nos
PME/PMI par exemple), il ne reste que
quelques semaines pour inventorier, faire les
analyses de risque et préparer les plans de
secours, corriger et tester les millions de
systèmes pour lesquels rien n'a encore été
fait. Les raisons de tout cela sont peut-être à
rechercher dans l'immatérialité de la plus
grande partie de l'informatique (le logiciel)...
Enfin, le monde politique (au niveau
international), de par l'ampleur sans
précédent du problème, n'est pas non plus
lui-même innocent. Or dans notre pays, où le
chomage pèse lourdement sur l'économie et
sur le moral de nos concitoyens, il est inutile
d'ajouter de nouvelles difficultés car, en
effet, pour les entreprises les plus sensibles
et qui ne seraient pas prêtes à temps, des
catastrophes économiques (et donc sociales)
sont envisageables. Est-il donc raisonnable
d'avoir attendu le mois de février 1998 pour
voir Gerard Théry nommé en tant que
Monsieur An 2000 et le mois de novembre
de cette même année pour que le Premier
Ministre prennent les premières mesures ?
Est-il possible d'agir à la fois vite et bien ?
Le bug de l'an 2000 n'est pas un
argument commercial de plus : il est une
véritable épidémie dont chacun de nos
systèmes informatiques, visible ou invisible,
peut-être la victime. Mais, saisissons nous de
cette opportunité pour prendre conscience de
notre très grande dépendance de l'ordinateur.
Or il y a, malheureusement, une distance
énorme entre la pureté du binaire et de ses
lois élémentaires, et la "véritable"
informatique, celle qui est vécue au quotidien
dans nos entreprise, dans nos services
publics,... et qui ressemble bien trop souvent
à du bricolage ; sa complexité dépasse
généralement nos niveaux de maîtrise et de
compréhension, et dans certaines
circonstances, elle pourrait bien nous
échapper. Le bug de l'an 2000 doit donc,
avant toute chose, nous servir de leçon : dans
l'avenir limitons la complexité, parfois un
peu gratuite, de nos systèmes et enseignons,
dans le monde de la programmation, l'amour
du travail bien fait.
Afin que nos entreprises, nos
laboratoires, nos services publics et notre
défense nationale, soient prêts à franchir
joyeusement et sereinement cette Saint
Sylvestre si spéciale, il importe que chacun,
aussi bien au niveau professionnel que privé,
se sente concerné et responsable...
Copyright © Jean-François COLONNA, 1999-2024.
Copyright © France Telecom R&D and CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 1999-2024.