EMM386 es el gestor 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 mediante memoria extendida en las CPU Intel 80386. También existe un archivo EMM386.EXE disponible en FreeDOS [ 2 ] .
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 dispositivos y los programas que terminan y permanecen residentes se "carguen en la parte superior", preservando la memoria convencional .
Es probable que esta técnica apareciera por primera vez con el desarrollo de CEMM , incluido en el MS-DOS OEM de Compaq para el Compaq Deskpro 386 en 1986. La versión de Microsoft apareció por primera vez, integrada, en Windows/386 2.0 en 1987 y como EMM386.SYS independiente con MS-DOS 4.0 en 1988; la versión más flexible EMM386.EXE apareció en MS-DOS 5.0 en 1991.
EMM386 utiliza el modo virtual 8086 del procesador . Esto obliga a que los accesos a memoria realizados por las aplicaciones de 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 asignar ciertas regiones de la memoria superior a áreas de memoria extendida (obtenidas por EMM386 a través del administrador de memoria extendida HIMEM.SYS ). Esta técnica habilitaba tanto la EMS (memoria expandida) como las UMB , que para las aplicaciones de DOS aparecen 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 mejorado 386 , y el núcleo del modo protegido de Windows asume su función.
Windows utiliza la API GEMMIS para asumir la administración de memoria de EMM386.EXE. La especificación de importación global de EMM (GEMMIS) es compatible 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 ]
Solo unos pocos gestores 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 . Cabe destacar la ausencia de los gestores 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á:
No se puede ejecutar Windows mientras el software de modo protegido actualmente instalado esté correr.
Cierra el software en modo protegido y vuelve a intentarlo. Es posible que necesite reiniciar su computadora.
Con JEMMxx, es posible ejecutar Windows 3.x y Windows para grupos de trabajo 3.1x con capacidades limitadas forzando a Windows a usar el modo estándar; es decir, usando el modo protegido 80286, no el modo mejorado 80386. Se requieren tres condiciones:
- Limitar el total de XMS a 64 MB.
- El 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 no se cargan los controladores de dispositivos en [386Enh].
Historia
Véase también
Referencias
- ↑ "Guía del usuario de Datalight ROM-DOS" (PDF) . www.datalight.com .
- ↑ Platt, Robert; Spiegl, W. (2008) [2003]. "Comando: EMM386" . Archivado del original el 23 de agosto de 2017. Recuperado el 21 de octubre de 2015 .
- 1 2 Okazaki, Taku; Schulman, Andrew (1994-09-01). "La interfaz de importación global de EMM de Windows" . Dr. Dobb's Journal . Rincón no documentado (9). Archivado del original el 23-08-2017 . Recuperado el 21-10-2015 .Enlace obsoleto archivado el 29/05/2014 en archive.today
- ↑ Brown, Ralf D.; Schulman, Andrew (julio de 1994). "QPI: La interfaz de programación QEMM-386" . Dr. Dobb's Journal . Undocumented Corner. San Mateo, California: 123–131 . Archivado del original el 23 de agosto de 2017. Recuperado el 23 de agosto de 2017 .
- ↑ Lespinasse, Michel. "Cómo expulsar a un administrador de memoria" . Amiens, Francia: Walken / Impact Studios. Archivado del original el 4 de enero de 2017. Consultado el 21 de octubre de 2015 .
- ^ Pablo, 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 . Consultado el 3 de septiembre de 2017 .
{{cite newsgroup}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "Q98768 - Solución de problemas de MS-DOS 6.x y EMM386.EXE" .
- ↑ "Solución de problemas e información técnica del EMM386 (78557)" .
- ↑ "EMM386 y versiones tempranas de HIMEM.SYS (74977)" .
- Comandos externos de DOS
- Gestión de memoria de DOS
- Administradores de memoria ampliados
- stubs de DOS