Введение

Менеджер памяти от Quarterdeck Office Systems, расширенный менеджер памяти.

Quarterdeck Expanded Memory Manager (QEMM) – это менеджер памяти, разработанный компанией Quarterdeck Office Systems в конце 1980-х – конце 1990-х годов. Он был самым популярным сторонним менеджером памяти для MS DOS и других DOS-совместимых операционных систем.

Ассортименты продуктов QEMM

QRAM – менеджер памяти для процессоров Intel 80286 и выше. Он поддерживает чипсеты Chips and Technologies. Версия 2.02 добавила переключатель SHADOWRAM. QEXT корректно перераспределяет память, соответствующую спецификации eXtended Memory Specification (XMS). Включает в себя VIDRAM, Optimize, LOADHI из QEMM 6.02 и Manifest 1.13. Более ранние версии QRAM также поддерживали процессоры 8086 и 8088. QEMM Game Edition – это версия QEMM, включающая Quarterdeck GameRunner. Патчи для стандартной версии QEMM не работают с QEMM Game Edition. QEMM MegaBundle – в версии, поставляемой с Borland SideKick для Windows, это версия с SideBar 1.00 (22.08.1994) и QEMM 7.5. DESQview 386 включает в себя DESQview и QEMM 386.

Драйвер QEMM

QEMM обеспечивает доступ к верхней области памяти (UMA) и памяти посредством спецификаций расширенной памяти (EMS), расширенной памяти (XMS), интерфейса виртуального управления (VCPI) и интерфейса защищенного режима DOS (DPMI). Быстрая загрузка: позволяет выполнять теплую перезагрузку или локальную перезагрузку без обращения к BIOS. Таким образом, она полностью обходит этап POST, включая экран начальной загрузки BIOS, длительное тестирование памяти и перечисление устройств, и просто восстанавливает состояние процессора и прерываний в их исходное состояние после POST.

DOS-Up

Он перемещает ядро DOS, интерпретатор COMMAND.COM, ресурсы DOS (например, буферы, дескрипторы файлов, стеки, lastdrive). Поддерживает DOS версии 3.2 и выше.

Хоукрам

Он позволяет загружать драйверы до загрузки QEMM, при этом сохраняя возможность использования функции Stealth QEMM.

МагнаРАМ

Это была утилита сжатия виртуальной памяти для Windows 3.1, Windows For Workgroups и Windows 95. MagnaRAM входит в комплект QEMM 97. MagnaRAM также выпускалась как отдельная утилита. MagnaRAM работала, заменяя часть системы виртуальной памяти Windows. MagnaRAM внедрялась в цепочку программ Windows, определяющих, какие фрагменты оперативной памяти будут перемещены на жесткий диск. Вместо прямой записи на жесткий диск, информация, предназначенная для записи, направлялась в собственный буфер MagnaRAM, что было более быстрым процессом. Во время простоя центрального процессора MagnaRAM сжимала информацию в своем буфере оперативной памяти. Когда буфер оперативной памяти заполнялся, он затем сбрасывался на жесткий диск, занимая меньше времени и места.

Манифест

Манифест (MFT) – это аппаратная информационная утилита, отображающая информацию о системе пользователя. В версии 1.11 исправлены незначительные косметические дефекты. Версия 1.12 способна идентифицировать PS/2 Model 57SX, Compaq Deskpro 486s/16M и Sharp MZ 100. Исправлена индикация доступной EMS-памяти на экране "Обзор системы" при использовании Stealth. В версии 1.13 устранена проблема с идентификацией BIOS Award. Версия 2.0 предоставляет информацию о сети, расширенную отчетность о видеовозможностях, APM, а также о памяти DPMI/VCPI/EMS/XMS. Новая функция – редактирование файлов конфигурации загрузки DOS и Windows.

Оптимизировать

Подобно MEMMAKER, это утилита, которая вычисляет и позволяет пользователю выбирать оптимальный порядок загрузки драйверов и TSR. Однако, OPTIMIZE позволяет просматривать изменения в реальном времени без перезагрузки. Поставлялась вместе с QEMM и DESQview.

