Windows 95 führte MS-DOS- und Windows-Anwendungen zusammen und hob den API-Satz von 16 auf 32 Bit an, und Microsoft wollte, dass die Leute keinen einzigen Grund mehr hatten, nicht aufzurüsten. Ein Grund überlebte beinahe: SimCity für Windows 3.x, dessen Autor Jon Ross versehentlich einen Bug hinterlassen hatte, der Speicher las, den er gerade freigegeben hatte. Unter Windows 3.x funktionierte es einwandfrei, weil der Speicher nirgendwohin verschwand; in den Windows-95-Betas brach das Spiel. Mit mehr als 5 Millionen verkauften Exemplaren musste SimCity reibungslos laufen.
Microsoft spürte den Bug auf und fügte Windows 95 Code hinzu, der nach SimCity sucht; wenn es das laufende Spiel findet, führt es den Speicher-Allocator in einem speziellen Modus aus, der Speicher nicht sofort freigibt. SimCity war nicht allein: Der Compatibility Administrator im Windows ADK zeigt die Datenbank der app-spezifischen Korrekturen. Windows NT erkennt Dateien, die typischerweise mit Final Fantasy VII installiert werden, und wendet eine Korrektur mit dem wörtlichen Namen „Win95VersionLie“ an – es teilt dem Spiel einfach mit, es laufe auf Windows 95 –, während Dungeon Keeper Dateipfadkorrekturen erhält, die an Dateien wie „Horny.tif“ geknüpft sind.
Die Besessenheit war institutionell. Raymond Chen dokumentierte 2005, dass der Entwicklungsleiter von Windows 95 mit einem Pick-up zum örtlichen Egghead-Software-Laden fuhr und je ein Exemplar jedes einzelnen PC-Programms im Laden kaufte; jeder Entwickler übernahm bis zu zwei Programme zum Installieren, Ausführen und Dokumentieren von Bugs, und Tester durften behalten, was sie fertigstellten. Mike Perry, ehemaliger Creative Director bei Maxis, merkte später an, dass Ross nach seinem Weggang von Maxis zu Microsoft ging.
Kompatibilitäts-Shims: Das Betriebssystem erkennt eine bestimmte App und biegt stillschweigend sein eigenes Verhalten zurecht – verzögerte Freigaben, Versionslügen –, sodass die alte Binärdatei nie erfährt, dass sich etwas geändert hat.
Ein Betriebssystem-Upgrade steht und fällt mit seinem App-Katalog; Nutzer kaufen kein Betriebssystem, das die Spiele und Werkzeuge bricht, die sie bereits besitzen.
Alle Drittanbieter zu reparieren war unmöglich, daher erlaubten Shims Microsoft, die Kompatibilität zu reparieren, ohne fremden Code anzufassen.
Apps am Namen oder an installierten Dateien zu erkennen, hielt jede Korrektur chirurgisch, statt das Verhalten für alles zu ändern.
Das Massentesten echter Handelssoftware verwandelte unbekannte Inkompatibilitäten vor dem Start in eine dokumentierte, zuweisbare Checkliste.
Abwärtskompatibilität lässt sich App für App erkaufen: die Bugs einer alten Plattform nachzubilden – selbst ihre Speicherfehler – beseitigt jede Ausrede gegen ein Upgrade und durchbricht das Henne-Ei-Problem der Software.
Joel Spolsky, der die SimCity-Geschichte im Jahr 2000 nacherzählte, nannte dies den Weg, das Henne-Ei-Problem des Betriebssystems zu durchbrechen: „einen Abwärtskompatibilitätsmodus bereitstellen, der je nach Betrachtungsweise eine Lkw-Ladung Hühner oder eine Lkw-Ladung Eier liefert, und sich zurücklehnen und die Kohle einstreichen.“ Die Datenbank der app-spezifischen Shims überlebte Windows 95 und lässt sich noch heute im Windows Assessment and Deployment Kit einsehen.
DEN BELEGEN FOLGEN
Die Quellen
- Windows 95 went the extra mile to ensure compatibility of SimCity, other games Ars Technica · arstechnica.com ·