Virtual DOS Machine

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

Die Virtual DOS Machine (VDM) ist eine virtuelle Maschine, die unter der Microsoft Windows NT Betriebssystemfamilie zur Ausführung gelangt, um die Kompatibilität mit älterer Software sicherzustellen, die für das ehemals weit verbreitete Betriebssystem MS-DOS entwickelt wurde.

Funktionsweise[Bearbeiten]

Ausgehend von ntvdm.exe, simuliert eine Virtual DOS Machine weitgehend eine DOS-Umgebung, einige PC-Hardware Komponente (z. B. Prozessor in Real Mode, Intel 8253/8254 PIT, CGA/EGA/VGA-/PC-BIOS), sowie gängige DOS-era 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 waren. Mittels diese Emulationsschicht können die meisten DOS-Programme unter Windows ausgeführt werden. Für die Programme sieht es so aus, 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 den 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, aus der Windows-Welt mit Programmiertechniken 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 Prozessor-gestütztes Virtual 8086 Mode nur von Prozessoren in 32bit-Modus (nicht aber in 64bit-Modus) 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. Eines derartige Emulation wurde einst auch von Microsoft für RISC- und Alpha-Systeme unter Windows NT angeboten – bis Windows NT 3.51 für ein 80286, in Windows NT 4.0 dann ein i486.[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 3827370191

Siehe auch[Bearbeiten]