Por que o Windows 98 nos deu telas azuis com frequência? [fechadas]

6

Ao contrário do Windows XP, que raramente me dava uma tela azul, lembro que, quando eu estava usando o Windows 98, ele geralmente aparecia na tela azul.

Há algo errado com o Windows 98 que o torna particularmente instável?

lamwaiman1988
fonte
11
Você está tendo um problema real ou apenas curioso?
precisa saber é o seguinte
Estou curioso. Estou usando o Windows Xp agora.
precisa saber é o seguinte
3
Na verdade não, o Windows 2000 foi o primeiro Windows a usar o kernel NT5.x mais robusto.
twsaef
11
A contratação de um desenvolvedor de dezembro provavelmente ajudou corrigir isso :)
MikeJ-UK

Respostas:

8

A principal causa de um BSOD é uma exceção que não foi tratada em um driver do qual o sistema não pode se recuperar. A principal razão pela qual as coisas mudaram é que o novo sistema de driver ( WDM ) é muito mais estável do que o sistema antigo ( VxD ) ao lidar com casos extremos. Agora você receberá apenas um erro no log de eventos em vez de um BSOD em um erro em um driver que não é ruim o suficiente para derrubar o sistema.

Outro fator é que a Microsoft disponibilizou muito mais recursos para os desenvolvedores usarem para criar um código melhor.

Um terceiro fator (que billc.cn me lembrou, e isso pode ser mais comum que o problema do driver). A partir do Windows XP, é muito mais difícil acessar a RAM de outro programa em execução. Frequentemente, apenas programas mal escritos normais podiam simplesmente apagar e sobrescrever o que quisessem dentro do espaço de memória de outro programa, e se esse outro programa fosse uma parte essencial do Windows ... BSOD.

Entre essas três coisas, é por isso que os BSODs são muito menos comuns.

é claro que se você realmente sente falta de BSODs, defina CrashOnCtrlScroll como 1, mantenha pressionada a tecla Ctrl direita e pressione Scroll Lock duas vezes. (salve todos os programas abertos antes de tentar)

Scott Chamberlain
fonte
5
  • Às vezes, é apenas um estilo específico de relatar erros não fatais. Você pode realmente se recuperar desse tipo de tela azul pressionando Enter.
  • O Windows 98 não possui proteção de memória e controle de acesso, portanto, um processo pode corromper facilmente a memória de outros processos. Não há uma maneira fácil de recuperar a corrupção do processo do kernel ou do sistema, portanto, ele só pode mostrar um BSoD e reiniciar. Desde o Windows NT, a estrita proteção de memória foi implementada para que a tela seja exibida com menos frequência (somente possível devido a erros de espaço no kernel).
  • O Windows manteve a compatibilidade com o DOS, para que você possa ter todos os tipos de coisas estranhas, como drivers de 16 bits. Eles podem ter tantos hacks neles que são apenas BSoDs esperando para acontecer.
  • O Windows 98 contém muitos códigos de bugs em geral.
billc.cn
fonte
Eu não diria que o Windows 98 continha código de buggy, todo código tem bugs, é só que o Windows 98 foi criado em uma era diferente. Portanto, os bugs que seriam corrigidos hoje através de um patch eram mais difíceis de corrigir com o Windows 98. O Windows 98 ainda tinha o Windows Update?
Ramhound
@ Ramhound: Sim, embora não seja automático.
grawity
2

