Segredos do Windows: Alienígenas comeram meu software

Alienígenas atrasam o lançamento do produto e outras respostas criativas para explicar o atraso do produto.

Raymond Chen

Um dos meus colegas costumava trabalhar para uma empresa que fabricava dispositivos de hardware. Ele me disse que o lançamento de um produto altamente antecipado uma vez foi realizado por um bug na sua parte do driver de dispositivo. Parecia haver algum tipo de condição de corrida que resultou em corrupção de memória. Coisas ruins acontecem quando você tem corrupção de memória em um driver de dispositivo.

O desenvolvedor anterior para que parte do driver foi gentil o suficiente para deixar um comentário enigmático no código: "E, em seguida, vêm os alienígenas. Gerência sênior foi naturalmente preocupada com este um bug que estava atrasando o lançamento do seu produto. Eles não parecem muito preocupados com os alienígenas do espaço, apenas o fato de que eles foram ficando no caminho do lançamento do produto.

Como os gerentes seniores não eram aqueles fazendo o bug investigando, eles fizeram o que fazem mais administradores quando eles precisam de algo feito — eles mantiveram incomodando a pessoa realmente Depurando o código. Afinal, todo mundo sabe que os desenvolvedores irão depurar problemas mais rápido se você incomodá-los para relatórios de status e incisivamente espreitam fora de seu escritório.

Em algum momento, os gerentes seniores decidiram procurar soluções criativas para o problema em vez de importunar o desenvolvedor pobre que estava tentando obter uma alça sobre o bug de corrupção de memória indescritível. Eles encontraram uma.

A "solução" foi para aumentar a produção, apesar da ausência de um motorista completamente depurado. As fábricas no exterior foram instruídas para produzir caixas totalmente embaladas com seus novos dispositivos, mas com um pequeno senão. As caixas não incluem um disquete com o driver final (esta sendo nos dias quando os drivers de dispositivo veio em disquetes). Em vez disso, havia uma pequena fenda na parte superior. As caixas de produtos quase acabados seriam carregadas em navios e transportado através do mar.

Demora algumas semanas para um navio de transporte atravessar o oceano. A esperança era que nosso herói o desenvolvedor depuração seria identificar e corrigir o erro, enquanto os dispositivos estavam ainda a caminho. Se tudo deu certo, os disquetes com o driver atualizado seria fabricados localmente, carregados em caminhões e enviados para cumprir o navio chegou na terra.

Quando os dispositivos foram descarregados do navio, trabalhadores seriam abrir as caixas, insira um disquete em cada caixa através da ranhura na parte superior, então selar as caixas e enviá-las para onde quer que eles precisavam ir. Felizmente, nosso colaborador de herói identificou o bug. Ele foi capaz de corrigi-lo no tempo, e o resto do plano prosseguiu sem mais demoras.

Interrompida de hardware

Se você está curioso sobre a natureza da falha real, eis o que aconteceu. Quando executado o fragmento de código em questão, o dispositivo acionado, por vezes, uma interrupção de hardware. O manipulador de interrupção de hardware tinha um bug que causou ele não restaurar os registros corretamente antes de retornar o controle para o código original. Do ponto de vista do código interrompido, foi realmente como se alienígenas tinham vindo e corrompido os registradores na CPU. Para que o colaborador original não foi muito longe.

Eu tenho dito do fabricante de um computador que outrora considerado retirar uma versão ainda mais extrema deste truque, quando uma nova versão do Windows foi lançada. A fim de obter seus computadores para o mercado rapidamente, o plano era para fabricá-los com uma cópia de uma compilação de pré-lançamento e carregá-los em navios.

Em vez de simplesmente satisfazer os navios chegaram em terra, sua idéia foi interceptar cada navio de carga, enquanto cruzava o oceano, assim como nos filmes de espionagem. Eles iria implantar uma equipe de pessoas que abrir cada caixa do computador e atualizar o sistema operacional para a versão final do Windows ali no navio.

Não sei quão seriamente consideravam este plano audacioso, mas foi finalmente abandonada. Eles decidiram esperar até a versão final foi lançada antes dos computadores de embalagem em caixas. Que apenas lhe dá uma idéia dos comprimentos para que alguns vão para agilizar a obtenção seu produto lá fora no tempo.

Raymond Chen

Raymond Chendo Web site, The Old New Thing e intitulado idêntico (Addison-Wesley, 2007) do livro lidar com a história do Windows e da programação Win32. Não conte a ninguém, mas você é seu leitor favorito.

Conteúdo relacionado