QDPMI

QDPMI — это серверный драйвер DPMI 0.9, разработанный Дэном Спиром. Для его работы требуется процессор 386 и QEMM386.

50/60

Это версия драйвера QEMM для IBM PS/2 моделей 50 и 60. Версия 4.03 поддерживает платы расширения памяти IBM Memory Expansion Option объемом 2 по 8 МБ.

Невидимка

Он может переместить память, выделенную для набора символов CGA, за пределы UMA. Начиная с версии QEMM 8, он позволяет перемещать содержимое ROM из UMA, чтобы освободить больше памяти для TSR. Дополнительная совместимость со Stealth Windows обеспечивается с помощью VxD.

Стелс Двойной Космос/D*Космос

Стелс D*Space позволяет загружать DoubleSpace или DriveSpace в верхнюю область памяти.

T386

Это позволяет ноутбукам Toshiba работать с менеджером EMS от QEMM.

Видрам

Предоставляет дополнительную обычную память в текстовых программах, освобождая буферы, расположенные в UMA и используемые в графических режимах. Требуется видеокарта, совместимая с EGA/VGA. VIDRAM EMS поддерживает доступ к видеопамяти с использованием DMA, уменьшая объем доступной EMS-памяти для буферов.

Предельный уровень драйвера устройства

LOADHI.SYS загружает до 1 драйвера устройства одновременно в QEMM 4.23, до 2 в QEMM 5 и до 32 в QEMM 6.

Предельный уровень MagnaRAM

Максимальный порог сжатия установлен на уровне 100% для всех версий MagnaRAM 2.00 и 2.02, за исключением MagnaRAM 2.00, поставляемой с QEMM 8.00, для которой максимальное значение составляет 80%.

Пределы памяти

QEMM 5.0 может управлять до 16 МБ EMS, 16 МБ XMS. QEMM 6.0 может управлять до 64 МБ EMS, 64 МБ XMS. QEMM 6.02 может управлять до 128 МБ EMS, 128 МБ XMS. Ограничение параметра EMBMEM (16 бит) было снято. QEMM 7.0 и 7.03 могут управлять до 128 МБ EMS, 128 МБ XMS. QEMM 7.04, 7.5, 8.0, 8.3 и 97 (также известная как QEMM 9.0) может управлять до 256 МБ EMS/XMS. По умолчанию, QEMM 7.04 и выше предоставляют до 64 МБ оперативной памяти, совместно используемой между XMS, EMS и VCPI, если не указан параметр USERAM=. Например, для обеспечения доступа к 256 МБ EMS (или 256 МБ XMS) укажите: QEMM386.SYS USERAM=1M 256M.

Для QEMM 7.04 и выше максимальный объем адресуемой оперативной памяти составляет 256 МБ, совместно используемой между XMS, EMS и VCPI. Изначально XMS выделяет все 256 МБ и распределяет их между EMS и VCPI по мере необходимости, то есть по мере запроса EMS и VCPI блоков памяти, объем свободной памяти XMS уменьшается на соответствующую величину.

Оптимизировать лимит

Версии QEMM до 6.01 могут обрабатывать пакетные файлы размером до 9 КБ, а в QEMM 6.02 – до 20 КБ. Ограничение на количество строк в пакетном файле составляет 512 для версий QEMM до 6.02.

Стелс Двойной Космос/D*Космос

Stealth D*Space не поддерживает Windows 95 и более поздние версии DriveSpace.

История версий

Первоначально продукт назывался QEMM 386 (требующий Intel 80386 и DOS 3.30), и был выпущен вместе с дополнительным продуктом под названием QRAM (для использования на Intel 80286 и 8088). Суффикс "386" был удален, начиная с версии QEMM 7.0 в 1993 году, когда Intel выпустила Intel Pentium 22 марта 1993 года. Последняя версия была переименована в QEMM 97 в соответствии с новой тенденцией Microsoft в брендинге – использовать год выпуска вместо номеров версий, как это было сделано, например, в Windows 95 и Windows 95 OSR2.

