Foi nesta época que os PCs começaram a recuperar o terreno perdido para os Macintoshs da Apple. Embora fosse instável, o Windows 3.11 contava com um grande número de aplicativos e os PCs eram mais baratos que os Macs.
Área de serviço do Windows 3.11
Por estranho que possa parecer, o Windows 3.11 era ainda um sistema de 16 bits, que funcionava mais como uma interface gráfica para o MS-DOS do que como um sistema operacional propriamente dito. Ao ligar o PC, o MS-DOS era carregado e você precisava digitar “win” no prompt para carregar o Windows. Naturalmente, era possível configurar o PC para carregar o Windows por default, adicionando o comando no arquivo autoexec.bat, mas muitos (possivelmente a maioria) preferiam chamá-lo manualmente, para ter como arrumar as coisas pelo DOS caso o Windows passasse a travar durante o carregamento.
Em agosto 1995 foi lançado o Windows 95, que marcou a transição da plataforma para os 32 bits. Além de todas as melhorias na interface e da nova API, o Windows 95 trouxe duas mudanças importantes, que eram o suporte a multitarefa preemptiva e proteção de memória.
O Windows 3.11 usava um tipo primitivo de multitarefa, batizado de multitarefa cooperativa. Nele, não é usada proteção de memória, não existe multitarefa real e todos os aplicativos possuem acesso completo a todos os recursos do sistema. A ideia é que cada aplicativo usasse o processador por um certo tempo, passasse para outro programa e esperasse novamente chegar sua vez para executar mais um punhado de operações.
Esse sistema anárquico dava margem para todo o tipo de problemas, já que os aplicativos podiam monopolizar os recursos do processador e travar completamente o sistema em caso de problemas. Outro grande problema era que sem a proteção de memória, os aplicativos podiam invadir áreas de memória ocupados por outros, causando um GPF (“General Protection Falt”), o erro geral que gerava a famosa tela azul do Windows.
A proteção de memória consiste em isolar as áreas de memória utilizadas pelos aplicativos, impedindo que eles acessem áreas de memória usadas por outros. Além da questão da estabilidade, esta é também uma função básica de segurança, já que impede que aplicativos maliciosos tenham acesso fácil aos dados manipulados pelos demais aplicativos.
Windows 95 e o OS/2
Embora fosse suportada desde o 386, a proteção de memória passou a ser suportada apenas a partir do Windows 95, que introduziu também a já comentada multitarefa preemptiva, isolando as áreas de memória ocupadas pelos aplicativos e gerenciando o uso de recursos do sistema.
O grande problema era que embora fosse um sistema de 32 bits, o Windows 95 ainda conservava muitos componentes de 16 bits e mantinha compatibilidade com os aplicativos de 16 bits do Windows 3.11. Enquanto eram usados apenas aplicativos de 32 bits, as coisas funcionavam relativamente bem, mas sempre que um aplicativo de 16 bits era executado, o sistema voltava a utilizar a multitarefa cooperativa, o que dava margem aos mesmos problemas.
Na época, o Windows enfrentava a concorrência do OS/2 da IBM, que fulgurava como uma opção de sistema mais robusto, destinado sobretudo ao público corporativo.
O OS/2 surgiu de uma parceria entre a IBM e a Microsoft para o desenvolvimento de um novo sistema operacional para a plataforma PC, capaz de suceder o MS-DOS (e também as primeiras versões do Windows, que rodavam sobre ele). Inicialmente, o OS/2 foi desenvolvido para aproveitar os recursos introduzidos pelo 286 (novas instruções, suporte a 16 MB de memória, etc.) mas ele foi logo reescrito como um sistema operacional de 32 bits, capaz de aproveitar todos os recursos do 386 em diante.
Entretanto, o sucesso do Windows 3.x fez com que a Microsoft mudasse de ideia, passando a enxergar o Windows (e não o OS/2) como o futuro da plataforma PC. As tensões foram aumentando, até que em 1991 a parceria foi rompida, o que levou a Microsoft e a IBM a se tornarem concorrentes. A IBM continuou investindo no desenvolvimento do OS/2, enquanto a Microsoft usou o código desenvolvido para iniciar o desenvolvimento do Windows NT, que passou a desenvolver paralelamente ao Windows 95.
OS/2 Warp 3
Embora o OS/2 fosse tecnicamente muito superior ao Windows 95, foi a Microsoft quem acabou levando a melhor, pois o Windows 95 era mais fácil de usar e contava com a familiaridade dos usuários com o Windows 3.11, enquanto a IBM derrapava numa combinação de falta de investimento, falta de apoio aos desenvolvedores e falta de marketing.
Graças aos termos do acordo anterior, a IBM foi capaz de incluir suporte aos aplicativos Windows no OS/2. Entretanto, o tiro acabou saindo pela culatra, pois desestimulou ainda mais o desenvolvimento de aplicativos nativos para o OS/2, fazendo com que ele acabasse concorrendo com o Windows em seu próprio território. Rodar aplicativos do Windows dentro do OS/2 era mais problemático e o desempenho era inferior, fazendo com que mais e mais usuários preferissem usar o Windows diretamente.
Embora esteja oficialmente morto, o OS/2 ainda é utilizado por algumas empresas e alguns grupos de entusiastas. Em 2005 a Serenity comprou os direitos sobre o sistema, dando origem ao eComStation, um sistema comercial disponível no https://www.ecomstation.com/.