Tietokoneissa Windows on Windows (usein lyhennettynä WOW,) on Microsoft Windows NT -käyttöjärjestelmäperheen x86-versioiden yhteensopivuuskerros, jonka avulla voidaan käyttää monia 16-bittisiä ohjelmia, jotka on tehty Windows 3.x:lle tai sitä ennen.

 

Mitä WOW tekee

WOW tarjoaa 16-bittisille Windows- ja DOS-sovelluksille kerroksen, joka muuntaa (ns. "thunking") 16-bittiset kutsut 32-bittisiksi kutsuiksi, jotta ne voivat toimia modernimmassa 32-bittisessä ympäristössä. Lisäksi 16-bittisille DOS-pohjaisille sovelluksille Windowsissa on erillinen virtuaalinen DOS-kone, NT Virtual DOS Machine (ntvdm), joka luo niille rajoitetun DOS-ympäristön.

Arkkitehtuuri ja toteutus

  • Thunking-kerros: muuntaa 16-bittisiä rajapintoja ja tietorakenteita 32-bittiseksi kutsuiksi.
  • NTVDM (ntvdm.exe): emuloi DOS-tilaa ja suorittaa DOS-pohjaisia 16-bittisiä ohjelmia erissä eristettynä muusta järjestelmästä.
  • Jaettu osoitetila: useimmat 16-bittiset Windows-sovellukset käyttävät samaa 16-bittistä osoiteavaruuden lohkoa. Tämä historiallinen rajoitus voi aiheuttaa sen, että yhden 16-bittisen sovelluksen virhe voi vaikuttaa myös muihin 16-bittisiin sovelluksiin.

Rajoitukset ja yhteensopivuusongelmat

  • Arkkitehtuuririippuvuus: WOW on suunniteltu x86-pohjaisille 32-bittisille Windows NT -versioille. 64-bittisissä Windows-versioissa ei ole NTVDM:ää, joten 16-bittiset sovellukset eivät käynnisty suoraan.
  • Ei laiteajureille: 16-bittisiä laiteajureita tai kernel-tilassa toimivia 16-bittisiä komponentteja ei voi käyttää — NT vaatii laiteajurit 32-bittisinä / kernel-tilassa toimivina moduuleina.
  • Suorituskyky ja odotukset: jotkin hyvin vanhat ohjelmat odottavat suoraa laitteiston käyttöä (esim. näytön tai porttien suora ohjaus) tai reaalitilan toimintoja, joita NTVDM rajoittaa tai ei voi täysin emuloida.
  • Grafiikka ja liitännäiset: vanhat sovellukset, jotka perustuvat suoraan vanhoihin GDI- tai muistinkäsittelykäytäntöihin, voivat toimia virheellisesti tai fragmentoitua käytännössä.

Erot WoW64:ään

On tärkeää erottaa WOW ja WoW64. WoW64 on erillinen yhteensopivuuskerros, joka mahdollistaa 32-bittisten Windows-sovellusten suorittamisen 64-bittisessä Windowsissa. Se ei kuitenkaan suorita 16-bittisiä ohjelmia. Tästä syystä 64-bittisillä Windows-versioilla ei ole suoraa tukea 16-bittisille sovelluksille.

Käytännön ohjeet modernissa ympäristössä

  • Jos käytät 32-bittistä Windows-versiota, NTVDM on yleensä saatavilla ja joissakin tapauksissa otettavissa käyttöön Windowsin ominaisuuksista (Ohjauspaneeli → Ohjelmat ja toiminnot → Windowsin ominaisuudet → Legacy Components / NTVDM).
  • 64-bittisissä järjestelmissä 16-bittisten ohjelmien ajamiseen suositellaan virtualisointia (esim. VirtualBox, VMware) tai emulatoria kuten DOSBox (erityisesti DOS-pohjaisille peleille ja työkaluista), tai käyttöä 32-bittisessä käyttöjärjestelmässä virtuaalikoneessa.
  • Jos ohjelma vaatii laiteajuria tai suoraa laitteiston kontrollia, useimmiten ainoa toimiva ratkaisu on ajaa sitä vanhassa ympäristössä (vanha fyysinen kone tai täysi virtualisointi), koska modernit kernel-rajapinnat eivät salli 16-bittisten ajureiden käyttöä.

Yhteenvetona: Windows on Windows (WOW) oli tärkeä osa Windows NT -perheen kykyä ylläpitää taaksepäin yhteensopivuutta 16-bittisten sovellusten kanssa x86-alustoilla, mutta sen rajoitukset ja se, että sitä ei ole saatavilla 64-bittisissä Windows-versioissa, tarkoittavat että vanhojen sovellusten käyttöönottoon kannattaa suunnitella vaihtoehtoisia ratkaisuja kuten virtualisointi tai emulaattorit.