QEMM-386 v4.2 (11 ноября 1988)

Поддерживает процессоры Intel 80386 и DOS 3.30. Поставлялась в комплекте с QRAM для компьютеров на базе процессоров 80286 или 8088/8086.

QEMM-386 v5.0 (январь 1990)

Добавлена поддержка Intel 80486, DOS 4.01 и Windows 3.0. Максимальный объем оперативной памяти – 16 МБ XMS/16 МБ EMS. LOADHI.SYS теперь загружает одновременно два драйвера устройств. Новые параметры QEMM включают COMPAQ386S (C386S).

QEMM-386 v5.11 (середина 1990-х годов)

Добавлена поддержка служб виртуального DMA (VDS). Увеличен размер кэша памяти.

QEMM-386 v6.0 (начало 1991 года)

Добавлена поддержка DOS 5.00a и Windows 3.0a. Максимальный объем оперативной памяти – 64 МБ XMS/64 МБ EMS. Новые функции включают режим «Стелс». Новые утилиты включают HOOKRAM. LOADHI.SYS теперь загружает до 32 драйверов устройств одновременно. Манифест обновлен до версии 1.10. QRAM обновлен до версии 2.02 для систем на базе процессоров Intel 80286 и Intel 8088.

QEMM-386 v6.01 (середина 1991 года)

QEMM поддерживает загрузку драйвера XMS перед запуском QEMM, позволяет запускать Stealth в Windows 3.0 в режиме 386 Enhanced. Оптимизирована поддержка команд CALL с отступами в пакетных файлах. Манифест обновлен до версии 1.11.

QEMM-386 v6.02 (13 ноября 1991)

Поддерживает дисководы для дискет объемом 2,88 МБ. Новые ключи Optimize включают /COMMANDFILE (CMD), /LOADLOW (LOW), /QUICK (Q). Optimize поддерживает оптимизацию по умолчанию. Файл исключений EXC. Новые параметры QEMM включают DISKBUFFRAME=xx (DBF), EXCLUDESTEALTHINT=xx (XSTI), SHADOWRAM=xxx (SH), UNMAPFREEPAGES=Y/N (UFP), WINSHRINKUMBS=N (WSU). По умолчанию, EMS отключается при активном Stealth. Optimize может обрабатывать пакетные файлы размером до 20 КБ. Ограничение в 64 МБ для параметра EMBMEM (EMB) было снято. Сообщения "Danny and Larry" были удалены из TESTBIOS. Манифест обновлен до версии 1.13. Vidram теперь поддерживает системы с более чем 640 КБ обычной памяти и по умолчанию использует EMS.

QEMM v7.0 (середина 1993 г.)

Убрали суффикс 386 из названия после выпуска процессора Pentium компанией Intel. Добавлена поддержка Intel Pentium, DOS 6.00 и Windows 3.10. Максимальный объем оперативной памяти – 128 МБ XMS / 128 МБ EMS. QEMM была переписана с использованием 32-битного кода. Новые функции включают DOSDATA, DOS Up, Stealth ROM, Stealth DoubleSpace. Новые утилиты: SWAPECHO.COM, OPTIMIZE.EXE (заменяет OPTIMIZE.COM), QDPMI (хост Quarterdeck DPMI 0.9), QSETUP (настройка QEMM для Windows), SCANMEM.COM (сканер памяти USERAM=). Обновленные утилиты включают Manifest 2.0. Добавлена поддержка расширений виртуального режима и расширений размера страницы, реализованных в процессорах Pentium, Intel 80486 и более поздних моделях; жестких дисков с Bus Mastering. Улучшено определение объема оперативной памяти адаптера. Добавлена поддержка чтения конфигурационного файла QEMM, @filename. Добавлена поддержка DOS 6.00 Multi Config в CONFIG.SYS и операторов IF в AUTOEXEC.BAT. Optimize теперь поддерживает программы сжатия диска. Vidram теперь может работать в режиме Windows Enhanced mode в DOS-окнах. QEMM 7.0x по умолчанию загружается в теневую оперативную память.

