stringtranslate.com

EMM386

EMM386 es el administrador de memoria expandida de MS-DOS de Microsoft , PC DOS de IBM , DR-DOS de Digital Research y ROM-DOS de Datalight [1] que se utiliza para crear memoria expandida utilizando memoria extendida en CPU Intel 80386. También hay un EMM386.EXE disponible en FreeDOS . [2]

Descripción general

EMM386.EXE puede mapear la memoria en bloques no utilizados en el área de memoria superior (UMA), lo que permite que los controladores de dispositivos y los programas residentes de terminación y permanencia se "carguen en alto", preservando la memoria convencional .

La técnica probablemente apareció por primera vez con el desarrollo de CEMM , incluido con el OEM MS-DOS de Compaq para el Compaq Deskpro 386 en 1986. La versión de Microsoft apareció por primera vez, integrada, con Windows/386 2.0 en 1987 y como EMM386.SYS independiente con MS-DOS 4.0 en 1988; la versión EMM386.EXE más flexible apareció en MS-DOS 5.0 en 1991.

El EMM386 utiliza el modo virtual 8086 del procesador . Esto obliga a que los accesos a la memoria que realizan las aplicaciones DOS pasen por la MMU del procesador (introducida en el 386), y las entradas de la tabla de páginas que utiliza la MMU están configuradas por el EMM386 para asignar ciertas regiones de la memoria superior a áreas de memoria extendida (obtenidas por el EMM386 a través del administrador de memoria extendida HIMEM.SYS ). Esta técnica habilita tanto la EMS (memoria expandida) como las UMB , que aparecen ante las aplicaciones DOS como memoria en el área superior, pero que en realidad están asignadas a ubicaciones de memoria física más allá de 1 MB.

Se apaga temporalmente durante una sesión de Windows en modo 386 mejorado , y el kernel del modo protegido de Windows asume su función.

Windows utiliza la API GEMMIS para hacerse cargo de la gestión de memoria de EMM386.EXE. La Especificación de importación global de EMM (GEMMIS) se respalda mediante un documento disponible para un número selecto de proveedores de administradores de memoria ("Especificación de importación de paginación de Windows/386"). [3] [4] [5] [6]

Sólo unos pocos administradores de memoria implementaron la API GEMMIS, algunos de los que la incluyen son: EMM386.EXE, Quarterdeck QEMM , Qualitas 386MAX , Helix Netroom [3] y el DOS integrado de DOSBox . Notablemente, faltan los administradores de memoria de FreeDOS.

Ninguno de los administradores de memoria de FreeDOS (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) implementa la API GEMMIS y Windows no se inicia cuando se ejecuta junto con JEMMxxx, ya que Windows no puede asumir la función de administración de memoria. Windows ME , Windows 98 , Windows 95 , Windows for Workgroups 3.1x y Windows 3.xx fallarán y JEMMxxx mostrará lo siguiente:

No se puede ejecutar Windows mientras el software en modo protegido actualmente instalado esté correr.
Salga del software en modo protegido y vuelva a intentarlo. Es posible que necesites reiniciar tu computadora.

Con JEMMxx, es posible ejecutar Windows 3.x y Windows para Trabajo en Grupo 3.1x con capacidades limitadas al obligar a Windows a utilizar el Modo Estándar; es decir, utilizando el Modo Protegido 80286, no el Modo Mejorado 80386. Se requieren tres condiciones:

  1. Limitar el total de XMS a 64 MB
  2. Se debe habilitar EMS, no se puede usar la opción NOEMS. Por ejemplo, JEMMEX X2MAX=65422
  3. Windows funciona únicamente en modo estándar, WIN /S o WIN /2

Tenga en cuenta que Windows en modo estándar tiene una funcionalidad limitada, carece de memoria virtual, omite la sección [386Enh] en SYSTEM.INI y no se cargan los controladores de dispositivo en [386Enh].

Historia

Véase también

Referencias

  1. ^ "Guía del usuario de Datalight ROM-DOS" (PDF) . www.datalight.com .
  2. ^ Platt, Robert; Spiegl, W. (2008) [2003]. «Comando: EMM386». Archivado desde el original el 23 de agosto de 2017. Consultado el 21 de octubre de 2015 .
  3. ^ ab Okazaki, Taku; Schulman, Andrew (1994-09-01). "La interfaz de importación global de EMM de Windows". Diario del Dr. Dobb . Rincón indocumentado (9). Archivado desde el original el 2017-08-23 . Consultado el 2015-10-21 .[1] Archivado el 29 de mayo de 2014 en archive.today [2] [3]
  4. ^ Brown, Ralf D .; Schulman, Andrew (julio de 1994). "QPI: La interfaz de programación QEMM-386". Diario del Dr. Dobb . Undocumented Corner. San Mateo, California: 123–131. Archivado desde el original el 23 de agosto de 2017. Consultado el 23 de agosto de 2017 .
  5. ^ Lespinasse, Michel. «Cómo expulsar a un administrador de memoria». Amiens, Francia: Walken / Impact Studios. Archivado desde el original el 4 de enero de 2017. Consultado el 21 de octubre de 2015 .
  6. ^ Paul, Matías R. (13 de agosto de 2002). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (en alemán). Grupo de noticias : de.comp.lang.assembler.x86. Archivado desde el original el 4 de septiembre de 2017 . Consultado el 3 de septiembre de 2017 .
  7. ^ "Q98768 - Solución de problemas de MS-DOS 6.x y EMM386.EXE".
  8. ^ "Solución de problemas e información técnica del EMM386 (78557)".
  9. ^ "EMM386 y versiones anteriores de HIMEM.SYS (74977)".