Windows on Windows (WOW) – 16‑bittisten Windows‑ohjelmien yhteensopivuuskerros

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.

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ä.

 

Aiheeseen liittyvät sivut

 

AlegsaOnline.com - 2020 / 2025 - License CC3