QEMM v7.03 (17 ноября 1993 г.)

VIDRAM больше не подавляет прерывание 10, вызовы функции 1B (функциональность и информация о состоянии видео BIOS для MCGA/VGA). Новые опции Optimize включают /NOFLUSH (/NOFL). Stealth DoubleSpace виртуализирует функцию DOS 9. DOSDATA улучшает совместимость со Stacker 3.1, поддерживает PC DOS 6.1 и XTRADRIVE или загрузчик OS/2 2.x. Драйвер Stealth для Windows был обновлен до версии 7.02. Драйвер QEMM теперь поддерживает Compaq 20/e и 25/e.

QEMM v7.04 (28 февраля 1994 г.)

Добавлена поддержка DOS 6.20. Максимальный объем оперативной памяти – 256 МБ XMS / 256 МБ EMS. DOS Up теперь поддерживает Novell DOS 7. В DR DOS 6.0 и Novell DOS 7 в расширенную память загружается только ресурс DOS. Улучшена совместимость с VCPI на системах с большим объемом памяти. QEMM поддерживает сервер DESQview/X 2.0. *Manifest теперь определяет процессоры STB.

QEMM v7.5 (17 сентября 1994 г.)

Новые функции включают Stealth D*Space, поддерживающий обе технологии сжатия диска – DrvSpace (DOS 6.22) и DblSpace (DOS 6.20, DOS 6.00); заменяет Stealth DoubleSpace. Новые инструменты включают QPI и VXD. Улучшена поддержка процессоров Pentium с звуковой картой DigiSpeech Portable Sound, подключаемой к параллельному порту. QEMM 7.5 больше не загружается в теневую память. Optimize теперь корректно определяет аппаратное обеспечение в системах с сетевой картой.

QEMM v7.53 (12 мая 1995 г.)

Добавлена поддержка DOS 6.22, Windows 3.11 и Windows для рабочих групп 3.11. Максимальный объем оперативной памяти – 256 МБ XMS / 256 МБ EMS. Улучшена функция ОПТИМИЗАЦИЯ для обнаружения EMS на этапе аппаратного определения.

QEMM v8.0 (1995-11-04)

Попытка поддержки Windows 95. Обновлена MagnaRAM 2.02. QEMM v8.0 не использовала в полной мере новые возможности Windows 95, а работала так, как будто это Windows 3.11, полагаясь на обратную совместимость Windows 95 с Windows 3.1x. Компания Quarterdeck попыталась улучшить интеграцию версии v8.x с Windows 95 с помощью патча v8.01 и финального патча v8.03.

QEMM v8.01 (14 февраля 1996 г.)

Улучшена поддержка Windows 95 и более ранних версий, работающих поверх DOS 7.00. Добавлены 4DOS и CMD.

QEMM v8.03 (7 апреля 1997 г.)

Полная поддержка чистого DOS 6.22 с Windows 3.11 или Windows для рабочих групп 3.11. Исправления ошибок, включая улучшения для QEMM386, DOS Up и LOADHI. Последний официальный патч для QEMM v8.x (25 марта 1997 г.) портирует многие улучшения из будущей QEMM 97.

QEMM 97 (известная как версия 9.0) (15 мая 1997 года)

Полная поддержка Windows 95/98/98SE (не ME). QEMM v8.03 имеет ограниченную функциональность в Windows 95 (и не работает с Windows 98). Новые утилиты включают MagnaRAM, оптимизирующую файл подкачки Windows 9x.

Один Install.exe, но две роли

Запустите установщик из-под Windows, и он полностью интегрирует QEMM 97 с файлами конфигурации Windows и системой обновления реестра, включая файл .ini, добавление группы QEMM, автоматический запуск мониторинга QEMM и т.д. Однако, если запустить установщик, install.exe, из чистой среды DOS (DOS 7.10 или DOS 6.22) без установленной Windows, он настроит и установит только утилиты DOS, обновив только файлы config.sys и autoexec.bat.

