Windows/386 prišiel s 32-bitovým jadrom bežiacim v chránenom režime a monitorom virtuálneho stroja. Počas behu systému Windows poskytoval virtualizáciu zariadení pre diskový radič, zobrazovaciu (grafickú) kartu, klávesnicu, myš, časovač a radič prerušení. Toto prinieslo z pohľadu používateľa možnosť preemptívneho behu viacerých prostredí MS-DOS v separátnych oknách (grafické aplikácie pre systém MS-DOS vyžadovali prepnutie do režimu plnej obrazovky). Natívne aplikácie pre Windows však boli stále plánované kooperatívne v rámci jedného takého prostredia v reálnom móde. Windows 3.0 (1990) a Windows 3.1 (1992) zdokonalili návrh, hlavne vďaka virtuálnej pamäti a ovládačom virtuálnych zariadení (VxD), ktoré im dovolili zdieľať ľubovoľné zariadenia medzi DOS oknami. Čo je však dôležitejšie, aplikácie pre Windows mohli teraz bežať v 16-bitovom chránenom režime (keď Windows bežal v štandardnom alebo rozšírenom móde 386), ktorý im dával prístup k niekoľkým megabajtom pamäti a odstránil nutnosť použitia softvérovej schémy virtuálnej pamäti. Stále však bežali v tom istom adresovom priestore, kde segmentovaná pamäť poskytovala istý stupeň ochrany, a boli plánované kooperatívne (nepreemptívne). Spoločnosť Microsoft pre Windows 3.0 takisto prepísala kritické operácie z jazyka C do jazyka symbolických inštrukcií (asemblera), čo túto verziu v porovnaní s jeho predchodcami zrýchlilo a zmenšilo jej pamäťové nároky.