
Table des matières
Quelque part dans le code source de Windows 95 – l’un des logiciels les plus utilisés jamais publiés – se trouve un petit bloc de code dont le seul rôle est de poser une seule question étrangement spécifique.
L’utilisateur utilise-t-il actuellement SimCity ?
Si la réponse est oui, Windows 95 modifie discrètement son comportement. Il bascule sa gestion de la mémoire dans un mode spécial. Il le fait pour une seule raison : s’adapter à un bug. Pas un bug dans Windows – un bug dans SimCity, laissé accidentellement des années plus tôt par le propre programmeur du jeu.
Il s’agit de l’une des décisions les plus étranges et les plus révélatrices de l’histoire de l’informatique personnelle. Et cela explique quelque chose d’important sur la raison pour laquelle Windows en est venu à dominer le monde.
Le bug qui n’était pas censé avoir d’importance
L’histoire vient de Joel Spolsky – un ancien programmeur Microsoft, co-fondateur de Stack Overflow et l’un des auteurs de logiciels les plus respectés – qui l’a entendu directement de l’homme responsable.
Jon Ross a écrit la version Windows originale de SimCity, le jeu de construction de ville au succès retentissant. Et en l’écrivant, Ross a commis une petite erreur. Son code, à un moment donné, a libéré une partie de la mémoire de l’ordinateur – l’a restituée au système car elle n’était plus nécessaire – puis, un instant plus tard, a relu cette même partie de la mémoire.
Il s’agit d’une véritable erreur de programmation. Il a un nom : un bug « use-after-free ». Vous n’êtes pas censé utiliser la mémoire que vous avez déjà restituée. C’est l’équivalent logiciel de quitter une chambre d’hôtel puis de rentrer pour utiliser la salle de bain.
Mais voici le problème. Sous Windows 3.x – le système d’exploitation pour lequel SimCity a été conçu – le bug n’avait pas d’importance. Lorsque SimCity a libéré cette mémoire, Windows 3.x l’a simplement laissée là, intacte. Ainsi, lorsque SimCity l’a relu par erreur, les données étaient toujours là, exactement comme avant. Le bug était réel, mais le comportement du système d’exploitation l’a rendu inoffensif. SimCity a été expédié, vendu à plus de cinq millions d’exemplaires et personne ne l’a jamais su.
Le bug est resté tranquillement dans l’un des jeux les plus populaires au monde, complètement invisible, pendant des années.
Ensuite, Microsoft a construit un nouveau système d’exploitation.
Quand SimCity a cessé de fonctionner
Windows 95 a constitué une avancée majeure. Il a fusionné les mondes de MS-DOS et de Windows, est passé du logiciel 16 bits au logiciel 32 bits et a remanié d’énormes quantités de la façon dont le système fonctionnait sous le capot, y compris la façon dont il gérait la mémoire.
Et lors des tests bêta, les ingénieurs de Microsoft ont rencontré un problème. SimCity – l’un des jeux PC les plus vendus et les plus appréciés – ne fonctionnait pas sous Windows 95. Il s’est écrasé.
Lorsqu’ils en ont recherché la cause, ils ont découvert l’ancien bug d’utilisation après libération de Jon Ross. Windows 95 gérait la mémoire libérée différemment de Windows 3.x. Lorsque SimCity a libéré cette partie de la mémoire, Windows 95 était susceptible de la récupérer et de la réutiliser pour autre chose. Ainsi, lorsque SimCity l’a relu, les données avaient disparu ou étaient brouillées et le jeu s’est effondré.
Cela a mis Microsoft devant une véritable décision. Et la décision qu’ils ont prise est la partie intéressante.
Pourquoi Microsoft a corrigé le bug de quelqu’un d’autre
La décision évidente aurait été de décrocher le téléphone, d’appeler Maxis – le studio derrière SimCity – et de leur dire de corriger leur bug et d’envoyer une mise à jour.
Microsoft n’a pas fait ça. Au lieu de cela, les ingénieurs de la société ont ajouté du code directement dans Windows 95, un code qui détecte spécifiquement le moment où SimCity est en cours d’exécution. Lorsqu’il voit le jeu, Windows 95 fait passer son allocateur de mémoire dans un mode spécial qui ne récupère pas immédiatement la mémoire libérée. En fait, Windows 95 recrée délibérément l’ancien et « mauvais » comportement de Windows 3.x — mais uniquement pour SimCity, et uniquement parce que SimCity en a besoin.
En d’autres termes, Microsoft a choisi d’adapter son tout nouveau système d’exploitation à une erreur vieille de plusieurs années dans le produit de quelqu’un d’autre. Ils ont fait en sorte que le système d’exploitation s’adapte au bug.
Pourquoi? À cause d’une logique commerciale brutale que Spolsky expose clairement.
Lorsqu’une personne achète un nouveau système d’exploitation et que son logiciel préféré cesse de fonctionner, elle ne blâme pas le logiciel. Ils blâment le système d’exploitation. Le client ne pense pas SimCity a un bug. Le client pense Windows 95 a cassé mon jeu – et dit à leurs amis de ne pas mettre à niveau.
Pour Microsoft, chaque programme populaire qui tombait en panne sous Windows 95 était une raison pour laquelle des millions de personnes ne voulaient pas acheter Windows 95. SimCity s’était vendu à plus de cinq millions d’exemplaires. Cela représente cinq millions de clients potentiels dont la première expérience du nouveau système d’exploitation aurait pu être le crash de leur jeu préféré. Le coût d’écriture d’un petit bloc de code pour cas spéciaux était presque nul. Le coût du dysfonctionnement de SimCity était potentiellement énorme.
Microsoft a donc opté pour une solution peu glamour, invisible et coûteuse. Ils l’ont fait fonctionner.
Le musée caché à l’intérieur de Windows
Voici ce que la plupart des gens ne réalisent pas. Le correctif SimCity n’est pas unique. C’est un exemple de ce que Windows fait discrètement depuis des décennies.
Enfouis dans Windows se trouvent des centaines de ces cas particuliers – de petits blocs de code qui détectent d’anciens programmes et jeux spécifiques et ajustent silencieusement le comportement du système pour les maintenir en fonctionnement. Les ingénieurs les appellent des « cales ». D’autres jeux ont été détectés et hébergés. On dit à certains qu’ils utilisent une version de Windows plus ancienne qu’elle ne l’est réellement, sinon ils paniqueraient. Certains reçoivent discrètement des informations légèrement erronées ou ont des fonctionnalités spécifiques désactivées autour d’eux, uniquement pour continuer à fonctionner.
Windows, dans le vrai sens du terme, abrite un musée caché de compatibilité – une vaste couche de code, pour la plupart invisible, dont l’intégralité du travail consiste à maintenir en vie les logiciels du passé sur les machines du présent.
C’est pourquoi un programme écrit dans les années 1990 fonctionne encore souvent sur un PC Windows moderne. Ce n’est pas un accident. C’est le résultat cumulé de décennies pendant lesquelles les ingénieurs Microsoft ont fait exactement le choix qu’ils ont fait pour SimCity : s’adapter à l’ancien logiciel, même à ses erreurs, plutôt que de le casser.
Pourquoi cette petite histoire est importante
Il serait facile de lire ceci comme une anecdote originale. C’est plus que ça.
Le correctif SimCity capture la raison la plus importante – et la moins visible – pour laquelle Windows est devenu aussi dominant. Il n’a jamais été question uniquement de fonctionnalités ou de marketing. Il s’agissait d’un engagement quasi obsessionnel et profondément peu glamour en faveur de la rétrocompatibilité : la promesse, tenue pendant des décennies, que les choses que vous possédez déjà continueront de fonctionner.
Jon Ross a commis une petite erreur au début des années 1990. Grâce à une décision des ingénieurs de Microsoft, cette erreur n’a jamais rien cassé pour personne. Il a simplement été absorbé, discrètement, dans le système d’exploitation lui-même – et une version de cette même obsession est toujours à l’œuvre dans Windows aujourd’hui.
Le bug est toujours là. Il en va de même pour le code qui le pardonne.







