Quarterdeck Expanded Memory Manager ( QEMM ) es un administrador de memoria producido por Quarterdeck Office Systems a fines de la década de 1980 y fines de la década de 1990. Fue el administrador de memoria de terceros más popular para MS-DOS y otros sistemas operativos DOS .
QEMM proporciona acceso al área de memoria superior (UMA) y a la memoria a través de la especificación de memoria expandida (EMS), la especificación de memoria extendida (XMS), la interfaz de programa de control virtual (VCPI) y la interfaz de modo protegido DOS (DPMI).
Reubica el núcleo DOS, el intérprete COMMAND.COM y los recursos DOS (por ejemplo, buffers, manejadores de archivos, pilas, lastdrive). Es compatible con DOS 3.2 o superior.
Permite que los controladores se carguen antes de cargar QEMM y aún así permite el uso de la función Stealth de QEMM.
Era una utilidad de compresión de memoria virtual para Windows 3.1 , Windows para trabajo en grupo y Windows 95. MagnaRAM está incluido con QEMM 97.
MagnaRAM también se lanzó como una utilidad independiente. [2]
MagnaRAM funcionaba reemplazando una parte del sistema de memoria virtual de Windows . MagnaRAM se insertaba en la cadena de programas de Windows que determinaba qué partes de la RAM se moverían al disco duro. En lugar de escribir directamente en el disco duro, la información que se iba a escribir iría al propio búfer de MagnaRAM, ya que era un proceso más rápido. Durante la inactividad de la CPU, MagnaRAM comprimiría la información en su propio búfer de RAM. Cuando el búfer de RAM se llena, se intercambia con el disco duro, lo que requiere menos tiempo y menos espacio. [3]
Manifiesto (MFT) es una utilidad de información de hardware que muestra información sobre el sistema del usuario.
Similar a MEMMAKER , es una utilidad que calcula y permite al usuario elegir los órdenes óptimos de carga de controladores y TSR. Sin embargo, OPTIMIZE permite obtener una vista previa de los ajustes sin tener que reiniciar. Se incluye con QEMM y DESQview.
QDPMI es un controlador de servidor DPMI 0.9, creado por Dan Spear. Requiere una CPU 386 y QEMM386.
Es una versión del controlador QEMM para los modelos IBM PS/2 50 y 60 .
La versión 4.03 admite placas con opción de expansión de memoria IBM con entre 2 y 8 MB de memoria.
Puede reubicar la memoria asignada para el conjunto de caracteres CGA lejos de UMA.
A partir de la versión 8 de QEMM, se permite reubicar el contenido de la ROM en UMA para proporcionar más memoria a los TSR. Se proporciona compatibilidad adicional con Stealth Windows con VxD.
Stealth D*Space permite que DoubleSpace o DriveSpace se carguen en niveles altos.
Permite que las computadoras portátiles Toshiba funcionen con el administrador EMS de QEMM.
LOADHI.SYS carga hasta 1 controlador de dispositivo a la vez en QEMM 4.23, 2 en QEMM 5, 32 en QEMM 6.
El ajuste del umbral de compresión máximo es del 100 % para todas las versiones de MagnaRAM 2.00-2.02, excepto para MagnaRAM 2.00 incluido con QEMM 8.00, que tiene un ajuste máximo del 80 %.
De manera predeterminada, QEMM 7.04 y versiones posteriores proporcionan hasta un total de 64 MB de RAM compartida entre la memoria XMS, EMS y VCPI, a menos que se utilice el parámetro USERAM=. Por ejemplo, para permitir el acceso a hasta 256 MB de EMS (o 256 MB de XMS), especifique: QEMM386.SYS USERAM=1M-256M [4]
Para QEMM 7.04 y versiones posteriores, la memoria RAM direccionable máxima es de 256 MB, compartida entre la memoria XMS, EMS y VCPI. Inicialmente, XMS asigna los 256 MB completos y los comparte con EMS y VCPI según sea necesario, es decir, a medida que EMS y VCPI solicitan bloques de memoria, la memoria libre de XMS se reduce en la misma cantidad. [5]
Las versiones hasta QEMM 6.01 pueden procesar archivos por lotes de hasta 9 KB, y 20 KB en QEMM 6.02.
El límite de líneas del archivo por lotes es 512 para las versiones de QEMM hasta 6.02.
Stealth D*Space no es compatible con Windows 95 o versiones posteriores de DriveSpace.
Originalmente, el producto se llamaba QEMM-386 (requería un Intel 80386 y DOS 3.30 ), y se lanzó con un producto complementario llamado QRAM (para usar en Intel 80286 y 8088). El sufijo 386 se eliminó a partir de la versión 7.0 de QEMM en 1993, cuando Intel lanzó el Intel Pentium el 22 de marzo de 1993. La versión final se renombró como QEMM 97 para seguir la nueva tendencia de marca de Microsoft de usar el año de lanzamiento en lugar de los números de versión, específicamente, Windows 95 y Windows 95 OSR2.
Se eliminó el sufijo 386 del nombre desde que Intel introdujo el procesador Pentium.
QEMM ofrece hasta 635 K de memoria convencional libre (RAM inferior a 640 K), mucho mejor que MS-DOS EMM386 , FreeDOS JEMM386, UMBPCI y muchos otros programas de gestión de memoria. La RAM máxima de QEMM es 635 K de memoria convencional libre con hasta 256 MB de XMS/256 MB de EMS compartidos.
MS-DOS 6.22 ofrece 619K de memoria convencional libre y hasta 64MB de RAM compartida XMS/32MB de EMS. Suponiendo que MS-DOS 6.22 no haya sufrido modificaciones, sin utilidades de terceros, es decir, JEMM, UMBPCI, etc., QEMM aumenta la RAM convencional libre disponible a 635K con 256MB de XMS/256MB de EMS compartidos.
Al utilizar Windows 3.11 o Windows For Workgroups 3.11, QEMM proporciona memoria convencional libre adicional para el indicador de DOS que se ejecuta en Windows. QEMM es muy adecuado para Windows 3.x, ya que lo soporta desde QEMM v5.x en 1990. Como resultado, QEMM 8.03 o QEMM 97 se integran muy bien con Windows 3.11/WFW 3.11.
QEMM aumenta la RAM convencional libre disponible para MS-DOS 7.10 y también para el indicador de DOS en Windows 95 OSR2/Windows 98 SE. Sin embargo, la RAM máxima de QEMM es una XMS compartida de 256 MB/EMS de 256 MB, que es menos de lo que admiten DOS 7.10 y Windows 95/98 sin QEMM. MS-DOS 7.10 proporciona 624K de memoria convencional libre y hasta 1 GB de XMS/32 MB de EMS; suponiendo que MS-DOS no se haya modificado, utilizando HIMEM.SYS y EMM386.EXE sin ninguna utilidad de terceros. Por lo tanto, QEMM es compatible con MS-DOS 7.10 y Windows 9x y proporciona un poco más de RAM convencional libre, pero reduce la RAM máxima a 256 MB de XMS/256 MB de EMS.
La memoria EMS normalmente utiliza 64 KB de UMB como Page Frame, lo que reduce el UMB total disponible para DOS. Por eso, algunos recomiendan desactivar EMS, utilizando el interruptor NOEMS, para aumentar el UMB total libre en 64 KB. QEMM admite el interruptor NOEMS, sin embargo, es mucho mejor proporcionar EMS que guardar el Page Frame de 64 K.
QEMM aprovecha la memoria EMS y normalmente creará más RAM libre en el espacio de dirección inferior de 1 M que los 64 KB necesarios para EMS. QEMM StealthROM, SqueezeFrame y Stealth D*Space requieren que EMS funcione asignando ROM y buffers de datos a EMS, liberando así más UMB. La nota técnica FRAME.TEC
de QEMM afirma: "Por lo tanto, cualquier consejo para eliminar el marco de página es una tontería. Recuerde que el marco de página es un espacio de direcciones de 64 K que puede utilizar cualquier programa, en cualquier momento, para acceder de manera efectiva a tanta memoria como desee. Algunos ven el marco de página como un espacio de direcciones de 64 K que podría usarse para albergar 64 K de programas, pero es mucho más útil considerar el marco de página como un lugar para acceder a hasta 32 megabytes de código y/o datos para los programas que lo utilizan". [6]
DOS = ALTO,UMB dispositivo = C:\QEMM\dosdata.sys dispositivo = C:\QEMM\qemm386.sys R:1 RAM UR=1M-256M ST:MI=b000-b7ff X=f000-ffff dispositivo = C:\QEMM\dos-up.sys @C:\QEMM\dos-up.dat shell = C:\QEMM\loadhi.com /R:2 C:\command.com C: \ /P /E:1024
Nota: Si usa VMware, reemplace la línea qemm386.sys con
dispositivo = C:\QEMM\qemm386.sys R:1 RAM UR=1M-256M X=e800-e900
Mantenga presionada la tecla ALT durante el arranque y qemm386.sys no se cargará, pero le pedirá que presione Esc para omitir la carga.
Como alternativa, mantenga presionada la tecla F5 para que DOS omita la carga de todo config.sys + autoexec.bat o mantenga presionada la tecla F8 para que DOS le solicite Y/N para confirmar cada línea en config.sys y autoexec.bat; lo que le permitirá omitir la carga de qemm386.sys, dos-up, dosdata, etc.
Puede resultar útil al probar una nueva configuración que provoque bloqueos del sistema. Mantener presionada la tecla ALT o presionar F5/F8 durante el arranque puede ser la solución.
Microsoft lanzó sus propios administradores de memoria comparables pero más simples - HIMEM.SYS para XMS y EMM386.EXE para EMS con MS-DOS 4.01 en 1989; el anterior Windows/386 2.1 incluía un EMM integrado que ofrecía EMS a las ventanas DOS solo durante las sesiones de Windows. Estas versiones aún no podían crear bloques de memoria superior . DR DOS 5.0 (1990) de Digital Research fue el primer DOS no específico de un proveedor en ofrecer la tecnología UMB, incorporando un administrador XMS/EMS en modo 386 también llamado EMM386 . También podía asignar parte de la memoria de video o memoria EMS como memoria UMB. MS-DOS finalmente ofreció UMB en 1991 con la versión 5.0. El EMM386 de MS-DOS requería que HIMEM se cargara primero, mientras que el EMM386 de DR-DOS cumplía ambas funciones y no necesitaba un controlador XMS independiente, que todavía se proporcionaba pero solo era necesario en máquinas basadas en 80286 (originalmente llamado HIDOS.SYS, más tarde HIMEM.SYS). Si se cargaba un controlador XMS antes del EMM386 de DR-DOS, lo usaría en lugar del administrador XMS integrado. El uso de un controlador XMS externo y posiblemente personalizado podría ayudar a superar los problemas con las funciones de informes de memoria del BIOS que hacen que el administrador de memoria no vea toda la memoria disponible, y en máquinas que usan métodos de conmutación de puerta A20 no estándar, mientras que el uso del controlador XMS interno EMM386 podría aprovechar el código de 32 bits optimizado para la velocidad para el controlador XMS y reubicar todo, excepto un pequeño trozo del controlador XMS, en la memoria extendida. DR-DOS EMM386 podría llenar áreas "libres" con UMB o mapear RAM sobre áreas ROM no utilizadas en modo virtual, brindar soporte para DPMI (y - en algunos números especiales - DPMS ) y cargar el soporte para componentes multitarea y multihilo preventivos del sistema operativo.
Si bien QEMM era popular cuando los programas DOS eran la corriente principal, con el tiempo se volvió irrelevante a medida que los programas de Windows y los programas DOS más intensivos, en particular los juegos, que usaban extensores DOS reemplazaron a los programas DOS tradicionales para la mayoría de los usuarios. Además, algunos de los usuarios de DOS cambiaron a sistemas operativos en modo protegido que no eran compatibles con QEMM, como la serie Windows NT y Linux .
La versión final fue QEMM 97, que era compatible con Windows 95 y posteriormente Windows 98 / ME , pero en ese momento, no sólo la gestión de memoria DOS ya no tenía una gran demanda, sino que las aplicaciones DOS competitivas restantes (incluidas varias utilidades GNU y editores de texto) soportaban EMS, XMS o DPMI (lo que reducía la demanda de memoria convencional) o habían sido trasladadas a Windows 95 o superior. La disponibilidad de tamaños de RAM cada vez mayores a bajo coste sirvió para reducir la necesidad de MagnaRAM. Finalmente, los chipsets PCI modernos proporcionan una funcionalidad documentada para eliminar la protección contra escritura de UMA no utilizada; en muchos o la mayoría de los casos, este último hecho elimina la necesidad de QEMM incluso para aquellos relativamente pocos usuarios que utilizan aplicaciones DOS y que de otro modo podrían encontrar QEMM esencial.