Virtuaalinen DOS-kone (Virtual DOS machine, VDM) antaa tietokoneiden käyttäjille mahdollisuuden suorittaa 16- tai 32-bittisiä DOS- ja 16-bittisiä Windows-ohjelmia 32-bittisillä tietokoneilla, kun laitteistoa käyttää jo toinen käyttöjärjestelmä. VDM on ohjelmistotason ratkaisu, joka tarjoaa vanhoille ohjelmille ympäristön, jossa ne uskovat ajavansa aitoa DOS- tai 16-bittistä Windows-ympäristöä, vaikka taustalla pyörisi nykyaikainen 32-bittinen Windows-käyttöjärjestelmä.

Miten VDM toimii

Windows-ympäristössä VDM:t toteutetaan yleensä osana käyttöjärjestelmän ydinrakennetta (esimerkiksi Windows NT -sarjassa NTVDM, NT Virtual DOS Machine). Perusperiaatteet:

  • VDM luo ohjelmistollisen "virtuaalisen koneen", jossa sovellukset saavat omat muistialueensa ja tuntevat ajavansa DOS:ia tai 16-bittistä Windowsia.
  • Yhteiskäyttö resurssien kanssa: VDM välittää sovelluksen I/O-kutsut, keskeytykset ja muistikyselyt isäntäkäyttöjärjestelmälle, jolloin laitteisiin (levyt, näytöt, näppäimistö) päästään käsiksi hallitusti.
  • Tekniset apukeinot: virtuaalinen 8086-tila (v86), suojattu tila ja DPMI/XMS/EMS -rajapinnat antavat vanhoille ohjelmille tarvitsemiaan palveluja ja muistinhallintaa.

Milloin VDM on kätevä

  • Liiketoimintasovellusten ja vanhojen yritysohjelmien ajamiseen, joita ei ole saatavilla uudelleen koodattuina.
  • Nopeatestaukseen ja korjaukseen, kun halutaan säilyttää vanha ohjelma toiminnassa samalla kun ympäristö päivitetään.
  • Kokeiluihin, jolloin ohjelman suoritusympäristön täydellinen emulointi ei ole välttämätöntä.

Rajoitukset ja huomioitavaa

  • 64-bittisissä Windows-versioissa (x64) NTVDM/VDM-tuki puuttuu, joten 16-bittisiä DOS- ja Windows-sovelluksia ei voi suorittaa suoraan. Tällöin tarvitaan vaihtoehtoja (ks. alla).
  • Laitteistotason pääsy on rajatumpaa: suorat laiteajurit, erikoisäänikortit tai vanhat grafiikkarit eivät välttämättä toimi oikein VDM:n kautta.
  • Yhteensopivuus ei ole täydellinen — erityisesti pelit ja multimediaohjelmat, jotka käyttävät matalaa laitteistokontrollia, voivat kaatua tai toimia virheellisesti.
  • Turvallisuus: vanhat 16-bittiset ohjelmat voivat sisältää haavoittuvuuksia. Ajettuna VDM:ssä ne voivat saada laajemman pääsyn järjestelmään kuin puhtaasti käyttäjätason sovellukset.

Vaihtoehdot ja käytännön ratkaisut

  • DOSBox — suosittu avoimen lähdekoodin DOS-emulaattori, joka on optimoitu erityisesti vanhoille peleille ja multimediaohjelmille; tarjoaa paremman laiteemuloinnin äänen ja grafiikan suhteen.
  • Virtuaalikoneet (esim. VirtualBox, VMware) — luovat kokonaan erillisen 32- tai 16-bittisen käyttöjärjestelmän vieraskoneeseen; toimivat hyvin yrityssovellusten kanssa, kun tarvitaan parempaa laitetuen tasoa.
  • Migraatio ja uudelleenkirjoitus — pitkällä aikavälillä usein paras ratkaisu on päivittää tai korvata vanhat ohjelmat nykyaikaisilla versioilla.

Käytännön vinkkejä

  • Jos käytät 32-bittistä Windowsia, tarkista, löytyykö käyttöjärjestelmästäsi NTVDM ja voisiko se mahdollisesti aktivoida erityisominaisuutena (joissain Windows-versioissa VDM/NTVDM löytyy osana "Legacy Components" tai vastaavaa valintaa).
  • Ennen vanhojen ohjelmien ajoa tee varmuuskopio tärkeistä tiedostoista ja käytä tarvittaessa eristettyä ympäristöä (esim. virtuaalikone), jotta vähennät riskejä.
  • Jos ohjelma tarvitsee ääntä, grafiikkaa tai suoraa laitteistokontrollia, testaa se etukäteen DOSBoxilla tai virtuaalikoneella — ne tarjoavat usein parempaa yhteensopivuutta kuin käyttöjärjestelmän oma VDM.

Yhteenvetona: VDM tarjoaa kätevän tavan pitää yllä vanhoja DOS- ja 16-bittisiä Windows-sovelluksia nykyaikaisessa 32-bittisessä ympäristössä, mutta sillä on selkeitä rajoituksia ja turvallisuusnäkökohtia. Usein paras lähestymistapa on arvioida sovelluksen vaatimukset ja valita sen perusteella joko NTVDM, DOSBox, virtuaalikone tai sovelluksen uudistaminen.