Службы защищенного режима DOS - DOS Protected Mode Services

Службы защищенного режима DOS ( DPMS ) - это набор расширенных служб управления памятью DOS, которые позволяют драйверам DOS с поддержкой DPMS загружаться и выполняться в расширенной памяти и в защищенном режиме .

Не будучи сам по себе расширителем DOS , DPMS представляет собой минимальный набор расширенных служб управления памятью DOS, позволяющих слегка модифицированным резидентным системным расширениям DOS ( RSX ), таким как драйверы устройств или TSR (так называемые клиенты DPMS ) перемещаться в расширенную память и работать в 16-битном или 32-битном защищенном режиме, оставляя только крошечный тупик в обычной памяти в качестве интерфейса для связи с традиционной средой DOS. Клиенты DPMS делают это через службы DPMS, предоставляемые ранее загруженным сервером DPMS . Необходимый размер оставшейся заглушки зависит от типа драйвера, но часто может быть уменьшен до нескольких сотен байтов только для заголовка даже для сложных драйверов.

Выполняя драйвер в расширенной памяти и освобождая обычную память, DPMS не только позволяет загружать очень большие драйверы и использовать доступную память, но также оставляет больше памяти, доступной для обычных драйверов DOS для загрузки, или нерасширенных приложений DOS для загрузки. выполняются в ограниченном пространстве обычной области памяти. Это также поможет увеличить количество свободных системных ресурсов под Windows. Предоставляя программному обеспечению унифицированные интерфейсы для выделения и использования памяти в защищенном режиме без необходимости туннелирования всех запросов через DOS в реальном режиме, DPMS в то же время может помочь повысить производительность системы.

DPMS

DPMS был первоначально разработан Novell 's Digital Research GmbH, Германия, в 1992 году. Он совместим с любой DOS и может сосуществовать с диспетчерами памяти и расширителями DOS, такими как DPMI , VCPI и т. Д. DPMS API является реентерабельным и совместимым с многозадачностью, например как многозадачный DR-DOS или  DESQview . Предоставляя встроенный драйвер DPMS VxD , он также совместим с Windows 3.x и Windows 9x .

Сервер DPMS должен быть загружен после диспетчеров памяти (и до использующих его драйверов) либо как драйвер устройства «DPMSXXX0» для каждого оператора DEVICE в CONFIG.SYS (предпочтительный метод), либо позже как TSR. В целях отладки (например, в сочетании с Microsoft WDEB386.EXE) SDK- версии EMM386.EXE 3.00 могут альтернативно предоставлять службы DPMS через EMM386 [/] DPMS [= ON] через встроенный модуль DPMS.SYS, затем запускается на кольце 1 вместо кольца 0 , как в автономной версии DPMS.EXE. Параметр DPMS [/] NOCR3 позволяет выполнять отладку в более старых версиях NuMega   SoftICE .

В зависимости от обстоятельств сервер сам по себе будет занимать от 700 до 1400 байт обычной памяти и не может быть загружен в UMB . Для работы сервера DPMS потребуется как минимум машина 286 , но поскольку программное обеспечение с поддержкой DPMS может быть спроектировано таким образом, чтобы оно продолжало работать в обычной памяти, если службы DPMS недоступны, программное обеспечение не должно отказываться от совместимости. с системами, не предоставляющими службы DPMS, потому что DPMS не загружен или недоступен (например, на процессорах до 286). На процессорах 386 (и выше) сервер DPMS не только предоставляет набор 16-разрядных, но также набор 32-разрядных служб. Даже на этих машинах DPMS можно заставить загружать только свои 16-битные службы, используя параметр DPMS [/] 2 [86]  .

DPMS будет выделять память либо через VCPI, либо через XMS , в зависимости от того, какой тип памяти доступен. VCPI обычно также обращается к XMS. В новых версиях DPMS можно принудительно использовать один из этих интерфейсов с помощью параметра DPMS [/] MEM = XMS | VCPI . В некоторых версиях можно указать максимальный объем расширенной памяти, выделяемой с помощью DPMS [/] MB = nnnn .

Службы регистрации DPMS можно отключить или снова включить в любое время после загрузки с помощью команд DPMS [/] OFF или DPMS [/] ON , однако это повлияет только на загруженные новые драйверы, а не на уже запущенные и использующие DPMS.

Существует три основных версии спецификации DPMS: бета-версия DPMS, DPMS 1.0 (исходная поставка Novell DOS 7) и DPMS 1.1 (после обновления в марте 1994 года). Спецификация 1.0 продолжала поддерживать бета-версию, тогда как реализация 1.1 (и выше) - нет.

DPMS видел его дебют в бета - версии DR - DOS «Panther» в октябре 1992 года, который, помимо прочего, пришел с DPMS поддержки версий супер PC-Kwik диска кэша, Addstor «s SuperStor диска сжатия, и DEBUG , как„стелс“ отладчик системы в защищенном режиме. Хотя DPMS в это время уже назывался «Службы защищенного режима DOS», драйвер DPMS.EXE / DPMS.SYS 0.10 по-прежнему отображал сообщения запуска «Сервер защищенного режима DOS». В PCMCIA услуг карт CS в PalmDOS были DPMS поддержки , а также. Более поздние розничные продукты, такие как Novell DOS  7 и Personal NetWare  1.0 в декабре 1993 года, также поставлялись со многими драйверами с поддержкой DPMS, такими как компонент отслеживания удаления файлов DELWATCH  2.00, адаптивный дисковый кэш NWCACHE  1.00, NWCDEX  1.00, расширение перенаправителя компакт-дисков , одноранговый сетевой сервер SERVER 1.20 и STACKER  3.12, компонент сжатия диска. DPMS также предоставлялась Caldera OpenDOS  7.01, DR-DOS  7.02 и 7.03, которые, по крайней мере, в некоторых выпусках, добавляли проблемы с DPMS DRFAT32 ( расширение перенаправителя FAT32 ), LONGNAME ( поддержка длинных файлов VFAT ) и VDISK (виртуальная RAM). диск ). DR-DOS 7.03 содержит последнюю версию DPMS 1.44.

DPMS также обеспечивается IBM «s PC DOS  7.0 и PC DOS 2000, который поставляется со старой версией сервера DPMS компании Novell и DPMS с поддержкой версии Stacker  4.02 в комплекте.

Stac Electronics также выпустила автономную версию Stacker 4 с поддержкой DPMS.

Super PC-Kwik 6.xx для DOS от PC-Kwik Corporation и их Power Pak 4.0 для Windows в 1994 году также включали дисковый кеш SUPERPCK с поддержкой DPMS.

Известно, что некоторые комплекты драйверов DOS сторонних производителей, такие как ISDN- драйверы Eicon Diva или High Soft Tech GmbH (HST) Saphir CAPI или стеки драйверов PCMCIA / PCCard, такие как Award 's CardWare  2.5 (или выше), также поддерживают DPMS. После того, как Phoenix приобрела Award, их драйверы PCMCIA 6.0 (и выше) были проданы  UniCore . CardWare 6.0 и 7.0 были доступны через APSoft , Socket Services (SSxxxxxx.EXE), Card Services (PCCS.EXE), PC Enable (PCENABLE.EXE) и обработчики карт (PCDISK.EXE, PCSRAM.EXE, PCATA.EXE и PCFLASH.EXE) может использовать DPMS. Благодаря интеграции стека LXE в свои защищенные ПК с DOS, DPMS также нашла свое место в пакете Datalight ROM-DOS .

В 1999 году Funk Software представила версию своего программного обеспечения для удаленного управления Proxy Host с поддержкой DPMS, позволяющую PHOST занимать только 9 КБ обычной памяти. Удаленные коммутируемое программное обеспечение клиента удаленный для сервера 833 удаленного доступа по Perle Systems может воспользоваться DPMS для тех же целей , по крайней мере с 2002 года SciTech Software «s Кендалл Беннет исследовал возможность добавить поддержку DPMS их DOS драйвер вокруг ванной 1999 тоже, но он так и не был опубликован.

Брет Джонсон разработал драйверы Print Screen to file с поддержкой DPMS (PRTSCR) и USB для DOS.

ЗАКРЫТИЕ

В 1993 году диспетчер памяти NETROOM  3 компании Helix Software представил функцию, очень похожую на DPMS от Novell: CLOAKING использовался для перемещения драйверов Helix и сторонних производителей в расширенную память и запуска их на кольце 0. Предоставляя свои функции как расширение для реального режима интерфейса EMS и XMS , его службы защищенного режима доступны в INT 2Ch . Был доступен комплект разработчика CLOAKING, в который входил отладчик NuMega SoftICE . Замаскированные драйверы или программные прерывания перехвата TSR должны были оставлять небольшую 11-байтовую заглушку в обычной памяти, которая вызывала бы CLOAKING-сервер для передачи выполнения части защищенного режима программного обеспечения драйвера.

CLOAKING включает поддержку беспроблемной работы под Windows 3.x и Windows 95, предоставляя совместимые службы INT 2Ch для драйверов защищенного режима через Windows VxD, а также беспрепятственную отладку при запуске Windows с помощью SoftICE. Эта возможность переключения между средами хоста в защищенном режиме также является предметом патента.

CLOAKING интегрируется и работает с существующими программами управления виртуальной памятью без переключения таблиц дескрипторов или сброса регистров управления. Согласно документации Helix, это позволяет ускорить обработку прерываний.

В отличие от Novell DPMS, драйвер Helix CLOAKING может быть загружен на высоком уровне, но он не работает на 286 машинах, хотя он поддерживает 16-битные службы и структуру программы на 386. Также было обнаружено, что CLOAKING 2.01 несовместим с Многозадачность DR-DOS ( EMM386 / MULTI [= ON] + TASKMGR ).

