Magazine Internet

Article de fond: Le bug qui a fait planter le monde entier (T)

Publié le 20 novembre 2008 par Wtf

Où étiez-vous au matin du 1er janvier 1984 ? Moi? J'étais bien au chaud, profitant des 22 jours qui me restaient avant d'ouvrir les yeux. Vous autres étiez certainement tous en train de célébrer comme il se doit la nouvelle année. Tous? certainement pas, quelques uns - comme Robert Reagan - étaient en fait en train d'essayer de corriger désespérément un bug qui avait fait planter une bonne partie des ordinateurs du monde.

Avec tous les problèmes de date sensés causer "La fin du monde" - l'an 2000 par exemple - c'est surprenant que peu de gens aient entendu parler de ce jour où le monde s'est réellement arrêté. Ce jour là - 1er Janvier 1984 - un simple bug fut responsable de l'arrêt - et du non-démarrage - de bon nombre de système informatisés.

Il y avait trois choses qui faisaient fureur dans les années 80 : Le Rubik's cube, Madonna et Wangs. Autant j'ai peu de doutes sur votre connaissance deux premières icônes des années 80, autant il est peu probable que vous connaissiez Wangs - et tous les systèmes de Wang Laboratories -, tombé depuis dans l'obsolescence. Sachez qu'il y a un quart de siècle, Wang était vraiment très présent sur le marché.

Aux alentours des années 83, Wang Laboratories employait près de 30 000 personnes et avait un chiffre d'affaire de 6 milliard de dollars : ses ordinateurs étaient partout. Le Wand OIS (Office Information System) convenait parfaitement pour la plupart des entreprises et offrait un système "Facilement extensible" grâce à son système de langage de programmation par glossaire. C'était si simple qu'apparemment, même les secrétaires pouvaient maîtriser pleinement la machine.

Pour vous donner une idée plus précise de la situation, Wang était en mesure de concurrencer les IBM System 34 et System 36 avec sa propre série de mini-ordinateurs (avant l'ère micro) appelés le Wang VS. Ces systèmes incluaient les outils de développement standard - COBOL, BASIC, RPG, etc - ainsi que des outils maisons. Et comme la plupart des système d'exploitations de cette ère, le Wang VS étaient un peu "particulier".

Une fonctionnalité de sécurité intéressante du Wang VS était le principe de date d'expiration de fichier. En plus d'avoir une date de création et de modification, chaque fichier possédait une date d'expiration! Si quelqu'un - qu'importe les droits utilisateurs - essayait de supprimer le fichier avant sa date d'expiration, le système d'exploitation levait une erreur - J'imagine que l'évolution de ce système a été le principe de la lecture seule -. Bien que les utilisateurs pouvaient changer la date d'expiration par une ligne de commande, cette fonctionnalité était vue comme un "petit plus" qui permettait d'éviter des suppression accidentelles.

Comme beaucoup de systèmes d'exploitation, les Wang VS et ses applications utilisaient des fichier temporaires pour faire toute sorte de choses. Et comme beaucoup de système de développement modernes (java pour ne pas le citer), il n'y avait pas de mécanisme de base pour les opérations sur les dates et les heures. A la place, différents modules du système d'exploitation et ses différentes applications se basaient sur différentes fonctions pour les calculs des date et d'heure. Sans surprise, l'une des fonctions était buggée.

Malheureusement, le bug se trouvait dans le système chargé de la création des fichier temporaires. Plus précisément, chaque année bissextile, le système initialisait par erreur à "1" l'index du jour de l'année qui débutait en temps normal à zéro. En d'autre termes, quand le 1er Janvier 1984 (jour 0 d'une année bissextile) enclencha sa première milliseconde, le code défectueux mit le 2 janvier 1984 comme date d'expiration des fichiers temporaires. Le système d'exploitation fut incapable de supprimer ses propres fichiers temporaires et puisque ces fichiers étaient créés et supprimés chaque seconde, un à un chaque processus dans le Wang VS tomba en panne, causant le dysfonctionnement des ordinateurs. Comme le processus de démarrage incluait lui aussi la création et la suppression de fichiers temporaires, les ordinateurs ne pouvaient pas être redémarrés. Et oui, chaque système Wang VS dans le monde était incapable d'être redémarré.

Les ingénieurs de Wang et le support technique travaillèrent toute la journée pour réparer tous les ordinateur plantés. Grâce à la combinaison du jour férié du nouvel an et du service de transport de nuit de FedEx (qui était apparemment sous système IBM), la plupart des sociétés ne souffrirent que d'une légère interruption de service. C'est ainsi que le jour où le monde s'est vraiment arrêté se termina comme chaque autre.

Prochain rendez-vous le 19 janvier 2038 à 3h14 et 7 secondes ...


Retour à La Une de Logo Paperblog

A propos de l’auteur


Wtf 169 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine