Jump to content

Интерфейс защищенного режима DOS

Интерфейс защищенного режима DOS
Аббревиатура ДПМИ
Статус Опубликовано
Год начался 1989 год ; 35 лет назад ( 1989 )
Организация Комитет ДПМИ
Домен Интерфейсы прикладного программирования

В вычислительной сфере интерфейс защищенного режима DOS ( DPMI ) представляет собой спецификацию, представленную в 1989 году, которая позволяет программам DOS работать в защищенном режиме , предоставляя доступ ко многим функциям новых процессоров ПК того времени, недоступным в реальном режиме . Первоначально она была разработана Microsoft для Windows 3.0 , хотя позже Microsoft передала контроль над спецификацией отраслевому комитету с открытым членством. [ 1 ] [ 2 ] Почти все современные расширители DOS основаны на DPMI и позволяют программам DOS обращаться ко всей памяти, доступной на ПК, и работать в защищенном режиме (в основном в кольце 3, с наименьшими привилегиями). [ 3 ]

DPMI означает интерфейс защищенного режима DOS. Это API , который позволяет программе запускаться в защищенном режиме на процессорах серии 80286 и более поздних, а также выполнять вызовы в реальный режим без необходимости вручную настраивать эти режимы ЦП. DPMI также предоставляет функции управления различные ресурсы, особенно память . Это позволяет программам с поддержкой DPMI работать в многозадачные операционные системы, позволяя ядру ОС распределять такие ресурсы между несколькими приложениями. DPMI предоставляет только те функции, которые необходимо реализовать в режиме супервизора . Это может быть рассматривается как однозадачное микроядро . Остальная функциональность доступна программам с поддержкой DPMI. посредством вызовов служб DOS и BIOS реального режима , что позволяет самому API DPMI оставаться в основном независимым от DOS. Что делает DPMI API специфичным для DOS, так это всего лишь 3 функции управления памятью DOS и буква «D» в аббревиатуре «DPMI».

Служба DPMI может быть 16-битной, 32-битной или «универсальной» и называется ядром DPMI , хостом DPMI или сервером DPMI . Он предоставляется либо операционной системой хоста ( виртуальный хост DPMI ), либо расширителем DOS ( реальный хост DPMI ). Ядро DPMI может быть частью расширителя DOS, например, в DOS/4GW или DOS/32A , или отдельным, например, CWSDPMI или HDPMI .

Основное использование API DPMI — позволить расширителям DOS предоставлять среду, независимую от операционной системы хоста. Расширитель DOS проверяет наличие ядра DPMI и устанавливает свое, только если оно еще не было установлено. Это позволяет Расширенные DOS программы для запуска либо в многозадачной ОС, предоставляющей собственное ядро ​​DPMI, либо напрямую. под «голой» DOS, и в этом случае расширитель DOS использует собственное ядро ​​DPMI. Windows 3.x и 9x Пользовательский режим Ядра создаются с использованием расширителя DOS, поэтому они полностью полагаются на API DPMI, предоставляемый ядром Windows Ring-0.

Первые проекты спецификации DPMI были опубликованы в 1989 году Ральфом Липе из Microsoft . [ 4 ] [ 1 ] Хотя эта реализация основана на прототипной версии DPMI для Windows 3.0 в расширенном режиме 386, некоторые функции этой реализации были удалены из официальной спецификации, включая функцию под названием «Расширения MS-DOS». [ 5 ] или перевод DOS API , предложенный Ральфом Липе в первоначальных черновиках. [ 6 ] По большей части это была реализация интерфейсов DOS и BIOS (из-за этой истории некоторые API INT 21h, такие как 4Ch, должны быть реализованы во всех реализациях DPMI). Версия DPMI 0.9 была опубликована в 1990 году недавно сформированным комитетом DPMI . Номер версии 0.9 итоговой спецификации был выбран, чтобы отразить урезанный характер и неполный статус стандарта, с которым могли согласиться члены комитета DPMI. [ 1 ] Хотя Windows сообщает о совместимости DPMI версии 0.9, на самом деле она реализует и другие части, поскольку они представляют собой жизненно важную часть системы. [ 5 ] [ 1 ] Эта недокументированная полная природа DPMI стала известна как « истинный DPMI ». в отрасли [ 7 ] Стандарт DPMI был не единственной попыткой преодолеть недостатки спецификации VCPI . В то же время, когда Microsoft разработала DPMI для Windows 3.0, другой отраслевой альянс, включающий Intel Software Focus Group , [ 8 ] [ 1 ] Лотос , [ 8 ] Digital Research , Interactive Systems и другие компании разработали спецификацию под названием Extended VCPI ( XVCPI ), чтобы сделать возможности управления памятью и многозадачности 386 доступными для расширенных приложений DOS. [ 8 ] [ 1 ] [ 9 ] Когда выяснилось, что предложение Microsoft по DPMI затрагивает ряд аналогичных проблем и было поддержано Windows, эти усилия привели к созданию комитета DPMI в феврале 1990 года во время встречи в Intel в Санта-Кларе. [ 8 ] [ 1 ]

