See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Virtual 8086 Mode – Wikipedia

Virtual 8086 Mode

aus Wikipedia, der freien Enzyklopädie

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 Flag-Register 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.

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.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -