Mode virtuel 8086

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 versions supérieures de ce processeur.

Le mode virtuel 8086, aussi appelé Virtual 8086 ou V86, permet au processeur de se comporter comme un processeur 8086 ou 8088 pour lesquels n'existait que le mode réel. Son avantage par rapport au mode réel est qu'il est très facile et très rapide de passer de ce mode au mode protégé et inversement.

Ce mode d'exécution fut créé pour faire fonctionner des applications DOS en même temps que des applications Windows 32 bits qui nécessitent le mode protégé. Les programmes DOS (qu'ils soient 16 ou 32 bits) compatibles DPMI en anglais : DOS Protected Mode Interface fonctionnent en mode protégé et non au travers du mode virtuel 8086.

En pratique[modifier | modifier le code]

Ce mode utilise une segmentation similaire avec celle du mode réel, avec des adresses mémoire sur 20 bits, mais sujettes à la pagination du mode protégé.

Les interruptions de type IRQ ou exceptions sont gérées comme si le processeur était en mode protégé (grâce à l'IDT qui n'a pas besoin de se situer dans la petite zone de mémoire accessible dans ce mode). Dans ce cas, les registres DS, ES, FS et GS sont placées sur la pile en plus des registres normalement placés en cas d'interruption.

Les instructions INT, IRET, IN, OUT, PUSHF, POPF, CLI et STI sont considérés comme sensibles et déclenchent une exception GPF traitée par une partie du système d'exploitation appelée gestionnaire du mode virtuel. Ce gestionnaire peut soit arrêter l'exécution du programme, soit analyser l'instruction fautive, simuler son exécution, puis reprendre l'exécution normale du programme en mode virtuel.

Utilisation[modifier | modifier le code]

Le mode virtuel 8086 est utilisé notamment sous Windows 2.0, Windows 3.x, Windows 9x, Windows Me et OS/2 2.x. Il fut utilisé plus tard sous des machines virtuelles DOS, sous SCO UNIX au travers de Merge sous Linux grâce à, par exemple, DosEmu. Des machines virtuelles avancées comme VMware permettent l'utilisation de ce mode.

Il peut également être utilisé par les systèmes d'exploitation actuels pour utiliser des fonctions du BIOS, notamment celles du BIOS vidéo en l'absence d'un driver pour la carte graphique.

Références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]