Microsoft iniziò lo sviluppo del suo “Chicago”, il sistema operativo che doveva unire Windows 3.1 e Windows NT. Qui dovevano implementare una nuova interfaccia grafica per competere con OS/2 Workplace Shell. Inoltre, venne progettato interamente a 32 bit e con il supporto al pre-emptive multitasking (come Windows NT). Le API Win32 vennero utilizzate come interfaccia esterna ma mantennero la compatibilità con le API Win16. Non riuscirono a tradurre tutto il codice di Windows a 32 bit, lasciarono alcune parti a 16 bit per motivi di compatibilità, di prestazioni e anche per l’accorciare i tempi di sviluppo. Questa fretta nello sviluppo e la volontà di mantenere la compatibilità con il vecchio sistema influenzò la stabilità del sistema operativo.
Microsoft lasciò il compito di scegliere un nome per il nuovo sistema operativo al reparto marketing che si limitarono a chiamarlo “Windows 95”, dove il numero corrispondeva all’anno di rilascio (agosto 1995). Questo nuovo sistema fu molto vantaggioso per Microsoft in quanto rese impossibile l’utilizzo dell’economico DOS non-Microsoft ed una versione di DOS veniva caricata rapidamente in fase di bootstrap mentre le applicazioni di Windows 95 venivano eseguite esclusivamente in modalità Enhanced 386 con uno spazio di indirizzamento completamente a 32 bit e con memoria virtuale. In questo modo ogni applicazione Win32 era in grado di indirizzare anche 2 GB di RAM virtuale. Con l’uscita di Windows 95, OS/2 di IBM iniziò a perdere quote di mercato.
Microsoft rilasciò 5 versioni di Windows 95:
- Windows 95 Original Release = prima versione pubblicata
- Windows 95 A = Original Release + Service Pack 1
- Windows 95 B = miglioramenti al sistema: Internet Explorer 3.0, supporto a FAT32
- Windows 95 B USB = supporto a USB
- Windows 95 C = versione B USB + Internet Explorer 4.0