EMM386 является расширенной памяти менеджер Microsoft 's MS-DOS , IBM ' S PC DOS , Digital Research 's DR-DOS , и Datalight ' s ROM-DOS [1] , который используется для создания расширенной памяти с использованием расширенной памяти на Intel 80386 процессоров. Также имеется EMM386.EXE, доступный в FreeDOS . [2]
Разработчики) | Microsoft , IBM , DR , Datalight , команда FreeDOS |
---|---|
Первый выпуск | 1988, 32–33 года назад |
Операционная система | MS-DOS , ПК DOS , DR DOS , ROM-DOS , FreeDOS |
Платформа | Intel 80386 |
Тип | Расширенный менеджер памяти , Команда |
Обзор
EMM386.EXE может отображать память в неиспользуемые блоки в области верхней памяти (UMA), позволяя «загружать» драйверы устройств и TSR , сохраняя обычную память .
Этот метод, вероятно, впервые появился при разработке CEMM , включенного в Compaq MS-DOS 3.31 в 1987 году. Версия Microsoft впервые появилась, встроенная, с Windows / 386 2.1 в 1988 году и как автономный EMM386.SYS с MS-DOS 4.01 в 1989 году. ; более гибкая версия EMM386.EXE появилась в MS-DOS 5.0 в 1991 году.
Как и другие менеджеры расширенной памяти, EMM386 использует виртуальный режим 8086 процессора . Это заставляет доступ к памяти, выполняемый приложениями DOS, проходить через MMU процессора (представленный в 386), а записи таблицы страниц, используемые MMU, конфигурируются EMM386 для сопоставления определенных областей верхней памяти с областями расширенной памяти (полученными EMM386). через менеджер расширенной памяти HIMEM.SYS ). Этот метод позволил использовать как EMS (расширенную память), так и UMB - оба из которых кажутся приложениям DOS как память в верхней области, но фактически отображаются в области физической памяти за пределами 1 МБ.
Он временно отключается во время сеанса Windows в расширенном режиме 386 , и его роль берет на себя ядро защищенного режима Windows .
Windows использует GEMMIS API, чтобы взять на себя управление памятью из EMM386.EXE. Глобальная спецификация импорта EMM (GEMMIS) поддерживается в документе, доступном для избранного числа поставщиков диспетчеров памяти (« Спецификация импорта подкачки Windows / 386»). [3] [4] [5] [6]
Лишь немногие менеджеры памяти реализовали GEMMIS API, некоторые из них , которые включают его являются: EMM386.EXE, Quarterdeck QEMM , Qualitas 386Max , Helix Netroom [3] и DOSBox встроенной DOS . В частности, отсутствуют менеджеры памяти FreeDOS.
Все менеджеры памяти FreeDOS (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) не реализуют GEMMIS API, и Windows не запускается при работе в сочетании с JEMMxxx, поскольку Windows не может взять на себя роль управления памятью. Windows ME , Windows 98 , Windows 95 , Windows for Workgroups 3.1x и Windows 3 .xx, все будут терпеть неудачу с отображением JEMMxxx:
Невозможно запустить Windows, пока установлено программное обеспечение защищенного режима. Бег.
Закройте программное обеспечение защищенного режима и повторите попытку. Возможно, вам потребуется перезагрузить компьютер.
С JEMMxx можно запускать Windows 3.x и Windows for Workgroups 3.1x с ограниченными возможностями, заставляя Windows использовать стандартный режим; то есть с использованием защищенного режима 80286, а не расширенного режима 80386. Требуются три условия:
- ограничить общий размер XMS до 64 МБ
- EMS должен быть включен, нельзя использовать опцию NOEMS. Например JEMMEX X2MAX = 65422
- Windows работает только в стандартном режиме, WIN / S или WIN / 2
Обратите внимание, что Windows в стандартном режиме ограничена в функциональности, ей не хватает виртуальной памяти, она пропускает раздел [386Enh] в SYSTEM.INI, и любые драйверы устройств в [386Enh] не загружаются.
Смотрите также
- Верхняя область памяти (UMA)
- Расширенная память (XMS)
- Расширенная память (EMS)
- Список команд DOS
Рекомендации
- ^ "Руководство пользователя Datalight ROM-DOS" (PDF) . www.datalight.com .
- ^ Платт, Роберт; Шпигл, В. (2008) [2003]. «Команда: EMM386» . Архивировано 23 августа 2017 года . Проверено 21 октября 2015 .
- ^ а б Окадзаки, Таку; Шульман, Эндрю (1994-09-01). «Интерфейс импорта Windows Global EMM» . Журнал доктора Добба . Недокументированный уголок (9). Архивировано 23 августа 2017 года . Проверено 21 октября 2015 . [1] Архивировано 29 мая 2014 г. в archive.today [2] [3]
- ^ Браун, Ральф Д .; Шульман, Эндрю (июль 1994). «QPI: Интерфейс программирования QEMM-386» . Журнал доктора Добба . Недокументированный уголок. Сан-Матео, Калифорния: 123–131. Архивировано 23 августа 2017 года . Проверено 23 августа 2017 .
- ^ Lespinasse, Мишель. "Как выкинуть диспетчер памяти" . Амьен, Франция: Walken / Impact Studios. Архивировано 4 января 2017 года . Проверено 21 октября 2015 .
- ^ Пол, Матиас Р. (13 августа 2002 г.). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (на немецком языке). Группа новостей : de.comp.lang.assembler.x86 . Архивировано 4 сентября 2017 года . Проверено 3 сентября 2017 .