Windows on Windows (ofta förkortat WOW) är ett kompatibilitetslager i x86-versioner av Microsoft Windows NT-familjen av operativsystem som gör det möjligt att köra många äldre 16-bitars program som är gjorda för Windows 3.x eller tidigare.

 

Hur det fungerar

WOW är en samling komponenter i Windows NT som översätter och kör 16-bitars Windows‑kod på en 32‑bitars NT-kärna. Viktiga delar är bland annat ntvdm.exe (NT Virtual DOS Machine) för DOS- och vissa 16‑bitarsprogram, samt processer och DLL:er som wowexec och wow32.dll som hanterar Win16‑subsystemet. När ett 16‑bitarsprogram startas körs det i en emulerad/virtuell 16‑bitarsmiljö där anrop till äldre API:er "thunkas" (översätts) till motsvarande 32‑bitarsanrop i Win32‑API:et. Thunking inkluderar omvandling av pekare, parametrar och vissa strukturformat så att gamla program kan samarbeta med den moderna kärnan och minnesmodellen.

Viktiga egenskaper

  • 16‑bitarsprogram körs i en eller flera gemensamma 16‑bitarsmiljöer; flera gamla program delar ofta samma 16‑bitarsadressrymd vilket kan göra dem mindre isolerade än vanliga 32‑bitarsprocesser.
  • WOW tillåter många äldre program att köras utan källkodsändringar genom API‑översättning och emulation av vissa beteenden från Windows 3.x.
  • Systemanrop som kräver direkt åtkomst till hårdvara eller 16‑bitarsenhetsdrivrutiner stöds normalt inte under WOW; sådana program kan därför fungera dåligt eller inte alls.

Begränsningar och vanliga problem

  • Ingen fullständig isolering: Eftersom flera 16‑bitarsapplikationer ofta körs i samma VDM kan ett fel i ett program påverka andra 16‑bitarsprogram.
  • Drivrutiner och kernel‑åtkomst: 16‑bitarsenhetsdrivrutiner och program som kräver direkt hårdvaruåtkomst fungerar inte i WOW.
  • Installationsprogram: Många äldre 16‑bitarsinstallationsprogram antar direkt hårdvaruåtkomst eller gamla minnesmodeller och kan därför misslyckas.
  • Ej på 64‑bitars‑Windows: På x64‑versioner av Windows finns inte NTVDM/Win16‑subsystemet vilket innebär att 16‑bitarsprogram inte kan köras direkt (se nedan).

WOW och 64‑bitars Windows (WOW64 vs WOW)

Det är viktigt att skilja på WOW (Windows on Windows för 16‑bitarsprogram på 32‑bitars Windows) och WOW64 (Windows on Windows 64), som är en separat kompatibilitetsmekanism för att köra 32‑bitarsprogram på 64‑bitars Windows. WOW64 låter 32‑bitarsapplikationer köras på x64 Windows men innehåller inte NTVDM eller Win16‑stöd. Det betyder att 16‑bitarsprogram inte fungerar på 64‑bitarsversioner av Windows utan alternativa lösningar.

Praktiska råd och alternativ

  • På 32‑bitars Windows: NTVDM och WOW är oftast tillgängliga. I nyare Windows‑versioner kan NTVDM aktiveras via "Program och funktioner" → "Windows‑funktioner" → "Legacy Components" → "NTVDM".
  • På 64‑bitars Windows: Kör 16‑bitarsprogram i en virtuell maskin (t.ex. Hyper‑V, VirtualBox, VMware) med en 32‑bitars eller äldre Windows‑installation, eller använd specialiserade emulatorer som DOSBox för DOS‑baserade program.
  • Portning/ersättning: Om möjligt är det bäst att uppdatera eller ersätta kritiska äldre program med moderna 32‑/64‑bitarsvarianter för bättre säkerhet och stabilitet.
  • Windows XP Mode / äldre virtuella bilder: För äldre Windows‑applikationer kan virtuella bilder med Windows XP eller Windows 7 (32‑bit) vara en praktisk väg för kompatibilitet.

Säkerhet och underhåll

Eftersom 16‑bitarsprogram ofta är gamla saknar de moderna säkerhetsfixar. Att köra dessa program kan innebära säkerhetsrisker, särskilt om de får nätverksåtkomst eller körs med höga privilegier. Använd isolering (virtuella maskiner) och överväg att migrera kritiska arbetsflöden till stödda program.

Sammanfattningsvis erbjuder Windows on Windows ett användbart sätt att köra många äldre 16‑bitarsprogram på x86‑versioner av Windows NT genom översättning och emulation, men funktionen har tekniska och säkerhetsrelaterade begränsningar och finns inte på 64‑bitars Windows. För ofullständigt stöd är virtualisering eller portning ofta bästa alternativet.