Конфигурации QEMM

QEMM предоставляет до 635K свободной обычной памяти (RAM ниже 640K), что значительно превосходит возможности чистых MS DOS EMM386, FreeDOS JEMM386, UMBPCI и многих других программ управления памятью. Максимальный объем RAM, обеспечиваемый QEMM, составляет 635K свободной обычной памяти с возможностью совместного использования до 256 МБ XMS/256 МБ EMS.

MS-DOS 6.22, Windows 3.11/WFW 3.11

QEMM обеспечивает максимальную эффективность с MS DOS 6.22 и более ранними версиями. MS DOS 6.22 предоставляет 619 КБ свободной обычной памяти и до 64 МБ XMS/32 МБ EMS, используемой совместно. При условии, что MS DOS 6.22 не изменена и не используются сторонние утилиты, такие как JEMM, UMBPCI и другие, QEMM увеличивает объем доступной свободной обычной памяти до 635 КБ с общим объемом 256 МБ XMS/256 МБ EMS. При использовании Windows 3.11 или Windows For Workgroups 3.11, QEMM предоставляет дополнительную свободную обычную память для DOS Prompt, работающего в среде Windows. QEMM хорошо подходит для Windows 3.x и поддерживал ее, начиная с версии QEMM v5.x еще в 1990 году. В результате, QEMM 8.03 или QEMM 97 отлично интегрируются с Windows 3.11/WFW 3.11.

MS-DOS 7.10, Windows 95 OSR2/Windows 98 SE

QEMM увеличивает объем доступной свободной обычной оперативной памяти для MS DOS 7.10, а также для DOS Prompt под Windows 95 OSR2/Windows 98 SE. Однако максимальный объем оперативной памяти, поддерживаемый QEMM, составляет 256 МБ XMS/256 МБ EMS, что меньше, чем поддерживает MS DOS 7.10 и Windows 95/98 без QEMM. MS DOS 7.10 предоставляет 624 КБ свободной обычной памяти и до 1 ГБ XMS/32 МБ EMS, при условии использования неизмененной версии MS DOS с файлами HIMEM.SYS и EMM386.EXE без каких-либо сторонних утилит. Таким образом, QEMM совместим с MS DOS 7.10 и Windows 9x, обеспечивая немного больше свободной обычной оперативной памяти, но при этом снижая максимальный объем оперативной памяти до 256 МБ XMS/256 МБ EMS.

Последствия использования или отключения ЭМС

В памяти EMS обычно используется 64 КБ UMB в качестве Page Frame, что уменьшает общий объем UMB, доступный для DOS. Поэтому некоторые рекомендуют отключить EMS, используя переключатель NOEMS, чтобы увеличить общий объем свободного UMB на 64 КБ. QEMM поддерживает переключатель NOEMS, однако гораздо полезнее обеспечить поддержку EMS, чем экономить 64 КБ Page Frame. QEMM использует преимущества памяти EMS и обычно освобождает больше свободной оперативной памяти в нижнем адресном пространстве 1 МБ, чем 64 КБ, требуемых для EMS. QEMM StealthROM, SqueezeFrame и Stealth D*Space требуют EMS для работы, отображая ROM и буферы данных в EMS, тем самым освобождая больше UMB. Техническая заметка FRAME.TEC от QEMM гласит: "Таким образом, любой совет об отключении Page Frame – это близорукость. Помните, что Page Frame – это 64 КБ адресного пространства, которое любая программа может использовать в любое время для эффективного доступа к практически неограниченному объему памяти. Некоторые рассматривают Page Frame как 64 КБ адресного пространства, которое можно использовать для хранения до 64 КБ программ, но гораздо полезнее рассматривать его как место для доступа до 32 мегабайт кода и/или данных для программ, которые его используют."

Пропускается QEMM386 во время загрузки

