Virtual DOS Machine

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die Virtual DOS Machine (VDM) ist eine virtuelle Maschine, die in einigen Betriebssystemen der Microsoft-Windows-NT-Familie enthalten ist, um die Kompatibilität mit älterer, für MS-DOS entwickelter Software sicherzustellen.

Funktionsweise[Bearbeiten]

Ausgehend von ntvdm.exe, simuliert eine Virtual DOS Machine weitgehend eine DOS-Umgebung, einige PC-Hardware Komponenten (z. B. Prozessor in Real Mode, Intel 8253/8254 PIT, CGA/EGA/VGA-/PC-BIOS), sowie gängige DOS-Speicheraddressierungsschnittstellen (EMS/XMS/DPMI) für Programme, die nicht für den Win32-API ausgelegt wurden, sondern für die INT-21h-Schnittstelle bzw. direkten Hardwarezugriff programmiert sind. Über diese Emulationsschicht können die meisten DOS-Programme unter Windows ausgeführt werden. Für die Programme scheint es, als ob sie sich auf einer DOS-Maschine befänden, sie haben jedoch keinen direkten Kontakt zu den Ressourcen des Windows-Betriebssystems oder zu der Hardware. Anforderungen an das Betriebssystem (z. B. Dateien lesen oder schreiben) werden durch die Virtual DOS Machine in die entsprechenden Windows-Funktionen übersetzt. Maschineninstruktionen die unter Windows nicht zulässig sind (diese führen zu Exceptions), aber in DOS ungeschützt wären, werden abgefangen und dann entweder emuliert oder übersetzt (z. B. die int, in/out, cli/sti, hlt Instruktionen), oder weiterhin unterbunden (z. B. den direkten Zugriff auf Datenträgern). Es können mehrere Instanzen einer Virtual DOS Machine ausgeführt werden. Somit können auf einem Windows-Betriebssystem mehrere virtuelle DOS Maschinen gleichzeitig laufen. Über spezielle Wrapper-Funktionen ist es möglich, von Windows aus auf den Inhalt der VDM zurückzugreifen.

Die Virtual DOS Machine macht sich den Virtual 8086 Mode der x86-Prozessoren zunutze, um DOS-Programme auszuführen. Weil dieser Modus nur von 32-Bit-Prozessoren unterstützt wird, wird ntvdm.exe nicht mehr mit 64bit-Versionen von Windows ausgeliefert. Die Instruktionen eines x86 Prozessors in Real Mode auszuführen erfordert nunmehr Software-Interpreter wie sie z. B. von DOSBox oder Bochs angeboten werden.[1]

Einzelnachweise und Quellen[Bearbeiten]

  1. INFO: How Windows handles floating-point calculations

Literatur[Bearbeiten]

  • Andrew S. Tanenbaum, Moderne Betriebssysteme, Pearson Studium Verlag 2003, ISBN 3-8273-7019-1

Siehe auch[Bearbeiten]