Dans l'histoire des bogues informatiques, un exemple célèbre concerne le vol 501 de la fusée Ariane 5 en 1996. Un dépassement de capacité (une variable de 8 bits devant accueillir un nombre en nécessitant 9) causa une défaillance du système, ce qui entraîna carrément l'explosion de la fusée.

Commentaires préférés (3)
Et moi je me plains quand mon téléphone quitte tout seul une application...
Pour ceux qui ne lisent pas les sources le vol 501 était un vol inaugural qui a eu lieu le 4 juin 1996 , la fusée explosa 36.7 secondes après son décollage à 4000 mètres d'altitude
Imagine un ascenseur de 8 personne. Tu en mets 9. Et Boum!
Tous les commentaires (72)
J'ai rien compris ! Appart que y a eu une explosion ^^'
Et moi je me plains quand mon téléphone quitte tout seul une application...
Pour ceux qui ne lisent pas les sources le vol 501 était un vol inaugural qui a eu lieu le 4 juin 1996 , la fusée explosa 36.7 secondes après son décollage à 4000 mètres d'altitude
Ils auraient pu faire un simple ctrl+alt+supprim
Imagine un ascenseur de 8 personne. Tu en mets 9. Et Boum!
D'après la première source, la fusée transportait 4 satellites de la mission Cluster, d'une valeur totale de 370 millions de dollars. Ça fait mal une erreur comme ça...
Il y a un programmateur qui a dû se faire enguirlander...
Ce qu'il faut comprendre c'est qu'un nombre composé de 9 zéro ou un, à essayer de se caser dans une variable qui n'en acceptait "que" 8.
Résultat plutôt impressionnant : Boom.
J'ai d'abord cru au scénario d'un film de Michel Bay mais visiblement ça s'est vraiment passé comme ça !
Pour la navette Challenger, qui a explosé au décollage avec 4 astronautes à bord, c'est un petit joint d'étanchéité (en silicone, me semble-t-il) appelé O-Ring qui était défectueux... Sur ce genre de système, tout doit être parfait. Ce qui me rend admiratif pour chaque lancement réussi, même de routine... Bravo les mecs.
D'ailleurs la scène a été filmée dans le film "un indien dans dans la ville"
En fait, en informatique, comme tout le monde le sait, tout est codé avec des 0 et des 1. On appelle ça le code binaire. Donc pour écrire par exemple 10 en binaire on note 1010, 42 donne 101010, 527 donne 100000111. Pour écrire 527, il faut donc plus que 8 bits (chiffres). Et c'est ça qui a fait planter la fusée...
Valeur maximum d'une donnée 8 bit en decimal : 256
Donc le bug viens du fait que la valeur de la variable était supérieur au maximum possible enregistrable.
527 c'est : 1000001111
Codé sur 10 bits car on va jusqu'au bit "512".
512 + 8 + 4 + 2 + 1
Alors pour ceux qui voudraient en savoir plus, la fusée Ariane 5 était environ 2 fois plus grande qu'Ariane 4.
Par soucis d'économie, et le calculateur en question étant très efficace sur le premier modèle, ils ne l'ont pas repensé et l'ont utilisé tel quel.
Or, une fusée qui tremble en vol, ça aura tout de suite (beaucoup) plus de pêche si on pèse deux fois plus lourd.
Le calculateur a interprété ça comme une erreur, a fait remonter cette dernière, et un mécanisme automatisé a fait sauter le tout, fournissant l'un des potards les plus chers de l'histoire...
Il leur a fallu 1 ou 2 ans je crois pour trouver l'erreur (imaginez ressortir tous les plans pour les analyser...)
Pour compléter, il est intéressant de savoir qu'une série de 8 bits (donc une suite de 8 "0" ou "1") est appelé octet. C'est bien ce qu'on utilise au quotidien, quand on dit qu'une photo pèse 2 Mo (Mega octet).
À savoir aussi, qu'en anglais on dit pas octet, mais Byte (abrégé B).
Donc 1 B = 1 o = 8 b (bits).
Vous pouvez rajouter les préfixes Mega (M), kilo (k) ou encore Giga (G) devant, l'égalité ne changera pas.
Donc attention quand on vous dit que vous telechargez à tant de Mo (ou MB), ou tant de Mb, c'est pas pareil !
On est d'accord !
Un bit permet de code 2 valeurs : 0 et 1. 8 bits permet de coder 2 puissance 8 valeurs soit 256. 256 combinaisons de 8 caractères à base de 0 et 1. Exemple : 01101110. C est ce qui a permis de coder l ensemble des touches du clavier actuel au passage. Or la valeurs de 9 bits contenait donc 9 caractères. Seul les 8 premiers ont du être retenus ce qui a provoqué une mauvaise commande.
Il me semble que ce depassement correspond a un bit signé, ainsi les commandes on du recevoir une donnée negative elors qu'elle devait être positive!
Un "programmateur" c'est un truc que tu as sur le mur pour piloter tes radiateurs...
Celui qui code c'est un développeur ou un programmeur.