Outra coisa que causa BSoDs é o algoritmo de agendamento. Se você não souber o que é um agendador, o agendador é a parte do kernel que decide qual aplicativo será executado em seguida em um sistema multitarefa. O principal objetivo do planejador é poder executar todos os aplicativos em estado de "processo" e impedir que esses processos retenham os recursos do sistema para sempre. Todo processo precisa de recursos do sistema, como memória, CPU ou E / S, e eles precisam liberar esses recursos após usá-los. Se um processo aguarda um recurso que está sendo mantido por outro processo, esse processo de espera não pode continuar em execução e passar fome para esse recurso. Suponha que temos dois processos em execução, p1 e p2, e dois recursos do sistema, r1 e r2, e p1 contém r1, p2 contém r2. Se o processo p2 entrar em um estado de espera pelo recurso r1 e o processo p1 entrar em um estado de espera pelo recurso r2, esse sistema será bloqueado e os processos p1 e p2 não poderão sair do estado de espera e não poderão continuar em execução. Este estado é nomeado como "Deadlock". Um sistema totalmente em conflito pode ser recuperado apenas pela reinicialização.

O algoritmo de agendamento do Win98 não pode evitar os deadlocks conforme desejado . Portanto, os BSoDs são mais frequentes no win98 do que no winXP, que possui agendador e gerenciador de recursos mais avançados e poderosos.

O alienígena
fonte
-1 Nenhum agendador pode impedir bloqueios, e são apenas bloqueios nos drivers (extremamente raros) que causam um BSoD. Portanto, a única diferença seria na detecção de conflito de driver entre XP e 98, mas duvido que sejam tão diferentes assim.
precisa saber é o seguinte
2

O Windows XP (que tecnicamente é o Windows NT 5.1) é / foi baseado em uma arquitetura completamente diferente em comparação com o Windows 98 (tecnicamente Windows 4.1). Também não me lembro de obter muitos BSODs no Windows NT 4.0. O kernel e a arquitetura do NT são projetados e escritos de tal maneira que os erros de software que derrubam todo o sistema operacional (manifestando-se como um BSOD) são muito mais raros do que na série antiga / "regular" do Windows. Lembre-se de que o caminho de atualização do produto foi do DOS + Windows 3.11 para Windows 95 para Windows 98 ou Windows NT 3.x para Windows NT 4.0 para Windows 2000 (NT 5.0) para Windows XP (NT 5.1).

Lembro que quando instalei o NT 4.0 Workstation, uma coisa que foi especificamente apontada foi que você não pode instalá-lo sobre qualquer versão do Windows comum (em oposição ao Windows NT). Provavelmente poderia ter sido possível se a Microsoft tivesse se esforçado muito, mas os dois são tão diferentes que (1) provavelmente não seria realmente significativo e (2) não haveria maneira de garantir uma estabilidade resultado, SO e / ou aplicativo. Portanto, eles provavelmente optam por nem tentar e, em vez disso, gastam esse tempo trabalhando em outros recursos que eram mais significativos em seu mercado-alvo (que era completamente diferente da série Windows 9x). O mesmo acontece com o Windows 2000, acredito, mas como naquele momento eu estava atualizando do NT 4.0, isso não era um problema para mim.

Como uma observação lateral, uma grande alteração feita entre o NT 3.51 e o NT 4.0 foi colocar os drivers gráficos no anel 0 (modo kernel) do anel 3 (modo usuário). Isso foi supostamente feito por motivos de desempenho, mas teve uma grande desvantagem: de repente, um driver gráfico mal escrito poderia muito mais facilmente derrubar o sistema com um BSOD. Eu acho, mas não tenho certeza, que uma coisa que eles mudaram no Vista (NT 6.0) foi colocar esses drivers de volta no anel 3 - desta vez por razões de estabilidade.

um CVn
fonte
2

Os principais pontos já foram mencionados: o Windows XP possui um novo subsistema de driver e o Windows XP possui uma proteção de memória muito mais rígida.

Um terceiro ponto importante que não foi mencionado: a partir do Windows XP, a Microsoft exigiu que todos os drivers de hardware + passassem por um certo nível de teste de compatibilidade ( WHQL ) para exibir um adesivo "Compatível com Windows" . Isso impõe um certo nível de garantia de qualidade que não costumava existir.

BlueRaja - Danny Pflughoeft
fonte