Hopp til innhold

Virtuell 8086 modus

Fra Wikipedia, den frie encyklopedi

Virtuell 8086 modus, også kalt VM86 og virtuell reell modus, er en adressemodus for 32-bit mikroprosessorer i X86-arkitekturen som debuterte med Intel 80386 den 17. oktober 1985. VM86 gjør det mulig for programmer som er laget for reell modus under MS-DOS og beslektede operativsystemer, å kjøre direkte i beskyttet modus.

Virtuell 8086 modus benytter en segmentert minnemodell identisk med reell modus, og 21-bit adressering som gjør det mulig å implementere virtuell hukommelse gjennom paging.

Virtuell 8086 modus finnes ikke i X86-64 lang modus, og er derfor ikke til stede i 64-bit x86-prosessorer som kjører i 64-bit beskyttet modus. VM86 er likevel fortsatt til stede når X86-64-prosessorer kjører i 32-bit beskyttet modus. 64-bit utgaver av Microsoft Windows (Windows Server 2003, Windows Vista og Windows Server 2008) har derfor ingen DOS boks og kan heller ikke kjøre 16-bit Windows programmer.

Bruk av Virtuell 8086 modus

[rediger | rediger kilde]

I Windows/386 2.1, Windows 3.0, Windows 3.1x, Windows 95, Windows 98, Windows ME og Windows NT 3.1 ble virtuell 8086 modus benyttet til å kjøre programmer for MS-DOS og beslektede systemer i virtuelle DOS maskiner. Det samme var tilfelle for OS/2 2.x. I SCO UNIX ble VM86 benyttet i programmet Merge, og i GNU/Linux er den tatt i bruk av abstraksjonslaget DOSEMU.

Såkalte «DOS-programmer» for DOS-utvidere, som kjører i 286 og 386 beskyttet modus, blir ikke utført i Virtuell 8086-modus. Slike programmer kjører i ordinær brukermodus.

Adressering

[rediger | rediger kilde]

Utfordringen med å kjøre 8086 kode for reell modus i beskyttet modus, er at adresseringen av RAM er helt forskjellig i beskyttet modus og reell modus. I Virtuell 8086 modus er den segmenterte minnemodellen bevart av kompatibilitetshensyn. Samtidig er imidlertid mekanismen for paging aktiv i den flate minnemodellen til det underliggende operativsystemet. Beskyttelse av minnet og isolering av adressemodus er derfor nødvendig.

Ved avbrudd i maskinvaren, programvaren og gjennom instruksjonen iret, blir VM86 modus slått av og prosessoren vender tilbake til full beskyttet modus for å håndtere avbruddet. Før håndteringen av avbruddet blir DS, ES, FS, og GS registrene lagt på stakken og nullstilte.

Utvidet Virtuel 8086 modus i GNU/Linux

[rediger | rediger kilde]

Støtte for Utvidet Virtuel 8086 modus i GNU/Linux, oppnås at «vme»-flagget i seksjonen «flags:» settes i filen /proc/cpuinfo. Dette kan også skje ved at andre bit i assembler-instruksjonen CPUID gir EDX-registeret verdien 0x2.

Autoritetsdata
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy