Article de reference

EMM386

EMM386 est le gestionnaire de mémoire étendue de MS-DOS de Microsoft , de PC-DOS d' IBM , de DR-DOS de Digital Research et de ROM-DOS de Datalight , utilisé pour créer de la mém...

de mémoire étendue de MS-DOS de Microsoft , de PC-DOS d' IBM , de DR-DOS de Digital Research et de ROM-DOS de Datalight , utilisé pour créer de la mémoire étendue sur les processeurs Intel 80386. Un fichier EMM386.EXE est également disponible sous FreeDOS .

zone de mémoire supérieure (UMA), permettant aux pilotes de périphériques et aux programmes résidents de se terminer d'être « chargés en haut », préservant ainsi la mémoire conventionnelle .

Cette technique est probablement apparue pour la première fois avec le développement de CEMM , inclus dans le MS-DOS OEM de Compaq pour le Compaq Deskpro 386 en 1986. La version de Microsoft est apparue pour la première fois intégrée à Windows/386 2.0 en 1987 et en tant que programme autonome EMM386.SYS avec MS-DOS 4.0 en 1988 ; la version plus flexible EMM386.EXE est apparue dans MS-DOS 5.0 en 1991.

EMM386 utilise le mode virtuel 8086 du processeur . Ceci force les accès mémoire effectués par les applications DOS à transiter par l' unité de gestion de la mémoire (MMU) du processeur (introduite sur l'architecture 386). Les entrées de la table des pages utilisées par la MMU sont configurées par EMM386 pour mapper certaines régions de la mémoire supérieure à des zones de mémoire étendue (obtenues par EMM386 via le gestionnaire de mémoire étendue HIMEM.SYS ). Cette technique a permis la mise en œuvre de la mémoire étendue (EMS) et des UMB , qui apparaissent aux applications DOS comme de la mémoire située dans la zone supérieure, mais sont en réalité mappées à des emplacements mémoire physiques au-delà de 1 Mo.

Il s'arrête temporairement pendant une session Windows en mode amélioré 386 , le noyau en mode protégé de Windows prenant alors le relais.

Windows utilise l'API GEMMIS pour prendre le relais de la gestion de la mémoire d'EMM386.EXE. La spécification d'importation EMM globale (GEMMIS) est prise en charge par un document disponible pour un nombre restreint de fournisseurs de gestionnaires de mémoire (« Spécification d'importation de pagination Windows/386 »).

Seuls quelques gestionnaires de mémoire implémentaient l'API GEMMIS ; parmi eux, on peut citer : EMM386.EXE, Quarterdeck QEMM , Qualitas 386MAX , Helix Netroom et le gestionnaire de mémoire intégré à DOSBox . Les gestionnaires de mémoire de FreeDOS, quant à eux, sont notamment absents.

Aucun des gestionnaires de mémoire FreeDOS (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) n'implémente l'API GEMMIS et Windows ne démarre pas lorsqu'il est exécuté conjointement avec JEMMxxx, car Windows ne parvient pas à prendre en charge la gestion de la mémoire. Windows ME , Windows 98 , Windows 95 , Windows for Workgroups 3.1x et Windows 3.xx rencontreront tous cette erreur avec JEMMxxx, affichant le message suivant :

Impossible d'exécuter Windows pendant que le logiciel en mode protégé actuellement installé est en cours d'exécution. en cours d'exécution.
Quittez le logiciel en mode protégé, puis réessayez. Vous devrez peut-être redémarrer votre ordinateur.

Avec JEMMxx, il est possible d'exécuter Windows 3.x et Windows pour groupes de travail 3.1x avec des fonctionnalités limitées en forçant Windows à utiliser le mode standard ; c'est-à-dire le mode protégé 80286 et non le mode amélioré 80386. Trois conditions sont requises :

  1. Limiter le total des XMS à 64 Mo
  2. EMS doit être activé ; l'option NOEMS ne peut pas être utilisée. Par exemple : JEMMEX X2MAX=65422
  3. Windows fonctionne uniquement en mode standard, WIN /S ou WIN /2

Notez que Windows en mode standard est limité en fonctionnalités, il manque de mémoire virtuelle, il ignore la section [386Enh] dans SYSTEM.INI et aucun pilote de périphérique dans [386Enh] n'est chargé.

Histoire

Historique des versions d'EMM386
Ensemble avecDateNom de fichierVersion
MS-DOS 4.01Novembre 1988EMM386.SYS4.00
Windows 3.0Mai 1990EMM386.SYS4.10.0419
MS-DOS 5.0Juin 1991EMM386.EXE4.20.06x
IBM PC DOS 5.0Juin 1991EMM386.EXE4.20.06x
IBM PC DOS 5.02Septembre 1992EMM386.EXE4,33
MS-DOS 5.00aNovembre 1992EMM386.EXE4,33
Windows 3.1Avril 1992EMM386.EXE4.44
Windows pour groupes de travail 3.1Octobre 1992EMM386.EXE4.44
MS-DOS 6.0Mars 1993EMM386.EXE4,45
IBM PC DOS 6.1Juin 1993EMM386.EXE4,45
MS-DOS 6.2Septembre 1993EMM386.EXE4,48
Windows 3.11Novembre 1993EMM386.EXE4,48
Windows pour groupes de travail 3.11Novembre 1993EMM386.EXE4,48
MS-DOS 6.21Mars 1994EMM386.EXE4,48
IBM PC DOS 6.3Avril 1994EMM386.EXE4,48
MS-DOS 6.22Juin 1994EMM386.EXE4,49
IBM PC DOS 7.0Avril 1995EMM386.EXE4,50
IBM PC DOS 2000Mai 1998EMM386.EXE4,50
Windows 95Août 1995EMM386.EXE4,95
Windows 98Juin 1998EMM386.EXE4,95