Windows 95 revelava segredo que acelerava reinicialização devido a arquitetura caótica
O Windows 95 e suas complexidades ocultas na reinicialização.
O Windows 95 marcou uma revolução na interface dos sistemas operacionais, introduzindo elementos que se tornaram essenciais, como o menu Iniciar e a barra de tarefas. Essa versão foi lançada em um período em que a inicialização de um computador era um processo meticuloso, quase ritualístico. Por trás de sua interface amigável, havia uma arquitetura complexa que resultava da integração do legado do DOS com o Windows de 16 bits e as primeiras implementações de 32 bits.
Um aspecto pouco conhecido do Windows 95 era a possibilidade de realizar uma reinicialização alternativa. Ao manter a tecla Shift pressionada durante o processo de reinicialização, o sistema apresentava uma mensagem informando que estava reiniciando, em vez de seguir o método tradicional. Essa técnica, embora sutil, era valiosa em uma época em que cada segundo de inicialização contava, permitindo uma reinicialização mais rápida sem a necessidade de um ciclo completo.
Essa abordagem alternativa era resultado de uma decisão técnica específica. O sistema utilizava um parâmetro chamado EW_RESTARTWINDOWS ao invocar a função ExitWindows. Em vez de solicitar uma reinicialização total, essa instrução permitia que o Windows fosse fechado e reaberto, economizando tempo e recursos, desde que todos os componentes funcionassem corretamente.
O processo de reinicialização alternativa seguia uma sequência bem definida. Primeiramente, o kernel de 16 bits era encerrado, seguido pela desativação do gerenciador de memória virtual de 32 bits, retornando o processador ao modo real. Nesse estágio, o controle era transferido de volta ao win.com, que tinha a tarefa de reiniciar o Windows em modo protegido sem realizar uma inicialização completa.
Com o controle de volta ao win.com, o sistema precisava simular uma inicialização limpa. Isso envolvia redefinir opções e variáveis globais para seus estados originais, o que, embora burocrático, era complexo devido à natureza do código em linguagem assembly, que não contava com abstrações modernas.
A memória desempenhava um papel crucial nesse processo. Quando o win.com era executado, ele utilizava toda a memória convencional disponível, liberando espaço para que o Windows carregasse um bloco contíguo ao entrar no modo protegido. Se um programa reservasse memória dentro desse espaço, a fragmentação poderia ocorrer, dificultando a recriação do mapa de memória original e forçando o sistema a realizar uma reinicialização completa.
Quando todas as condições eram favoráveis, o win.com seguia diretamente para o código de inicialização do Windows em modo protegido, restaurando o gerenciador de máquinas virtuais e reativando as camadas de 32 bits. A interface gráfica então carregava normalmente, permitindo que o usuário retornasse à área de trabalho sem uma reinicialização total do sistema.
Esse atalho só era viável em um sistema que precisava manter compatibilidade com diferentes softwares, incluindo DOS e aplicativos de 16 bits. Essa complexidade levou a soluções práticas, mas muitas vezes elegantes, que permitiram otimizações que aceleravam a reinicialização, embora nem sempre de forma confiável.
A busca por eficiência na utilização da memória resultou em técnicas inovadoras, como a reciclagem de código não utilizado. No win.com, partes do código eram reutilizadas como variáveis globais, permitindo que a reinicialização rápida ocorresse sem interferir no processo, já que o código não precisava ser acessado novamente.
No entanto, essa abordagem não era isenta de falhas. Alguns usuários relataram travamentos após múltiplas reinicializações rápidas, possivelmente devido a controladores que não reiniciavam corretamente, resultando em estados estranhos no sistema. Esse comportamento não foi documentado como um recurso, mas exemplifica o espírito do Windows 95: engenhoso, ambicioso e repleto de concessões.
