Podsystem środowiska został zaprojektowany do uruchamiania aplikacji napisanych dla wielu różnych systemów operacyjnych. Żaden z podsystemów środowiska nie może uzyskać bezpośredniego dostępu do sprzętu i musi złożyć zamówienie na dostęp do pamięci poprzez menedżera pamięci wirtualnej (), który działa w trybie jądra. Ponadto aplikacje otrzymują niższy priorytet niż procesy w trybie jądra. Obecnie istnieją trzy główne podystemy środowiska: podsystem Win32, OS/2 i POSIX.
Podsystem środowiska Win32 może uruchamiać 32-bitowe aplikacje dla Windows. Zawiera on obsługę konsoli i okien tekstowych, oraz obsługę wyłączenia i błędów dla pozostałych podsystemów środowiska. Ponadto umożliwia on korzystanie z maszyn wirtualnych DOS (), które umożliwiają uruchamianie aplikacji dla systemu MS-DOS oraz 16-bitowych Windows 3.x (Win16). Istnieje specjalna maszyna wirtualna DOS (oparta na sprzętowym trybie wirtualnym 8086 obecnym w architekturze x86), która działa we własnej przestrzeni adresowej, emulując procesor Intel 80486 z uruchomionym systemem MS-DOS 5. Programy Win16 natomiast są uruchamiane w maszynie Win16 (do jej uruchomienia niezbędne jest wcześniejsze uruchomienie odrębnej maszyny wirtualnej DOS).