Удерживайте клавишу ALT во время загрузки, и файл Qemm386.sys не будет загружен, но появится запрос на нажатие Esc для пропуска загрузки. В качестве альтернативы, удерживайте F5, чтобы DOS пропустил загрузку всего файла CONFIG.SYS и AUTOEXEC.BAT, или удерживайте F8, чтобы DOS запрашивал подтверждение (Y/N) для каждой строки в файлах CONFIG.SYS и AUTOEXEC.BAT, позволяя вам пропустить загрузку Qemm386.sys, DOS UP, DOSDATA и т.д. Это может помочь при тестировании новой конфигурации, приводящей к зависанию системы. Удержание клавиши ALT или нажатие F5/F8 во время загрузки может оказаться спасительным решением!

Эквиваленты DOS

Microsoft выпустила сопоставимые, но более простые собственные менеджеры памяти – HIMEM.SYS для XMS и EMM386.EXE для EMS вместе с MS-DOS 4.01 в 1989 году; более ранняя версия Windows/386 2.1 включала встроенный EMM, который предоставлял EMS для окон DOS только во время сеансов Windows. Эти версии еще не могли создавать блоки верхней памяти (UMB). DR-DOS 5.0 (1990) от Digital Research стала первой DOS, не привязанной к конкретному производителю, предложившей технологию UMB, включающую менеджер XMS/EMS в режиме 386, также называемый EMM386. Он также мог выделять часть видеопамяти или EMS-памяти в качестве UMB-памяти. MS-DOS наконец предложила поддержку UMB в 1991 году с версией 5.0. EMM386 от MS-DOS требовала предварительной загрузки HIMEM, в то время как EMM386 от DR-DOS выполняла обе функции и не нуждалась в отдельном драйвере XMS, который, тем не менее, поставлялся и требовался только на машинах на базе 80286 (первоначально назывался HIDOS.SYS, позже HIMEM.SYS). Если драйвер XMS был загружен до EMM386 от DR-DOS, он использовался вместо встроенного менеджера XMS. Использование внешнего и, возможно, настроенного драйвера XMS могло помочь решить проблемы, связанные с функциями отчета о памяти BIOS, из-за которых менеджер памяти не мог видеть всю доступную память, а также на машинах, использующих нестандартные методы переключения A20. В то же время использование внутреннего драйвера XMS в EMM386 позволяло воспользоваться преимуществами оптимизированного 32-битного кода для драйвера XMS и переместить в расширенную память все, кроме небольшого фрагмента драйвера XMS. EMM386 от DR-DOS могла заполнять "свободные" области UMB или отображать ОЗУ на неиспользуемые области ПЗУ в виртуальном режиме, обеспечивать поддержку DPMI (и в некоторых специальных сборках – DPMS), а также загружать поддержку компонентов операционной системы, отвечающих за прерывистое многозадачность и многопоточность.

Переход на Windows / Снижение QEMM

Хотя QEMM был популярен во времена доминирования программ DOS, со временем он стал в значительной степени неактуальным, поскольку программы Windows и более требовательные программы DOS, особенно игры, использующие расширители DOS, заменили традиционные программы DOS для большинства пользователей. Кроме того, часть пользователей DOS перешла на операционные системы защищенного режима, не поддерживаемые QEMM, такие как серия Windows NT и Linux. Последней версией была QEMM 97, совместимая с Windows 95 и последующими Windows 98/ME, но к этому моменту потребность в управлении памятью DOS уже снизилась, а оставшиеся конкурентоспособные приложения DOS (включая различные утилиты GNU и текстовые редакторы) поддерживали EMS, XMS или DPMI, что уменьшало потребность в обычной памяти, или были портированы на Windows 95 или более поздние версии. Увеличение доступности оперативной памяти по низкой цене снизило необходимость в MagnaRAM. Наконец, современные чипсеты PCI предоставляют документированную возможность снятия защиты от записи с неиспользуемой UMA; во многих случаях этот факт устраняет необходимость в QEMM даже для тех немногих пользователей, которые продолжают использовать приложения DOS и для которых QEMM в противном случае мог бы быть необходим.