Windows Confidential: Aliens haben meine Software verschluckt

Aliens, die Ihre Produktfreigabe verhindern, und andere kreative Erklärungen für die Verzögerung Ihres Produkts.

Raymond Chen

Einer meiner Kollegen verwendet, um für ein Unternehmen arbeiten, das Hardware-Geräte hergestellt. Er erzählte mir, dass eine mit Spannung erwartete Produktveröffentlichung einmal durch einen Fehler in seinem Teil des Gerätetreibers abgehalten wurde. Es schien eine Art von Race-Bedingung, die Speicherbeschädigung führte. Schlimme Dinge passieren, wenn ein Gerätetreiber Speicherbeschädigung aufweist.

Der vorherige Entwickler für diesen Teil des Treibers war freundlich genug, um einen rätselhaften Kommentar im Code zu schreiben: "Und dann die Außerirdischen kommen." Geschäftsleitung war natürlich besorgt über einen Fehler, die die Veröffentlichung ihres Produktes verzögert wurde. Sie scheinen nicht allzu besorgt über die Außerirdischen, allein die Tatsache, die sie im Wege der Produktversion bekamen.

Wie die Führungskräfte machen den Fehler untersucht diejenigen nicht, sie taten, was die meisten Führungskräfte tun, wenn sie etwas brauchen – sie hielt Lauschangriff die Person tatsächlich Debuggen des Codes. Schließlich weiß jeder, dass Entwickler Probleme schneller Debuggen werden, wenn Sie sie für Statusberichte belästigen und demonstrativ außerhalb ihrer Büros lauern.

Irgendwann beschlossen die Führungskräfte, suchen Sie nach kreativen Lösungen für das Problem statt belästigen den Armen Entwickler, der versuchte, einen Handle auf den flüchtigen Speicher-Korruption-Bug zu erhalten. Sie fanden ein.

Ihre "Lösung" sei Rampe bis Fertigung, trotz des Fehlens eines vollständig ausgetesteten Treibers. Die Fabriken im Ausland wurden angewiesen, voll gepackte Kisten mit ihren neuen Geräten, aber mit ein wenig Fang zu produzieren. Das würde keine Diskette mit dem final-Treiber (diese wird zurück in die Tage, die als Gerätetreiber auf Disketten kam) sind enthalten. Stattdessen gab es einen kleinen Schlitz in der Spitze. Die Boxen der fast fertigen Produkte wäre dann auf Schiffe verladen und über das Meer transportiert.

Es dauert ein paar Wochen für ein Transportschiff, den Ozean zu überqueren. Die Hoffnung war, dass unser Held der Debuggen Entwickler ermitteln und den Fehler beheben, während die Geräte noch unterwegs waren. Wenn alles geklappt, heraus hat, wäre die Disketten mit dem aktualisierten Treiber vor Ort hergestellt, auf LKW verladen und geschickt, um das Schiff zu treffen, wie es am Ufer angekommen.

Wenn die Geräte aus dem Schiff entladen waren, würde Arbeitnehmer Kisten zu öffnen, legen Sie eine Diskette in jede Box über den Schlitz an der Spitze, dann die Kisten wieder versiegeln und senden sie ab, wo sie gebraucht zu gehen. Glücklicherweise hat unser Held-Entwickler den Fehler identifiziert. Er konnte es rechtzeitig zu beheben, und der Rest des Plans verlief ohne weitere Verzögerung.

Hardware unterbrochen

Wenn Sie neugierig auf die Natur des eigentlichen Fehlers, ist hier was passiert ist. Dass das Codefragment in Frage ausgeführt, das Gerät manchmal einen Hardwareinterrupt ausgelöst. Die Hardware-Interrupt-Behandlungsroutine hatte einen Fehler, der es nicht wiederherstellen die Register ordnungsgemäß vor dem Zurückgeben der Steuerung an den ursprünglichen Code verursacht. Aus der Sicht des unterbrochenen Codes war es in der Tat als ob Außerirdischen gekommen und die Register in der CPU beschädigt. Damit die ursprünglichen Entwickler nicht weit weg war.

Ich habe von einem Computerhersteller, der einst eine noch extremere Version von diesen Trick abziehen als, wenn eine neue Version von Windows für die Freigabe wurde gesagt. Um ihren Computer zu schnell vermarkten zu erhalten, war ihr Plan fertigen sie eine Kopie eines Vorabversion Builds und auf Schiffe geladen.

Statt lediglich treffen die Schiffe, als sie am Ufer angekommen, war ihre Idee, jedes Schiff abzufangen, als er den Ozean kreuzte, wie im Spionage-Filmen. Sie würden ein Team von Menschen bereitstellen, die jeder Computer-Box zu öffnen und das Betriebssystem aktualisieren, um die endgültige Version von Windows genau dort auf dem Schiff.

Ich weiß nicht, wie ernst sie diese audacious Plan betrachtet, aber es wurde schließlich aufgegeben. Sie beschlossen zu warten, bis die endgültige Fassung veröffentlicht wurde, bevor Sie die Computer in Kisten packen. Das gibt Ihnen nur eine Vorstellung davon, welche einige gehen wird, um bekommen ihr Produkt draußen auf Zeit zu beschleunigen.

Raymond Chen

Raymond ChenWeb Site, The Old New Thing, und identisch mit dem Titel Buch (Addison-Wesley, 2007) befassen sich mit der Geschichte von Windows und Win32-Programmierung. Nicht niemandem sagen, aber du bist seine Lieblings-Reader.

Verwandter Inhalt