В 1991 году комитет DPMI пересмотрел DPMI до версии 1.0, чтобы включить ряд пояснений и расширений, но она все еще не включала недостающие биты «истинного DPMI», реализованные в Windows. Фактически, «истинный DPMI» никогда не стал частью официальной спецификации DPMI, и Windows также никогда не реализовывала расширения DPMI 1.0 (и это делали немногие хосты DPMI).

Хотя DPMI предназначен для запуска расширенного прикладного программного обеспечения DOS в защищенном режиме и с расширенной памятью, [ 10 ] он не особенно хорошо подходит для резидентных расширений системы. Другая спецификация под названием DPMS , [ 10 ] Разработанный Digital Research / Novell примерно в 1992 году, он специально направлен на удовлетворение требований по легкому перемещению модифицированного программного обеспечения драйверов DOS в расширенную память и запуску их в защищенном режиме, тем самым уменьшая объем их обычного объема памяти до небольших заглушек . Это также поддерживается Helix Cloaking .

«Метод» DPMI специфичен для DOS и IBM PC. Другие типы компьютеров были обновлены с 16-битных до 32-битных, а расширенная программная поддержка обеспечивалась за счет обновления операционной системы с использованием нового 32-битного API и новых возможностей управления/адресации памяти. Например, базовая система OS/2 поддерживает 32-битные программы и может запускаться без графического интерфейса. Решение DPMI, по-видимому, в основном необходимо для удовлетворения потребностей третьих сторон в обеспечении стабильной работы программ защищенного режима DOS в Windows 3.x до того, как доминирующий поставщик операционной системы, Microsoft, сможет или захочет заняться будущим 32-битной Windows. Кроме того, Microsoft видела ответом на 32-битный переход не 32-битную DOS, а скорее 32-битную Windows с совершенно другим (и несовместимым) API.

Совместимость

[ редактировать ]

Хотя Windows 3.0 реализует «истинный DPMI». [ 5 ] и сообщает о поддержке DPMI 0.9, [ 11 ] DPMI версии 1.0 никогда не был реализован в Microsoft Windows , поэтому большинство программ и расширителей DOS в основном были написаны только для версии 0.9. Однако лишь немногие расширители реализуют «истинный DPMI».

Бета-версии Qualitas 386MAX реализовали «настоящий DPMI» и могли запускать KRNL386.EXE Windows из командной строки, но во внутреннем электронном письме утверждалось, что в выпущенном продукте он отключен. [ 5 ] Однако DPMIONE (от Боба Смита на основе кода 386MAX) может это сделать. В настоящее время DPMIONE и 386 МАКС также является единственным хостом DPMI, который полностью поддерживает DPMI 1.0 (например, свободная память), и они являются основным сторонником DPMI 1.0. [ 12 ]

KRNL386.SYS (он же «MultiMAX») DR DOS «Пантера» и «СтарТрек» , находящийся в разработке с 1991 года, [ номер 1 ] и EMM386.EXE менеджеры памяти Novell DOS 7 , [ 10 ] Caldera OpenDOS и DR-DOS 7.02 и выше имеют встроенную поддержку DPMI при загрузке с /DPMI[=ON] вариант. У KRNL386.SYS даже была опция командной строки. /VER=0.9|1.0 для обеспечения поддержки DPMI 1.0 или 0.9. [ 13 ] Трансляция DOS API называлась «вызываемым прерыванием 21 из защищенного режима». Многопользовательский DOS , System Manager и REAL/32 также поддерживают DPMI.

Самым известным отдельным ядром DPMI, вероятно, является CWSDPMI ; он поддерживает DPMI 0.9, но не поддерживает недокументированный «перевод DOS API». Другой вариант под названием PMODE от «TRAN», он же Томас Пайтел, был популярен среди 32-битных программистов во время демонстрационной сцены 1990-х годов. Во многих играх использовалась DOS/4GW, которая была разработана Rational Systems как подмножество DOS/4G и распространялась вместе с C. компилятором Watcom

