Páginas

quarta-feira, 17 de novembro de 2010

Porque o Windows dá tela azul?

 

Esses dias surgiu um comentário no GdH de um cara falando que os problemas de tela azul provavelmente seriam culpa do Windows. Quem conhece o Windows um pouco mais a fundo sabe que não é bem por aí, e mesmo quem não conhece não é bonito sair falando mal das coisas sem saber.

O comentário surgiu quando comentei da “tela vermelha da morte” implementada no ReactOS, um projeto open source que tenta criar uma cópia livre do Windows:

http://www.guiadohardware.net/noticias/2010-10/reactos0312.html

…Há até uma “tela vermelha da morte” que ajuda a detectar e identificar erros de hardware, situações em que o sistema geralmente travaria sem dar um aviso (embora não esteja implementada para todos os casos). Aliás, vale a pena comentar, dá para dizer que 99% dos casos de tela azul no Windows são problemas de hardware (ou no driver, que tem ligação íntima com o hardware). Quando dá uma tela azul todo mundo mete o pau no sistema mas não pára pra pensar no motivo, que na maioria das vezes é causado por terceiros (fabricantes de hardware ou drivers, ou intempéries, como por exemplo o ato fictício de remover uma placa de expansão com o micro ligado).

Quando dá uma tela azul todo mundo xinga o Windows, e são famosas as piadinhas de tela azul dele em situações importantes. Para quem não sabe ou nunca viu, a “tela azul” que se fala é quando o Windows “trava” de forma que desliga o sistema e exibe uma tela de erro.

Veja algumas imagens (e algumas montagens, rs):
http://desciclo.pedia.ws/wiki/Tela_Azul_da_Morte

Isso era mais comum nas versões antigas, mas ainda pode acontecer. Independente das melhorias e do melhor controle de qualidade hoje (como a exigência de drivers assinados pela MS na versão de 64-bit) a tela azul ainda existe.

Ela apenas indica que ocorreu um erro grave. Só isso. O sistema é desligado para evitar danos piores, seja ao hardware ou principalmente, aos dados armazenados.

Quase sempre o sistema para numa tela azul por causa do hardware, por causa de alguma peça com problema ou simplesmente por uma falha de programação não esperada no driver – o driver é um software que controla o hardware, que permite que o sistema operacional possa “conversar” com o hardware.

Em alguns casos a tela azul pode acontecer de forma bastante clara: um pente de memória com defeito, um HD com problemas graves, ou se você decidir remover uma placa de expansão com o computador ligado – não faça isso :P

Em outros casos, talvez a maioria deles, é uma falha no driver, no programa que faz a comunicação entre o sistema e o dispositivo físico. Pode ser uma função inadequada para a versão de Windows em uso (como ao forçar um driver de vídeo feito para Windows 2000 no Windows 7, ou o contrário). Pode ser uma falha de programação irreversível de algum fabricante mais vagabundo, que não executou testes suficientes. Pode ser simplesmente uma falha do “acaso”, em que o hardware físico se comportou de forma estranha, sei lá, digamos que uma sobrecarga de energia nos pentes de memória fez um deles retornar um bit errado e então o Windows não conseguiu entender e por isso se desligou.

No Windows XP, Vista, 7, etc, é comum o sistema ser reiniciado automaticamente no caso de um erro desses (embora o reinício automático também possa ser outra coisa, como resultado dos mecanismos do processador contra superaquecimento). Ele reinicia e algumas vezes exibe a tela azul por poucos segundos, salvando as informações do erro num arquivo especial. A reinicialização automática foi herdada do Windows NT, já que o 2000, XP, Vista, 7, etc são derivados do NT. O Windows 95, 98 e Me não tinham isso (normalmente apenas parava na tela azul), eles eram uma outro projeto, basicamente uma interface gráfica avançada que rodava sobre o MS-DOS.

No NT, voltado a servidores e workstations, reinicializar automaticamente era a melhor coisa a ser feita. Se o servidor tivesse um problema ele reiniciaria e (caso tudo mais estivesse OK) em poucos minutos estaria no ar novamente, sem que alguém precisasse detectar que ele foi desligado para ir lá ligar, o que poderia tomar horas em alguns casos, causando prejuízos enormes para o departamento em questão.

Já em desktops é fácil (e recomendável) desativar o reinício automático. Mas saiba que em casos muito graves o computador ainda vai reiniciar, então o melhor seria procurar a origem do problema e tentar resolvê-lo (seja aquecimento, algum driver ou dispositivo recém instalado, alguma placa recentemente trocada de slot…).

É possível causar a tela azul da morte via software também, mas não dá para dizer que foi erro “do Windows”. Uma vez usando um programa de terceiros para abrir o arquivo de imagem no DVD do Windows me veio a tela azul. Na hora soou como uma mensagem dizendo algo assim: “epa, aí não, não vai mexer no DVD do Windows não…” haha. Eu tentava adicionar arquivos na imagem do sistema que vem no DVD – claro, ela estava copiada no HD. Provavelmente ocorreu alguma falha grave no programa que tentava manipular as imagens. Como ele precisava de algum tipo de acesso especial, acabou prejudicando o sistema como um todo.

Em geral isso é raro acontecer. Nas versões atuais, principalmente, o Windows sabe se recuperar bem depois de alguns travamentos – seja em programas ou até mesmo em drivers. No Windows 7 é possível instalar um driver de vídeo sem reiniciar o sistema, assim como ele também se recupera em alguns casos de erro grave no driver de vídeo, quando ele para de funcionar. Nem sempre dá certo, depende do driver em questão, mas é uma evolução.

De qualquer forma, ao ver uma tela azul, não saia jogando a culpa no Windows diretamente. Entenda que ela é apenas um indicador de erro que quase sempre ocorre por algum programa de terceiro, pelo qual a Microsoft não tem responsabilidade (ou pelo menos, não tem tanta como muitos pensam num primeiro momento).

Para procurar mais sobre o assunto, pesquise por Blue Screen of Death ou BSOD, ou veja alguns exemplos na Wikipedia:
http://pt.wikipedia.org/wiki/BSOD

Fonte:explorando

Nenhum comentário:

Postar um comentário