Virtual 8086 Mode

Virtual 8086 Mode

Der Betriebsmodus Virtual 8086 Mode wurde mit dem Intel 80386-Prozessor eingeführt. Da damals – im Jahre 1985 – sich Protected-Mode-Betriebssysteme noch nicht am Markt gegen das Real-Mode-Betriebssystem DOS durchgesetzt hatten, wurde mit dem Virtual 8086 Modus (kurz: VM86) die Möglichkeit geschaffen, innerhalb eines Protected-Mode-Betriebssystems Real-Mode-Programme (also vor allem DOS-Programme) auszuführen, ohne die Protected-Mode-Umgebung zu verlassen.

Bekanntestes Beispiel hierfür ist die so genannte DOS-Box, die ab Microsoft Windows 3.0 existierte.

Im Protected Mode (PM) können mehrere Programme (so genannte Tasks) quasi parallel ablaufen. Für jeden dieser Tasks kann über ein bestimmtes Bit im Statusregister festgelegt werden, ob er ein VM86-Task sein soll.

Im Virtual 8086 Modus verhält sich der Prozessor aus Programmsicht wie ein (sehr schneller) 8086. Jedem VM86-Task stehen maximal ein Mebibyte Arbeitsspeicher zur Verfügung. Dies muss – im Gegensatz zum Real Mode – jedoch nicht das erste Mebibyte im Speicher sein, da die Protected-Mode-Umgebung im Hintergrund automatisch eine Umsetzung der virtuellen Adressen in physische Adressen vornimmt.

Da ein VM86-Task in der Regel unprivilegiert läuft, hat er nur eingeschränkte Zugriffsrechte auf die Hardware oder bestimmte CPU-Register. (Dies ist notwendig, da sonst ein Programm in einer „DOS-Box“ das Protected-Mode-Betriebssystem und somit den Speicherschutz umgehen könnte.) Jeder Hardwarezugriff, den ein VM86-Task macht, wird daher vom Prozessor abgefangen und als Exception an das PM-Betriebssystem gemeldet, welches dann entweder das Verhalten der Hardware nachbilden (simulieren) muss, oder bei unerlaubten Zugriff den VM86-Task und das in ihm laufende Programm beendet. Da unter DOS solche direkten Hardwarezugriffe recht häufig vorkommen, stellt dies an das PM-Betriebssystem große Anforderungen, da eine Vielzahl an Hardwareverhalten nachgebildet werden muss. Da das Abfangen und Simulieren der Hardwarezugriffe außerdem meist langsamer ist als der direkte Hardwarezugriff, laufen viele DOS-Programme im VM86-Modus spürbar langsamer als im „echten“ Real Mode.

Der VM86-Modus wurde jedoch nicht nur für DOS-Boxen z.B. unter Windows, OS/2, Linux (über das Programm DosEmu) benutzt, sondern auch von DOS selbst. Der Speichertreiber EMM386.EXE von MS-DOS schaltete – vom Benutzer meist unbemerkt – in den Protected Mode, um Zugriff auf den Speicher jenseits der 1-Mebibyte-Grenze zu bekommen. Anschließend startete er einen VM86-Task, in den das bereits laufende DOS dann verlegt wurde. EMM386.EXE benutzte die ebenfalls ab dem 80386er verfügbare Paging-Technik, um den DOS-Programmen mehr Speicher zur Verfügung zu stellen, indem es Speicher von jenseits der 1-Mebibyte-Grenze in den DOS-Adressraum einblendete. (so genannte Upper Memory Blocks UMB und Expanded Memory EMS) Solche Speichermanager existierten auch für die anderen MS-DOS-kompatiblen Betriebssysteme. Sie hießen dort anders, aber ihre prinzipielle Arbeitsweise war identisch.

Beim 486er und Pentium kamen weitere Features für den VM86-Modus hinzu, die es erlauben, dass bestimmte Interrupt-Serviceroutinen komplett im VM86-Modus abgearbeitet werden können, ohne dass aufwändige Task-Wechsel in das Protected-Mode-Betriebssystem erfolgen müssen. Dies ermöglicht eine Ausführungsgeschwindigkeit, die dem echten Real Mode sehr nahe kommt, vor allem, da unter DOS Software-Interrupts sehr häufig sind, da sie als Aufruf ins Betriebssystem und von BIOS-Routinen benutzt werden.

Mit der schwindenden Bedeutung des Betriebssystems DOS ist auch der VM86-Modus heutzutage eher als historisch anzusehen und wird daher kaum noch verwendet, auch wenn er in jeder aktuellen x86-kompatiblen CPU noch verfügbar ist. Im "Compatibility Mode" der AMD64-Architektur wird der Virtual86 Mode nicht mehr unterstützt. Allerdings existieren Software-Emulatoren wie DOSBox, die eine 8086-kompatible CPU incl. PC-typischer Hardwareumgebung komplett in Software emulieren können.


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Virtual 8086 Mode —   (Virtual Mode), eine Betriebsart bei den Mikroprozessoren 80386 und den darauf folgenden Modellen, bei der mehrere Programme parallel laufen, jedes auf einem eigenen virtuellen 8086 Prozessor im Real Mode. Ein solcher virtueller Prozessor… …   Universal-Lexikon

  • Virtual 8086 mode — In the 80386 microprocessor and later, Virtual 8086 mode, also called virtual real mode or VM86, allows the execution of real mode applications that are incapable of running directly in protected mode.VM86 mode uses a segmentation scheme… …   Wikipedia

  • Virtual Real Mode — Virtual Real Mode,   Synonym für Virtual 8086 Mode …   Universal-Lexikon

  • Virtual DOS machine — (VDM) is Microsoft s technology that allows running legacy DOS and 16 bit Windows programs on Intel 80386 or higher computers when there is already another operating system running and controlling the hardware. Contents 1 Overview 2 NTVDM 3… …   Wikipedia

  • Mode Virtuel 8086 — Le mode virtuel 8086 (en anglais « Virtual 8086 mode ») est un mode d exécution particulier pour les processeurs de la famille x86. Ce mode fut créé avec l apparition du processeur Intel 80386 en 1985 et est disponible sur toutes les… …   Wikipédia en Français

  • Virtual Mode — Virtual Mode,   Virtual 8086 Mode …   Universal-Lexikon

  • Mode virtuel 8086 — Le mode virtuel 8086 en anglais : « Virtual 8086 mode » est un mode d exécution particulier pour les processeurs de la famille x86. Ce mode fut créé avec l apparition du processeur Intel 80386 en 1985 et est disponible sur toutes… …   Wikipédia en Français

  • Virtual Control Program Interface — In computing, the Virtual Control Program Interface (VCPI) is a specification published in 1989 by Phar Lap Software that allows a DOS program to run in protected mode, granting access to many features of the processor not available in real mode …   Wikipedia

  • Virtual memory — This article is about the computational technique. For the TBN game show, see Virtual Memory (game show). Virtual memory combines active RAM and inactive memory in disk form into a large range of contiguous addresses. In computing, virtual memory …   Wikipedia

  • Virtual Machine — virtuelle Maschine in VirtualBox Eine virtuelle Maschine, kurz VM, ist ein virtueller Computer. Auf einem realen Computer können gleichzeitig mehrere virtuelle Maschinen betrieben werden. Virtuelle Maschinen werden als Betriebssystem ausgeführt,… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”