HDPMI (часть HX DOS Extender ) обеспечивает «трансляцию DOS API» и почти полную реализацию DPMI 1.0.

Комитет ДПМИ

[ редактировать ]

Комитет DPMI 1.0 собирался с 1990 по 1991 год и состоял из 12 групп:

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ KRNL386.SYS DR DOS "Пантера" имеет строки авторских прав "1991,1992".
  1. ^ Jump up to: а б с д и ж г Дункан, Рэй (12 февраля 1991 г.). «Мощное программирование — введение в интерфейс защищенного режима DOS» . Журнал ПК . 10 (3). Издательство Ziff-Davis Publishing Co .: 367–371. ISSN   0888-8507 . Проверено 21 мая 2016 г. […] Создатели VCPI хорошо знали о его ограничениях и уже усердно работали над спецификацией второго поколения под названием Extended VCPI ( XVCPI ), когда Microsoft вышла на сцену с бета-тестовыми версиями Windows 3.0 и ее DPMI. . В течение нескольких месяцев казалось, что молодой рынок расширителей DOS разделится на два взаимоисключающих направления […] Microsoft передала контроль над спецификацией DPMI отраслевому комитету с открытым членством, и сторонники XVCPI решили объединить усилия для ДПМИ. […] Microsoft согласилась удалить те части DPMI, которые пересекли территорию расширителя DOS — в частности, прямую поддержку прерываний DOS и ROM BIOS в защищенном режиме . Следовательно, DPMI, версия 0.9, первая общедоступная версия, выпущенная комитетом DPMI в мае 1990 года, определяет только низкоуровневые функции или функции строительных блоков […] Естественно, более высокий уровень или интерфейс расширения DOS Windows 3.0 все еще существует. но он отступил в сумеречную зону недокументированной функциональности. Недокументировано, но вряд ли непригодно для использования […]
  2. ^ Дункан, Рэй; Петцольд, Чарльз ; Шульман, Эндрю; Бейкер, М. Стивен; Нельсон, Росс П.; Дэвис, Стивен Р.; Мут, Роберт (1992). Расширение DOS: Руководство программиста по DOS в защищенном режиме . 2 (2-е изд.). Addison-Wesley Publishing Company, Inc., стр. 433–436. ISBN  0-201-56798-9 .
  3. ^ Шмит, Майкл Л. (1995). Инструменты оптимизации процессора Pentium (1-е изд.). Кембридж, Массачусетс, США: Academic Press, Inc. ( AP Professional ). ISBN  0-12-627230-1 .
  4. ^ Microsoft (осень 1989 г.), Спецификация интерфейса защищенного режима DOS, предварительная версия 0.04 (предварительная версия)
  5. ^ Jump up to: а б с д Коул, Дэйв (4 мая 1992 г.). Нейминен, Брюс (ред.). «Re: Расширения MS-DOS DPMI» (PDF) (судебный документ). Майкрософт . стр. 123–124. MSC 00779372/00779373, MX3232616/3232617, Приложение 10 Коула, 21 июня 2001 г. Архивировано (PDF) из оригинала 18 сентября 2018 г. Получено 17 сентября 2018 г. - через Comes v. Microsoft - доказательство 1306 истца. […] [Ральф Липе:] Я думаю, они проверены в Win386 проекте . В корне MSDOS.DOC (посмотрите все файлы .DOC в корне) […] НЕТ! Это чрезвычайно деликатный вопрос, поскольку он, по сути, сообщает […] независимым поставщикам ПО (также известным как DR-DOS и IBM ), как запускать Windows в стандартном режиме . Вам необходимо очистить его от BradSi[lverberg] перед распространением. [Грег Лоуни:] SoftNet делает симулятор . они читают В руководстве по C7 , что вы можете запускать C7 с расширением dos, если ваш симулятор поддерживает расширения MS-DOS для спецификации DPMI. Итак […] они позвонили нам, чтобы узнать, что именно представляют собой эти расширения. Судя по всему, они не документированы. […] Они не так уж и сложны, в основном это то, что MS-DOS и BIOS называют для приложения, и Компания Qualitas без проблем провела их обратный инжиниринг. (Новый 386MAX в бета-версии мог запускать KRNL386 из командной строки, но я считаю, что они отключили эту функцию в своем конечном продукте, чтобы не наступать нам на ноги. 386MAX, конечно, поддерживает C7.) […] Ральф , спецификация была роздана членам комитета ДПМИ? […] [Дэйв Коул:] Нам абсолютно НЕ следует это документировать. […]
  6. ^ Microsoft (31 октября 1990 г.). Соколов, Михаил (ред.). «РАСШИРЕНИЯ API MS-DOS ДЛЯ ХОСТОВ DPMI, предварительная версия 0.02» (перепечатанное предварительное издание с аннотациями) (опубликовано 8 апреля 1999 г.) . Проверено 23 мая 2016 г.
  7. ^ Майкрософт (1989). Соколов, Михаил (ред.). «ИНТЕРФЕЙС ЗАЩИТНОГО РЕЖИМА DOS (DPMI) – СПЕЦИФИКАЦИЯ API защищенного режима для расширенных приложений DOS» (Аннотированное, не полностью реконструированное издание) (опубликовано 8 апреля 1999 г.) . Проверено 23 мая 2016 г.
  8. ^ Jump up to: а б с д Вюртманн, Герольд; Вопперер, Бернхард; Висбёк, Иоганн (1991). «Спецификация DPMI – Введение» [Введение в спецификацию DPMI]. Лекции и сопроводительные тексты для 2-го форума разработчиков Design & Electronics на тему: Архитектура ПК, 17 сентября 1991 г., Мюнхен [ Презентации и дополнительные материалы для второго форума разработчиков по архитектуре ПК 17 сентября 1991 г., Мюнхен ] (книга) (на немецком языке) (1-е изд.). Мюнхен, Германия: Markt & Technik Verlag Aktiengesellschaft . п. 223. (Примечание. Форум организован немецким журналом Design & Elektronik и Intel .)
  9. ^ Комитет ДПМИ (12 марта 1991 г.). Спецификация интерфейса защищенного режима DOS (DPMI) – Версия 1.0 – Интерфейс прикладного программирования (API) для приложений DOS в защищенном режиме (PDF) . 1.0. Интел . стр. 4–5. Код заказа Intel 240977-001. Архивировано из оригинала (PDF) 31 мая 2013 г. Проверено 24 мая 2013 г. Первоначальный прототип DPMI был разработан Microsoft для Windows версии 3.0 при участии Lotus Corporation и Rational Systems в рамках общих усилий по повышению производительности Windows за счет возможности работы ядра Windows в расширенной памяти. Параллельно Intel работала с производителями многозадачных сред, эмуляторов EMS и расширителей DOS, чтобы гарантировать, что расширенная спецификация VCPI сможет полностью использовать функции виртуализации и защиты 80386. В феврале 1990 года стороны, участвовавшие в вышеуказанной деятельности, договорились сформировать комитет DPMI и сформулировать общеотраслевой стандарт для приложений DOS с защищенным режимом. Комитет выпустил первую общедоступную спецификацию DPMI версии 0.9 в мае 1990 года.
  10. ^ Jump up to: а б с Шнайдер, Стефани (17 июня 1994 г.). «Конец DOS – это лишь вопрос времени » . Компьютерная неделя (на немецком языке). Мюнхен, Германия: IDG Business Media GmbH . Архивировано из оригинала 02 января 2022 г. Проверено 02 января 2022 г.
  11. ^ «ФАЙЛ: Поддержка Windows Int 21h и NetBIOS для DPMI» . База знаний . Майкрософт . 04 августа 2004 г. [12 декабря 1999 г.]. КБ65128. Q65128. Архивировано из оригинала 20 февраля 2020 г. Проверено 21 мая 2016 г.
  12. ^ Соколов, Михаил (6 мая 1998 г.). «lИсправка к предыдущему сообщению» . рысь-dev . Архивировано из оригинала 20 февраля 2020 г. Проверено 20 февраля 2020 г.
  13. ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (1994) [ноябрь 1993 г.]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено и включает MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс, США: Эддисон Уэсли . п. 194 . ISBN  0-201-63287-Х . (xviii+856+vi страниц, дискета 3,5 дюйма) Исправления: [1] [2]

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7bb1a00262788b822ecc0b346cf3b4ca__1719174480
URL1:https://arc.ask3.ru/arc/aa/7b/ca/7bb1a00262788b822ecc0b346cf3b4ca.html
Заголовок, (Title) документа по адресу, URL1:
DOS Protected Mode Interface - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)