Если при загрузке CLOAKING.EXE сервер DPMS отсутствует, CLOAKING по умолчанию также предоставляет скрытый сервер DPMS при увеличении его объема памяти DOS всего на 100 байт. Однако он также может сосуществовать с сервером DPMS, загруженным до ЗАКРЫТИЯ. Загрузка его встроенного сервера DPMS может быть подавлена ​​с помощью параметра CLOAKING / NODPMS . Драйверы с поддержкой DPMS будут работать как с DPMS, так и с CLOAKING, но не наоборот.

В NETROOM v3.04, дополнительный диск от «2-10-95», защищенный паролем файл ресурсов NR.ZIP (679 271 КБ) содержит недокументированный файл; DPMSCLK.EXE (13 904 КБ), «Скрытый сервер DPMS v3.03». Файл не поддерживает какие-либо опции или параметры при запросе с использованием стандартной опции справки DPMSCLK /? . Этот файл не распаковывается программой NETROOM 3 SETUP.EXE и не устанавливается. В руководстве по программному обеспечению NETROOM 3, в документации к программам на диске и в файлах, удобочитаемых человеком, нет намека на существование файла. Эта последняя версия NETROOM в том виде, в котором она была выпущена, в основном игнорировала DPMS.

Helix лицензированы версия Award Software «s BIOS и разработаны облачен система и видео БИОС , которые выполняются полностью в защищенном режиме, уменьшая их объем памяти в реальном режиме до 8 Кбайтов (вместо 96 КБ) и использовали их в качестве времени выполнения BIOS в в сочетании с их диспетчером памяти NETROOM .

Как часть своего продукта Multimedia Cloaking , Helix предоставила скрытые версии драйвера Logitech MOUSE 6.33, Microsoft MSCDEX и самодельный дисковый кеш для замены  драйверов Microsoft SmartDrive .

Также был продукт под названием Multimedia Stacker, состоящий из Stacker Stacker 4.01 с поддержкой DPMS и вышеупомянутого набора скрытых утилит DOS от Helix.

Logitech драйвер DOS мыши , так как MouseWare 6.50 получил возможность воспользоваться Маскирование и, тем самым снижая водителя мыши объем памяти , видимых приложений DOS от 27 КБ до 1 КБ.

Лицензия CLOAKING также была передана Symantec на их набор утилит, Corel на их продукты CD Creator и Corel SCSI , а также SMC Networks на их драйверы Ethernet.

Утилиту Novell DPMS нельзя использовать для временного отключения DPMS с помощью команды DPMS [/] OFF, если эти службы DPMS предоставляются CLOAKING вместо самой DPMS, потому что реализация Helix не только по ошибке не позволит новым драйверам регистрироваться в DPMS, но и полностью переключится. отключение служб DPMS даже для уже загруженных драйверов, что приводит к сбою системы.

NIOS

В 1993 году Novell объявила о планах преобразовать свои резидентные утилиты управления рабочими станциями, а также свои стеки сетевых драйверов DOS (оболочки, перенаправители и запросчики) для использования DPMS, однако только компонент сервера Personal NetWare был изменен, чтобы фактически использовать его преимущества.

Объявленная в 1993 году, Novell представила новый 32-разрядный клиент DOS / Windows NetWare ( клиент 32 ) на основе ODI32 / NIOS в 1996 году, заменив прежний 16-разрядный клиент, основанный на ODI / VLM . Клиент NIOS ( подсистема ввода-вывода NetWare ) для DOS и Windows использовал методы, очень похожие на DPMS или маскировку, для перемещения и запуска кода загруженных NLM ( загружаемых модулей NetWare ) в защищенном режиме и с расширенной памятью, чтобы уменьшить обычную память. размер сетевого стека уменьшается примерно до 2–5 КБ.

NIOS не требовал и не использовал DPMS или маскировку напрямую, и он не предоставлял общий интерфейс, который мог бы использоваться модулями, отличными от NLM, однако он определенно был вдохновлен технологией DPMS и может сосуществовать с ними обоими.

В то время как Novell Personal NetWare публиковалась без изменений как часть пакета DR-DOS ее новыми владельцами Caldera , Lineo и DeviceLogics до 2018 года, от Personal NetWare отказались с 1995 года в самой Novell. Это привело к тому, что Novell никогда не публиковала драйвер PNW.NLM для поддержки протокола Personal NetWare в новом 32-битном стеке ODI32 / NIOS, так что пользователи Personal NetWare, которые уже могли воспользоваться возможностями DPMS серверного модуля PNW , были обязаны продолжать использовать потребляющий память 16-разрядный клиент ODI / VLM с драйвером протокола PNW.VLM .

Смотрите также

Заметки

Рекомендации

дальнейшее чтение

Внешние ссылки