Accueil🇫🇷Chercher

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 versions ultérieures des processeurs Intel de la famille x86.

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. Ses avantages par rapport au mode réel sont qu'il permet de garder la protection mémoire ainsi que le contrôle des processus par le système d'exploitation, et 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 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

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

Le mode virtuel 8086 est utilisĂ© notamment sous Windows/386 2.1x, Windows 3.x en mode 386, Windows 9x, Windows Me et OS/2 2.x. Il est utilisĂ© dans d'autres systèmes uniquement pour exĂ©cuter des programmes DOS et Windows 16 bits : sous Windows NT et tous ses successeurs par l'intermĂ©diaire de la machine virtuelle NTVDM, sous SCO UNIX au travers de Merge, et 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.

Toutefois, les processeurs x86-64 actuels ne peuvent pas basculer en mode 8086 virtuel lorsqu'ils fonctionnent en "Long Mode", c'est-Ă -dire dans le contexte d'un système d'exploitation 64 bits. C'est la raison pour laquelle il n'est plus possible d'exĂ©cuter de programmes MS-DOS dans les versions x64 de Windows, ni indirectement de programmes Windows 16 bits car ces programmes, bien qu'ils fonctionnaient en mode protĂ©gĂ© et seraient supportĂ©s par le processeur en "Long Mode", faisaient appel au DOS (donc au mode 8086 virtuel) pour un certain nombre d'opĂ©rations.

Références

Voir aussi

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.