Quem não se lembra da "tela azul da morte" (Blue Screen of Death), uma maneira nada simpática do Windows nos dizer que ocorreu um erro catastrófico e que o PC
precisa ser reiniciado? Nos últimos anos, o aparecimento da temida tela
tornou-se menos frequente devido ao avanço das novas versões dos
sistemas operacionais da Microsoft.
Em um evento recente em
Cambridge (Inglaterra), a Microsoft falou sobre como ela tinha
conseguido reduzir o aparecimento do código da tela azul em seu SO
usando ferramentas automatizadas e uma quantidade enorme de relatórios
de falhas de usuários do Windows XP.
A principal causa de falhas
no Windows XP era os drivers, que foram responsáveis por 85% das telas
azuis no SO – principalmente erros em drivers desatualizados ou que
foram atualizados com problema. Basicamente, drivers são os códigos que
permitem que um sistema operacional controle um dispositivo de hardware, como uma impressora, utilizando comandos entre o dispositivo e o núcleo do SO, o kernel.
O
processo de encontrar e reduzir bugs (debug) em drivers pode ser
particularmente difícil, já que o seu código é escrito por diferentes
empresas e geralmente não é open source.
Suas interações também podem ser bastante complexas. "Há um número
exponencialmente crescente de drivers de dispositivos no ecossistema e
que normalmente não são escritos pela Microsoft, mas sim pelos nossos
parceiros", disse Byron Cook, principal pesquisador do laboratório da
Microsoft Research em Cambridge, ao Zdnet. "Há uma série de regras a que esses sistemas devem aderir, caso contrário, todo o sistema vai travar".
Como a Microsoft conseguiu diminuir os erros de drivers?
Equipes
na divisão Windows da Microsoft desenvolveram algoritmos baseados em
relatórios de falhas reportados por usuários do Windows XP e que estavam
relacionados com drivers. Então, esses algoritmos automaticamente categorizavam os drivers de acordo com seu desenvolvedor e listava as causas prováveis de erro.
A meta da empresa de Redmond era descobrir quais drivers estavam causando problemas e quais eram os erros fatais mais comuns entre eles. A Microsoft então estabeleceu que havia três principais maneiras de drivers travarem o Windows XP:
- Drivers quebram APIs do Windows que lidam com a comunicação entre o kernel do sistema operacional e o driver. Um exemplo é quando um driver chama duas vezes o IoCompleteRequest e isso faz com o Windows pare de funcionar;
- Corrupção de memória, que acontece quando a memória não é alocada corretamente para as estruturas de dados necessárias para o driver;
- Driver entra em loop infinito e trava o sistema.
Para
reduzir o número de bugs causados pelos drivers, a Microsoft então
iniciou um programa de verificação em que utilizava um programa de
computador com um sistema matemático para construir ferramentas capazes
de encontrar correções usando a matemática e a lógica.
A empresa desenvolveu três novas ferramentas para detectar automaticamente os erros: um software chamado Slam, utilizado como um mecanismo de verificação de drivers; o Slayer, voltado para memórias corrompidas; e o Terminator, que ajudou a descobrir uma série de erros no XP.
Basicamente,
o pesquisador Byron Cook disse que a estabilidade recente encontrada
nos novos sistemas operacionais, como o Windows 7 e 8, foram possíveis
graças ao trabalho desempenhado pela Microsoft em relação à
estabilização dos drivers.
0 comentários:
Postar um comentário