Virtual DOS Machine
Die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (VDM) ist eine virtuelle Maschine, die in den 32-Bit-x86-Versionen der Windows-NT-Betriebssystem-Familie von Microsoft enthalten ist. Ihr Zweck besteht darin, die Kompatibilität mit älterer Software sicherzustellen, die für MS-DOS (und dazu kompatiblem DOS) entwickelt wurde.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Microsoft ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Funktionsweise[Bearbeiten]
Die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., initiiert durch Vorlage:Monospace – daher auch „NTVDM“, ist eine Emulationsschicht, die eine DOS-Umgebung und PC-Hardware-Komponenten für Programme simuliert: einen x86-Prozessor im Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., einen Intel 8253/8254 PIT, CGA/EGA/VGA- und PC-BIOS sowie die gängigen DOS-Speicheradressierungsschnittstellen EMS, XMS und DPMI. Für die DOS-Programme erscheint es damit so, als würden sie unter MS-DOS laufen, allerdings sind weit nicht alle Programme mit den Einschränkungen der NTVDM kompatibel – DOS-Programme wurden für die INT-21h-Schnittstelle von DOS und/oder den direkten Hardwarezugriff entwickelt und nicht für die Windows-Programmierschnittstelle Win32.
Unter Windows werden alle Ressourcen einzig vom Kernel verwaltet, sodass ein direkter Zugriff auf die Hardware ausgeschlossen werden muss. Um dies zu garantieren, fängt die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. Maschineninstruktionen ab, die unter Windows nicht zulässig sind (und zu Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. führen würden), aber in DOS ungeschützt wären. Diese Instruktionen werden entweder emuliert oder übersetzt (z. B. Vorlage:Monospace, Vorlage:Monospace/Vorlage:Monospace, Vorlage:Monospace/Vorlage:Monospace, Vorlage:Monospace) oder weiterhin unterbunden (z. B. der direkte Zugriff auf Datenträger). Anfragen an das Betriebssystem, wie das Lesen oder Schreiben von Dateien, werden von der VDM in entsprechende Windows-Funktionen übersetzt.
Linearer Framebuffer-Zugriff (LFB), der in VESA 2.0 eingeführt wurde, ist unter Windows in einer Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. mittels NTVDM nicht möglich, da dessen DPMI nur VESA-Modi ohne linearen Framebuffer-Zugriff unterstützen. Einige DOS-Anwendungen ermöglichen es aber, die höheren VESA-Modi per Kommandozeilenparameter nicht zu nutzen und auf VESA 1.2 zurückzufallen, das kein LFB, sondern Bank Switching nutzt, was von der NTVDM und dessen DPMI unterstützt wird.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Es ist möglich, mehrere Instanzen einer Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. gleichzeitig auf einem Windows-Betriebssystem auszuführen. Durch spezielle Wrapper-Funktionen können Windows-Anwendungen auf den Inhalt der VDM zugreifen.
Die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. macht sich den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (VM86) der x86-Architektur zunutze, um DOS-Programme auszuführen. Da jedoch der Virtual-86-Modus auf x86-Prozessoren im 64-Bit-Modus Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. nicht verfügbar ist, wird die NTVDM bei 64-Bit-Versionen von Windows nicht mehr mitgeliefert.<ref>[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] (PDF; 19,4 MB) In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. AMD, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., S. 11 ff., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2023-09-30 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> Die für Linux entwickelte virtuelle DOS-Umgebung DOSEMU teilt dieses Schicksal und emuliert den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. deswegen in Software. Alternativen zur NTVDM sind entweder Emulatoren, virtuelle Maschinen oder Interpreter.
Alternativen[Bearbeiten]
Das aus dem ReactOS-Projekt stammende Pendant unterstützt auch 64-Bit-Varianten von Windows, also die x64-Architektur, indem es (wie DOSEMU) den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. vollständig emuliert.<ref>Ziliang Guo: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden., GitHub-Projekt: dosEx64).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> Die ReactOS-NTVDM ist jedoch nicht in gleicher Weise in Windows integrierbar, stattdessen muss jedes DOS-Programm mit dem Kommando ntvdm.exe <program>.exe (analog zum start-Kommando, wobei Vorlage:Monospace durch das zu startende Programm zu ersetzen ist) ausgeführt werden. Derzeit funktioniert damit jedoch nur der Fenstertextmodus.
Eine für den Anwender weniger aufwendige Alternative zur NTVDM stellt ein Interpreter dar, wie z. B. DOSBox, weil die Installation eines kompatiblen DOS-Betriebssystems entfällt. Außerdem bietet DOSBox eine Vielzahl weiterer Möglichkeiten zur Steuerung der Umgebung, in der ein DOS-Programm abläuft, und benötigt zudem keine Treiber für emulierte Hardware. DOSBox emuliert auf Nicht-x86-Hardware einen Intel-Prozessor (i386, i486 oder Pentium), virtualisiert hingegen die meisten x86-Instruktionen, wenn es auf einem x86-Prozessor läuft. Komponenten wie die Soundkarte werden hingegen in beiden Fällen emuliert. Ein Treiber ist nicht notwendig, da dessen Funktionen von der virtuellen DOS-Umgebung ebenfalls bereitgestellt werden.
Eine weitere Alternative zur Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. sind vollständige Emulatoren für den IBM-kompatiblen PC, bei dem ein gesamter Computer inklusive Prozessor in Software nachgebildet wird. Darauf muss ein PC-Betriebssystem jedoch von Hand installiert werden. Zur Nutzung als VDM-Alternative muss der Benutzer daher ein PC-kompatibles DOS zur Verfügung haben – beispielsweise das unter der GPL stehende FreeDOS, das daher quelloffen und gratis ist. Zusätzlich zur Installation von DOS sind noch die einzelnen DOS-Treiber für die emulierte Hardware erforderlich, sowie deren im Vergleich mit anderen Betriebssystemen aufwändigere Konfiguration (siehe Vorlage:Monospace und Vorlage:Monospace), damit bestimmte Funktionen genutzt werden können, beispielsweise die Audio-Ausgabe. Aufgrund der plattformübergreifenden Verfügbarkeit von Emulatoren können DOS-Programme derart nicht nur auf Windows, sondern auf einer Vielzahl weiterer Betriebssysteme und Rechnerarchitekturen ausgeführt werden. Ein Beispiel dafür ist Bochs, aber auch virtuelle Maschinen (kurz: VM) wie QEMU, Virtual PC, VirtualBox und VMware können zum Virtualisieren oder Emulieren von DOS genutzt werden. Weil eine Emulation sehr aufwendig ist, läuft ein emuliertes DOS meist um einiges langsamer ab als das nativ gestartete Betriebssystem. Bei einer Virtualisierung werden Teile der emulierten Hardware ebenfalls nativ ausgeführt, was einen Geschwindigkeitsvorteil bringt, sodass auch Emulatoren auf der x86-Architektur oft u. a. den Prozessor virtualisieren, und somit nur Teile der Hardware emulieren.
Siehe auch[Bearbeiten]
Literatur[Bearbeiten]
- Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
Einzelnachweise[Bearbeiten]
<references />