Windows on Windows
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.
Tausta
WOW mahdollistaa monien 16-bittisten Windows-ohjelmien suorittamisen ilman muutoksia uudemmissa 32-bittisissä Windows-versioissa. Tämä tehtiin, jotta ohjelmistokehittäjät saisivat aikaa tehdä ohjelmistonsa 32-bittisiksi, kun ihmiset siirtyivät Windows 3.1x:stä Windows 95:een, jotta käyttöjärjestelmä voidaan päivittää uudempaan versioon ja samalla käyttää useimpia tai kaikkia asiakkaan 16-bittisiä ohjelmia.
Windows 9x -käyttöjärjestelmissä, jotka tehtiin DOS:n päälle, oli sekä 16- että 32-bittisiä järjestelmiä, joten jos 16-bittiset osat säilytettiin, käyttöjärjestelmä pystyi käyttämään 16-bittisiä ohjelmistoja ilman emulointia. NT-pohjaiset versiot toimivat hyvin eri tavalla, joten ne tarvitsevat kehittyneemmän ratkaisun. On olemassa kaksi päämenetelmää, joiden avulla 16-bittisiä ohjelmia voidaan ajaa 32-bittisissä Windows-versioissa (tietyin rajoituksin), joita kutsutaan thunkingiksi ja shimmingiksi.
Thunking
WOW "pilkkoo" 16-bittiset ohjeet 32-bittisiksi vastineiksi, jotta 16-bittiset osoittimet, muisti- ja osoiteavaruudet ovat mahdollisia.
16-bittiset ohjelmat suoritetaan yleensä yhdessä virtuaalisessa DOS-koneessa, ja ne jakavat muistin keskenään. Ne voidaan kuitenkin muuttaa toimimaan yksityisessä, erillisessä muistialueessa, jossa jokaisella 16-bittisellä prosessilla on oma prosessinsa. Tämä voi vähentää järjestelmän kaatumisia, kun ohjelmat eivät häiritse toisia, mutta se voi vähentää 16-bittisten prosessien välistä viestintää ja käyttää enemmän tietokoneen muistia.
WOW on osa Windows NT:n 32-bittisiä versioita. Windowsin 64-bittisissä versioissa (mukaan lukien Windows Server 2008 R2 ja uudemmat versiot, joissa on vain 64-bittisiä versioita) ei voi käyttää 16-bittisiä ohjelmistoja ilman erilaista emulointiohjelmistoa (esimerkiksi DOSBox).
WOWEXEC.EXE Windows NT:ssä mahdollistaa WoWin toiminnan. Windows-on-Windows voi WIN.COM-tiedoston avulla emuloida Windows 3.x (NTVDM:lle), Windows 95:n ja Windows 98:n ytimiä, jotka voivat ajaa 16-bittisiä DOS-käyttöjärjestelmällä varustettuja Windows-sovelluksia Windows NT:ssä.
Shimming
Ongelmat uudemmissa käyttöjärjestelmissä toimivien sovellusten kanssa, erityisesti pitkien tiedostonimien, useiden käyttäjätilien ja pienimpien oikeuksien kanssa, saattavat estää joidenkin sovellusten asianmukaisen toiminnan. Ne saattavat esimerkiksi virheellisesti luulla, että ne voivat kirjoittaa tiedostoja mihin tahansa tiedostojärjestelmän osaan, mutta NTFS-tiedostojen käyttöoikeudet ovat olemassa, eivätkä ne salli tätä monissa järjestelmäkansioissa. Kun Microsoft rakensi Windows 95:tä, sen oli varmistettava, että vanhat ohjelmat toimivat edelleen 8.3-tiedostonimillä, jotta vanhat sovellukset toimisivat edelleen oikein. Windows 95:stä lähtien käytössä oli ominaisuus, jossa sekä pitkä että lyhyt tiedostonimi säilytetään, joten vanhat sovellukset pystyivät edelleen käyttämään 8.3-tiedostonimiä.
Ohjelmat, jotka yrittävät käyttää laitteistoa suoraan, eivät pysty siihen. Vanhat ohjelmat eivät ehkä myöskään toimi, jos ne odottavat tiettyjä DOS:n ja Windows 9x:n järjestelmäkokoonpanotiedostoja, joita ei käytetä Windows NT -käyttöjärjestelmissä, joten tyhjiä versioita tiedostoista, kuten AUTOEXEC.BAT ja CONFIG.SYS, on olemassa, vaikka Windows NT ei käytä niitä.
Windows-käyttöjärjestelmän myöhempien versioiden sovellusyhteensopivuuskerroksessa on monia välipohjia, joiden avulla voidaan kaapata ja muuttaa vanhojen sovellusten API-kutsuja, jotka on tehty erilaisilla oletuksilla käyttöjärjestelmästä.