Virtuell 8086-modus

I 80386 og senere prosessorer tillot Virtual 8086-modus, også kalt virtuell ekte modus, eller VM86, kjøring av programmer i ekte modus som ikke kan kjøres i beskyttet modus, under kontroll av et beskyttet modus operativsystem . Det er en maskinvarevirtualiseringsteknikk for 80386-prosessoren som lar deg emulere en eller flere virtuelle 8086-prosessorer, det er en konsekvens av problemene forårsaket av den beskyttede modusen til 80286-prosessoren, som ikke var i stand til å kjøre applikasjoner i ekte modus riktig og samtidig.

VM86 bruker et segmenteringsskjema som er identisk med det for ekte modus (av kompatibilitetsgrunner), og bruker den samme 20-biters adresseringen, men underlagt minnesøkingsmekanismen til beskyttet modus.

Oversikt

VM86 er en modus som brukes av prosesser som kjører i beskyttet modus. Som et resultat kan prosessoren bytte mellom VM86- og ikke-VM86-prosesser, noe som muliggjør multitasking av DOS-applikasjoner.

For å bruke VM86 setter et operativsystem en skjerm i VM86-modus, som er et program som administrerer applikasjonen i ekte modus og emulerer eller filtrerer tilgang til maskinvare- og programvareressurser. Monitoren må kjøres på rettighetsnivå 0 og i sikker modus. Bare 8086-applikasjonen kjører i VM86-modus og på rettighetsnivå 3. Når den virkelige modusapplikasjonen prøver å utføre operasjoner som å få tilgang til visse I/O-porter for å bruke periferiutstyr for maskinvare, eller få tilgang til visse minneområder, avskjærer CPU-en disse forespørslene og påkaller monitor, som undersøker hva applikasjonen gjør og kan fungere som en mellommann med maskinvaren, emulere funksjonen som applikasjonen faktisk ønsker å bruke, eller avslutter applikasjonen hvis den er ute etter å gjøre noe som ikke er tillatt.

Bruk

Den brukes til å kjøre noen DOS-programmer i FlexOS 386 (siden 1987), Concurrent DOS 386 (siden 1987), Windows / 386 2.10 (siden 1987), DESQview 386 (siden 1988), Windows 3.x (siden 1990), Multiuser DOS (siden 1991), Windows for Workgroups 3.1x (siden 1992), OS / 2 2.x (siden 1992), 4690 OS (siden 1993), REAL / 32 (siden 1995), i 386 forbedret modus på Windows 95, 98 , 98 SE og ME gjennom virtuelle DOS-maskiner, på SCO UNIX gjennom Merge, og på Linux gjennom DOSEMU.

Minneadressering

Det vanligste problemet med å kjøre 8086-kode i beskyttet modus er minneadressering som er helt forskjellig mellom beskyttet modus og ekte modus . Når du arbeider i VM86-modus, fungerer segmenteringen som i den virkelige modusen, men med aktivering av personsøkingsmekanismen , og er gjennomsiktig for koden i ekte modus.

Avbryt

Når et avbrudd utføres (både maskinvare, programvare og instruksjoner), deaktiverer prosessoren VM86-koden og går tilbake til arbeid i beskyttet modus for å håndtere avbruddet.

Relaterte elementer