Il Grande Errore di Pinball: quando un gioco Arcade mise in ginocchio Windows 95
Il noto ex ingegnere di Microsoft, Dave Plummer, ha fatto una sorprendente ammissione: l’errore più grave che abbia mai commesso in una versione di Windows non riguardava le utility di sistema, bensì un gioco molto amato, Pinball.
Questo gioco arcade, ben noto agli utenti di Windows 95 e NT, era stato originariamente scritto in C e per esso lo sviluppatore aveva realizzato un motore personalizzato per gestire grafica e audio. Proprio in questo componente era presente l’errore: il gioco non prevedeva alcun limite al frame rate, permettendo la resa grafica ad una velocità direttamente proporzionale a quella del processore.
Al momento della sua uscita, il problema in questione non era immediatamente apparente. Le macchine equipaggiate con processori MIPS R4000 a 200 MHz erano in grado di processare solo 60-90 fotogrammi al secondo (FPS), un valore che all’epoca appariva più che soddisfacente.
Tuttavia, con l’evoluzione delle prestazioni dei computer, il problema divenne via via più manifesto. Man mano che la capacità di calcolo aumentava, Pinball iniziò a monopolizzare l’intera capacità di calcolo della CPU, raggiungendo valori di FPS estremamente alti, fino a 5.000. La natura evidente di questo problema spinse Raymond Chen, un altro veterano di Microsoft, a intraprendere un’indagine dettagliata. Egli abilitò la visualizzazione della frequenza dei fotogrammi e constatò che il contatore aveva cessato di visualizzare i valori in quanto la velocità era da tempo superiore a tre cifre.
La decisione di implementare un dispositivo di controllo portò alla risoluzione del problema. La configurazione del limite a una velocità di 100 fotogrammi al secondo comportò una rapida riduzione dell’utilizzo delle risorse, che scese all’1%. Secondo Chen, questa strategia avrebbe consentito agli sviluppatori di lavorare in ambiente Windows e, contemporaneamente, utilizzare il gioco Pinball senza il timore di un arresto anomalo del sistema. Tale episodio costituì, per gli ingegneri dell’epoca, una chiara dimostrazione di come una lieve anomalia nel codice potesse trasformarsi in un guasto critico a seconda delle caratteristiche dell’hardware.
Plummer ha osservato che avere un bug nel prodotto finale era sempre percepito come un evento vergognoso. All’interno del team, la cosa veniva presa sul serio: i colleghi scherzavano senza pietà su build difettose o modifiche di scarsa qualità, e il leggendario architetto Windows Dave Cutler faceva un commento sarcastico, insinuando che l’autore non fosse chiaramente in forma smagliante durante la scrittura del codice. Plummer ha ricordato che tutte le battute finivano nel momento in cui il bug veniva inserito nella release: a quel punto la responsabilità diventava assolutamente reale.
Oggi, la storia del flipper è percepita più come una barzelletta su un gioco “goloso”, ma per gli ingegneri Microsoft di fine anni ’90, fu una lezione su come qualsiasi presupposto in architettura prima o poi diventi evidente. Soprattutto quando si tratta di software che finisce su milioni di computer in tutto il mondo.
L'articolo Il Grande Errore di Pinball: quando un gioco Arcade mise in ginocchio Windows 95 proviene da il blog della sicurezza informatica.