EMM386 es la memoria expandida gerente de Microsoft 's de MS-DOS , IBM ' s PC DOS , Digital Research 's DR-DOS , y Datalight ' s ROM-DOS [1] que se utiliza para crear la memoria expandida utilizando la memoria extendida en Intel 80386 CPU. También hay un EMM386.EXE disponible en FreeDOS . [2]
Desarrollador (es) | Microsoft , IBM , DR , Datalight , el equipo de FreeDOS |
---|---|
Versión inicial | 1988, hace 32 a 33 años |
Sistema operativo | MS-DOS , PC DOS , DR DOS , ROM-DOS , FreeDOS |
Plataforma | Intel 80386 |
Tipo | Administrador de memoria expandida , Command |
Descripción general
EMM386.EXE puede asignar memoria a bloques no utilizados en el área de memoria superior (UMA), lo que permite que los controladores de dispositivo y TSR se "carguen alto", conservando la memoria convencional .
La técnica probablemente apareció por primera vez con el desarrollo de CEMM , incluido con Compaq MS-DOS 3.31 en 1987. La versión de Microsoft apareció por primera vez, incorporada, con Windows / 386 2.1 en 1988 y como EMM386.SYS independiente con MS-DOS 4.01 en 1989 ; la versión EMM386.EXE más flexible apareció en MS-DOS 5.0 en 1991.
Al igual que los otros administradores de memoria expandida, EMM386 usa el modo 8086 virtual del procesador . Esto obliga a que los accesos a la memoria realizados por las aplicaciones DOS pasen por la MMU del procesador (introducida en el 386), y las entradas de la tabla de páginas utilizadas por la MMU son configuradas por EMM386 para mapear ciertas regiones en la memoria superior a áreas de memoria extendida (obtenidas por EMM386 a través del administrador de memoria extendida HIMEM.SYS ). Esta técnica habilitó tanto EMS (memoria expandida) como UMB , los cuales para las aplicaciones de DOS parecen ser memoria en el área superior, pero de hecho están asignados a ubicaciones de memoria física más allá de 1 MB.
Se apaga temporalmente durante una sesión de Windows en el modo 386 mejorado , con el kernel en modo protegido de Windows asumiendo su función.
Windows utiliza la API de GEMMIS para hacerse cargo de la gestión de la memoria de EMM386.EXE. La Especificación de importación de EMM global (GEMMIS) se admite a través de 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]
Solo 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 DOSBox incorporado en DOS . En particular, faltan los administradores de memoria de FreeDOS.
Todos los administradores de memoria FreeDOS (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) no implementan 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 para trabajo en grupo de 3.1x , y ventanas 3 .xx, todo fallará con JEMMxxx que muestra:
No se puede ejecutar Windows mientras el software en modo protegido instalado actualmente está corriendo.
Salga del software en modo protegido y vuelva a intentarlo. Es posible que deba reiniciar su computadora.
Con JEMMxx, es posible ejecutar Windows 3.xy Windows para trabajo en grupo 3.1x con capacidades limitadas obligando a Windows a usar el modo estándar; es decir, utilizando el modo protegido 80286, no el modo mejorado 80386. Se requieren tres condiciones:
- limitar el XMS total a 64 MB
- EMS debe estar habilitado, no se puede usar la opción NOEMS. Por ejemplo, JEMMEX X2MAX = 65422
- Windows funciona solo 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 los controladores de dispositivo en [386Enh] no se cargan.
Ver también
- Área de memoria superior (UMA)
- Memoria extendida (XMS)
- Memoria expandida (EMS)
- Lista de comandos de DOS
Referencias
- ^ "Guía del usuario de Datalight ROM-DOS" (PDF) . www.datalight.com .
- ^ 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 .
- ^ a b Okazaki, Taku; Schulman, Andrew (1 de septiembre de 1994). "La interfaz de importación de Windows Global EMM" . Diario del Dr. Dobb . Rincón indocumentado (9). Archivado desde el original el 23 de agosto de 2017 . Consultado el 21 de octubre de 2015 . [1] Archivado el 29 de mayo de 2014 en archive.today [2] [3]
- ^ Brown, Ralf D .; Schulman, Andrew (julio de 1994). "QPI: La interfaz de programación QEMM-386" . Diario del Dr. Dobb . Rincón indocumentado. San Mateo, California: 123-131. Archivado desde el original el 23 de agosto de 2017 . Consultado el 23 de agosto de 2017 .
- ^ Lespinasse, Michel. "Cómo sacar 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 .
- ^ Paul, Matthias 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 .