Hoje em dia, o suporte a dispositivos USB é trivial, mas no final dos anos 90, tanto o padrão quanto a compatibilidade desses dispositivos eram uma verdadeira bagunça. Na Microsoft começaram a suportar esse padrão no Windows 98, mas isso não foi exatamente um mar de rosas.
Para conseguir isso, a Microsoft planejou um teste aterrorizante. Raymond Chen, um veterano da empresa, contou isso em uma entrevista no canal do YouTube de um de seus ex-colegas, Dave Plummer. Lá ele contou a história de “Carrinho USB da morte“.
Esse carrinho era como um carrinho de correio de escritório, mas estava cheio de dispositivos USB que precisavam funcionar corretamente. Tinha vários mouses, teclados, discos e impressoras.
Eles estavam todos conectados em série por meio de vários hubs em três níveis. Naquela época o limite máximo do padrão era de 127 dispositivos, mas o A Microsoft trabalhou inicialmente com 64 dispositivos USB encadeadosentão na Microsoft eles decidiram criar aquele carrinho com exatamente 64 coisas conectadas via USB, e também todos esses dispositivos unificaram sua conexão em um único conector USB que poderia ser conectado a qualquer computador.
A coisa não parou por aí: curiosamente, para ajudar a gerenciar aquele carrinho e movimentá-lo, um dos dispositivos USB conectados era um volante de videogame com conexão USB que ficava logo atrás para que você pudesse “dirigir” o carrinho USB de morte.
O que foi feito então, explicou Chen, foi dirigir o carro até o escritório de um dos desenvolvedores da equipe que trabalhava no suporte ao padrão USB e perguntar se ele tinha uma máquina de teste. Quando o desenvolvedor respondeu que sim, eles perguntaram se poderiam conectar algo para testá-lo.
O teste consistia justamente em usar aquele único conector USB onde terminava todo o carrinho USB da morte na máquina de teste. O que aconteceu então é que toda a infraestrutura USB do sistema operacional estava enlouquecendo vendo aqueles 64 dispositivos USB conectados com esse tipo de estrutura.
A partir daí, quem carregava o carrinho poderia testar, por exemplo, se funcionava um teclado que estivesse conectado ou um mouse. Mas na realidade eles faziam um teste mais brutal: esperar para ver como o sistema “Plug & Play” começava a listar os dispositivos e carregar seus drivers e de repente desconectar aquele único conector. Em seguida, verificou se o sistema poderia se recuperar, reconhecendo que dezenas de dispositivos USB foram desconectados durante a instalação.
O nome do carrinho foi bem merecido: o resultado habitual ao fazer este teste foi o famoso Tela azul da morte do Windows. O código que suportava o padrão USB era recém-saído do forno e havia nele todos os tipos de conflitos potenciais que apareciam quando confrontados com testes brutais como este.
O que foi feito foi conectar aquele carrinho ao laboratório onde estavam todas as máquinas de teste. O carrinho foi conectado, esperou por exemplo cinco segundos, desconectou e o BSOD apareceu com uma determinada mensagem. Aí você foi para outra máquina, mas dessa vez esperou sete segundos depois de conectar o carrinho e desconectá-lo: o BSOD apareceu com outro erro.
Isso permitiu aos desenvolvedores depurar esses erros detectando qual foi a causa e corrigindo essa parte do código. Dessa forma o sistema não travaria por esse motivo na próxima vez, embora pudesse fazê-lo por outro motivo que seria então corrigido, e assim sucessivamente até que todos os erros fossem resolvidos.
O scanner que inspirou tudo
A inspiração, disse Chen, veio de um evento desastroso que se tornou famoso na história da Microsoft: o BSOD que ocorreu durante a apresentação de uma versão prévia do sistema operacional Windows 98.
Em 20 de abril de 1998, Bill Gates teve que manter a calma como nunca antes. Estive na feira COMDEX, apresentando o Windows 98 com Chris Capossela, um dos responsáveis pelo desenvolvimento deste sistema operacional. Capossela estava mostrando como o sistema “Plug & Play” funcionava teoricamente, mas ao conectar um scanner, o sistema travou e mostrou uma tela azul da morte (BSOD).
Caposella só conseguiu pronunciar um “Uau”. O público começou a rir e aplaudir. Bill Gates, de terno, riu como se não fosse grande coisa. “Deve ser por isso que ainda não estamos vendendo o Windows 98”, explicou Bill. Seu subordinado, visivelmente nervoso, sorriu e respondeu “é claro”.
Agora sabemos mais sobre a história. Um dos membros dessa equipe fez um comentário revelador naquele vídeo igualmente marcante de alguns dias atrás de que falamos anteriormente. PatrickM, que trabalhou no desenvolvimento de suporte para USB, FireWire e Bluetooth e esteve na Microsoft por 18 anos, contou o que aconteceu.
“O BSOD Comdex foi causado por um scanner de cachorro-quente que não testamos no laboratório. Verificamos outro scanner naquela versão do sistema operacional, mas eles não o pegaram, em vez disso foram ao Fry’s e compraram um fora da prateleira. O scanner acionou a exceção de “sobrecorrente”, pois foi relatado como “alimentado por barramento”, mas tentou solicitar mais do que os 500mA que um dispositivo “alimentado por barramento” poderia solicitar. Esse scanner retornou e foi montado em um capacete de infantaria do Segunda Guerra Mundial que BradCarp trouxe para os cinemas do Windows WAR durante o restante do ciclo do produto.”
Esse desastre acabou ajudando a criar aquele “ambiente de testes” do carrinho USB da morte, e sem dúvida ajudou a melhorar o suporte e a compatibilidade de um padrão que, sim, Continuou a causar problemas por muitos anos com aquele sistema Plug & Play (nesse contexto, algo como “Plug & Play”) que acabou sendo alvo de muitas piadas e renomeado como Plug & Pray (“Plug & Pray”).
Imagem | Donald Zawalczyk
Em Xataka | A história da verdadeira tela azul da morte do Windows e sua evolução