Введение

CEMM, разработанный компанией Compaq для управления расширенной памятью (Expanded Memory Manager), был первым так называемым "менеджером памяти" для ПК на базе процессоров Intel 80386, способным обеспечивать эмуляцию расширенной памяти (EMS) за счет использования функций виртуальной памяти и виртуального режима 8086 процессора. Он поставлялся с Compaq DOS 3.10 вместе с компьютером Compaq Deskpro 386, начиная с сентября 1986 года.

Обзор

В 1986 году компания Compaq первой выпустила компьютер, совместимый с IBM PC, оснащенный процессором 386 – Deskpro 386. Естественно, они стали разрабатывать решения, использующие специфические возможности их нового оборудования, и в данном случае позволяющие существующим программам DOS, совместимым с EMS, получать доступ ко всей доступной памяти. Реализация не была лишена недостатков. Хотя CEMM назывался «расширенным менеджером памяти», по сути это было крошечное однозадачное ядро операционной системы, работающее в защищенном режиме, также известное как монитор виртуальной машины (VMM). Ему приходилось перехватывать все прерывания и исключения и перенаправлять их в виртуальную машину, где работала DOS. Это немного замедляло работу компьютера, увеличивало задержку обработки прерываний и изменяло поведение программ DOS при попытке выполнить недопустимые машинные инструкции. Создание VMM не было основной целью CEMM, но эмуляция EMS требовала страничной организации памяти, а страничная организация требовала защищенного режима. Таким образом, единственный способ запуска существующего кода DOS и BIOS в реальном режиме был через VMM. Поскольку CEMM переводил процессор в защищенный режим, другие программы (расширители DOS) больше не могли делать это самостоятельно. Для запуска программ-расширителей DOS потребовалось разработать специальный API – VCPI. Первый CEMM, совместимый с VCPI, имел версию 4.0 и поставлялся вместе с Compaq DOS 4.01. Компания Compaq подала заявку на патент на эту технологию в 1987 году. Патент был выдан в 1990 году и, вероятно, истек в 2007 году. Компания Compaq была создателем этой технологии и первой компанией, которая ее использовала. Однако со временем QEMM и 386MAX стали стандартными пакетами. Windows/386 и последующие версии содержали встроенный расширенный менеджер памяти (EMM386), доступный во время сеансов Windows и используемый для запуска нескольких виртуальных машин DOS. MS DOS 4.01 (в 1989 году) и DR DOS 5.0 (в 1990 году) популяризировали эту технологию за пределами среды Windows. Реализация EMM386 от Microsoft была основана на CEMM.