Windows-informazioni riservate: Il software nel buco nero

Indicazioni e risposte creative da utilizzare in caso di ritardo nel rilascio di un prodotto.

Raymond Chen

Uno dei miei colleghi abituati a lavorare per una società che produceva dispositivi hardware. Mi ha detto che il rilascio di un prodotto altamente prevedibile una volta è stato additato da un bug nella sua parte del driver di dispositivo. Ci sembrava essere una sorta di race condition che risultò nella corruzione della memoria. Male le cose accadono quando si ha il danneggiamento della memoria in un driver di periferica.

Lo sviluppatore precedente per la parte del driver è stato gentile abbastanza per lasciare un commento enigmatico nel codice: "E poi gli alieni dello spazio." Senior management naturalmente era preoccupato per questo un bug che era ritardare il rilascio del loro prodotto. Non sembrano troppo preoccupati per gli alieni di spazio, solo il fatto che essi sono stati sempre nel senso del rilascio del prodotto.

Come i dirigenti non erano quelli che facendo il bug indagando, hanno fatto la cosa più alti dirigenti fanno quando hanno bisogno di qualcosa fatto — hanno mantenuto bugging la persona effettivamente il codice di debug. Dopo tutto, tutti sanno che gli sviluppatori di debug problemi più velocemente se li assillano per relazioni sullo stato e pointedly si nascondono fuori del loro ufficio.

A un certo punto, i dirigenti senior decisero di cercare soluzioni creative per il problema invece di tormentare il povero sviluppatore che stava cercando di ottenere una maniglia su bug sfuggente di corruzione della memoria. Hanno trovato uno.

Loro "soluzione" era di rampa produzione, nonostante l'assenza di un driver completamente debug. Le fabbriche d'oltremare sono state istruite per produrre scatole completamente confezionati con i nuovi dispositivi, ma con un po ' catch. Le caselle non includono un disco floppy con il driver finale (questo essere indietro nei giorni quando i driver di periferica è venuti su floppy disk). Invece, c'era una piccola fessura nella parte superiore. Le scatole dei prodotti quasi finiti sarebbero poi caricate su navi e trasportati attraverso il mare.

Prende un paio di settimane per una nave da trasporto di attraversare l'oceano. La speranza era che il nostro eroe lo sviluppatore debug sarebbe identificare e correggere i bug mentre i dispositivi erano ancora in rotta. Se tutto ha funzionato, i dischi floppy con il driver aggiornato sarebbe prodotta localmente, caricati su camion e inviati a incontrare la nave come è arrivato sulla riva.

Quando i dispositivi sono stati scaricati dalla nave, lavoratori sarebbero aprire le casse, inserire un disco floppy in ogni casella tramite lo slot sulla parte superiore, poi sigillare le casse di back-up e mandarli a ovunque hanno bisogno di andare. Fortunatamente, il nostro sviluppatore eroe ha fatto identificare il bug. Egli era in grado di risolvere il problema nel tempo, e il resto del piano ha proceduto senza ulteriore indugio.

Hardware interrotto

Se siete curiosi circa la natura del reale bug, ecco cosa è successo. Quando viene eseguito il frammento di codice in questione, il dispositivo talvolta innescato un interrupt hardware. Il gestore di interrupt hardware aveva un bug che ha causato non ripristinare i registri correttamente prima di restituire il controllo al codice originale. Dal punto di vista del codice interrotto, era davvero come se spazio stranieri erano venuto e danneggiato i registri della CPU. Modo che sviluppatore originale non era lontano.

Mi è stato detto del produttore del uno computer che una volta considerati tirando fuori una versione ancora più estrema di questo trucco, quando una nuova versione di Windows era dovuta per il rilascio. Al fine di ottenere il loro computer al mercato rapidamente, il loro piano era di produrli con una copia di una compilazione preliminare e caricarli sulle navi.

Invece semplicemente incontro le navi come sono arrivati sulla riva, loro idea era quella di intercettare ogni nave da carico come ha attraversato l'oceano, proprio come nel film di spionaggio. Vuoi distribuire un team di persone che vorrebbero aprire ogni casella computer e aggiornare il sistema operativo alla versione finale di Windows proprio lì sulla nave.

Non so quanto seriamente hanno considerato questo piano audace, ma alla fine fu abbandonato. Hanno deciso di attendere la versione finale rilasciata prima del computer di imballaggio in scatole. Che ti dà solo un'idea delle lunghezze che alcuni andranno a accelerare ottenendo il loro prodotto là fuori in tempo.

Raymond Chen

Raymond Chendi Web site, The Old New Thing e identicamente intitolato libro (Addison-Wesley, 2007) trattare con la storia di Windows e la programmazione di Win32. Non dirlo a nessuno, ma tu sei suo lettore preferito.

Contenuto correlato