Hoy en día el soporte de dispositivos USB es algo trivial, pero a finales de los 90 tanto el estándar como la compatibilidad de esos dispositivos era un verdadero caos. En Microsoft iniciaron a dar soporte a dicha estándar en Windows 98, pero aquello no fue precisamente un camino de rosas.
Para lograrlo Microsoft ingenió una prueba terrorífica. Lo contaba Raymond Chen, veterano de la empresa, en una entrevista en el canal de YouTube de uno de sus excompañeros, Dave Plummer. Allí le relataba la historia del "carrito USB de la muerte".
Aquel carrito era como un carrito de correo de oficina, pero estaba lleno de dispositivos USB que debían funcionar correctamente. Tenía varios ratones, teclados, discos, e impresoras.
Todos estaban conectados en cadena a través de diversos concentradores en tres niveles. Por entonces el límite máximo del estándar era de 127 dispositivos, pero el equipo de Microsoft trabajó inicialmente con 64 dispositivos USB encadenados, así que en Microsoft decidieron crear ese carrito con exactamente 64 cosas conectadas vía USB, y además todos esos dispositivos unificaban su conexión en un único conector USB que se podía conectar a cualquier ordenador.
La cosa no terminaba ahí: curiosamente para ayudar a manejar ese carrito y moverlo uno de los dispositivos USB conectados era un volante para videojuegos con conexión USB que estaba justo en la parte trasera para que pudieras "conducir" el carrito USB de la muerte.
Lo que se hacía entonces, explicaba Chen, era conducir el carro hasta el despacho de alguno de los desarrolladores del equipo que trabaja en dar soporte al estándar USB y se le preguntaba si tenía alguna máquina de pruebas. Cuando el desarrollador contestaba que sí, le preguntaban si podían conectar algo a ella para probarla.
La prueba era precisamente la de utilizar ese conector USB único en el que acababa todo el carrito USB de la muerte en la máquina de pruebas. Lo que ocurría entonces es que toda la infraestructura USB del sistema operativo se volvía loca al ver esos 64 dispositivos USB conectados con ese tipo de estructura.
A partir de ahí quien llevaba el carrito podía ir probando por ejemplo si un teclado de los que había conectados o un ratón funcionaban. Pero en realidad solían hacer una prueba más brutal: esperar a ver cómo el sistema "Plug & Play" comenzaba a enumerar los dispositivos y a cargar sus controladores para, de repente, desconectar ese único conector. Entonces se comprobaba si el sistema podía recuperarse reconociendo que se habían desconectado decenas de dispositivos USB mientras los estaba instalando.
El nombre del carrito era bien merecido: el resultado habitual al hacer esa prueba era el célebre pantallazo azul de la muerte de Windows. El código que daba soporte al estándar USB estaba recién salido del horno y había todo tipo de conflictos potenciales en él que aparecían ante pruebas brutales como esta.
Lo que se hacía con eso era conectar ese carrito al laboratorio en el que estaban todas las máquinas de prueba. Se conectaba el carrito, se esperaban por ejemplo cinco segundos, se desconectaba y aparecía el BSOD con cierto mensaje. Luego pasabas a otra máquina, pero esta vez esperabas siete segundos tras conectar el carrito y desconectarlo: aparecía la BSOD con otro error.
Eso permitía a los desarrolladores depurar esos errores detectando cuál había sido la causa y corrigiendo esa parte del código. De esa forma el sistema no se quedaría colgado por esa causa la siguiente vez, aunque podría hacerlo por otra que luego se corregiría, y así hasta depurar todos los fallos.
El escáner que lo inspiró todo
La inspiración, contaba Chen, vino de un evento desastroso que se hizo tristemente célebre en la historia de Microsoft: la BSOD que se produjo durante una presentación de una versión preliminar del sistema operativo Windows 98.
El 20 de abril de 1998 Bill Gates tuvo que mantener el tipo como nunca. Estaba en la feria COMDEX, en plena presentación de Windows 98 junto a Chris Capossela, uno de los responsables del desarrollo de este sistema operativo. Capossela estaba mostrando lo bien que teóricamente funcionaba el sistema "Plug & Play", pero al conectar un escáner, el sistema se colgó y mostró un pantallzo azul de la muerte (BSOD).
Caposella solo pudo pronunciar un "Whoa". El púglico empezó a reirse y a aplaudir. Bill Gates, trajeado, se rió como si aquello no fuera para tanto. "Por esto debe ser por lo que todavía no estamos vendiendo Windows 98", explicó Bill. Su subordinado, visiblemente nervioso, sonrió y contestó "desde luego".
Ahora sabemos más de la historia. Uno de los miembros de aquel equipo hacía un comentario revelador en ese vídeo igualmente llamativo de hace unos días del que hablábamos anteriormente. PatrickM, que trabajó en el desarrollo del soporte para USB, FireWire y Bluetooth y estuvo en Microsoft 18 años contó qué había sucedido.
"El Comdex BSOD fue causado por un escáner "hot dog" que no habíamos probado en el laboratorio. Habíamos verificado otro escáner en esa versión del sistema operativo, pero no se lo llevaron, sino que fueron a Fry's y compraron uno de la estantería. El escáner disparó la excepción de "sobrecorriente" ya que se reportó como "alimentado por bus" pero intentó solicitar más de los 500mA que un dispositivo "alimentado por bus" podía solicitar. Ese escáner volvió y se montó en un casco de infantería de la Segunda Guerra Mundial que BradCarp llevó a las salas de Windows WAR durante el resto del ciclo del producto".
Aquel desastre acabó ayudando a crear ese "entorno de pruebas" del carrito USB de la muerte, y sin duda aquello ayudó a mejorar el soporte y compatibilidad de un estándar que eso sí, siguió dando problemas durante muchos años con aquel sistema Plug & Play (en este contexto, algo así como "Conectar y usar") que acabó siendo objeto de múltiples bromas y rebautizado como Plug & Pray ("Conectar y rezar").
Imagen | Donald Zawalczyk
En Xataka | La historia del verdadero pantallazo azul de la muerte de Windows y su evolución
Ver 3 comentarios