Интерфейс защищенного режима DOS
Аббревиатура | ДПМИ |
---|---|
Статус | Опубликовано |
Год начался | 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 групп:
- Borland International ( Borland C, Turbo Pascal )
- Корпорация IBM ( ПК DOS , OS/2 )
- AI Architects / Ergo Computer Solutions / Eclipse Computer Solutions / Ergo Computing ( для OS/286 , OS/386 ) расширители DOS
- Intelligent Graphics Corporation ( VM/386 ) многопользовательская DOS
- Корпорация Intel ( 286 , 386 , 486 микропроцессоров)
- Locus Computing Corporation ( Слияние )
- Корпорация развития Лотуса ( Лотос 1-2-3 )
- Корпорация Microsoft ( MS-DOS , Microsoft Windows )
- Программное обеспечение Phar Lap ( DOS|286 , DOS|386 , TNT )
- Phoenix Technologies ( Phoenix BIOS , PMate , PForCe , Plink-86 )
- Офисные системы Quarterdeck ( QEMM , DESQview , DESQview/X )
- Программное обеспечение Rational Systems / Tenberry ( DOS DOS/16M , DOS/4G , DOS/4GW ) расширители
См. также
[ редактировать ]- Программный интерфейс виртуального управления (VCPI)
- Службы защищенного режима DOS (DPMS)
- Маскировка спирали
- Подсистема ввода-вывода NetWare (NIOS)
- Многопользовательская федерация DOS
Примечания
[ редактировать ]- ^ KRNL386.SYS DR DOS "Пантера" имеет строки авторских прав "1991,1992".
Ссылки
[ редактировать ]- ^ 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 все еще существует. но он отступил в сумеречную зону недокументированной функциональности. Недокументировано, но вряд ли непригодно для использования […]
- ^ Дункан, Рэй; Петцольд, Чарльз ; Шульман, Эндрю; Бейкер, М. Стивен; Нельсон, Росс П.; Дэвис, Стивен Р.; Мут, Роберт (1992). Расширение DOS: Руководство программиста по DOS в защищенном режиме . 2 (2-е изд.). Addison-Wesley Publishing Company, Inc., стр. 433–436. ISBN 0-201-56798-9 .
- ^ Шмит, Майкл Л. (1995). Инструменты оптимизации процессора Pentium (1-е изд.). Кембридж, Массачусетс, США: Academic Press, Inc. ( AP Professional ). ISBN 0-12-627230-1 .
- ^ Microsoft (осень 1989 г.), Спецификация интерфейса защищенного режима DOS, предварительная версия 0.04 (предварительная версия)
- ^ 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.) […] Ральф , спецификация была роздана членам комитета ДПМИ? […] [Дэйв Коул:] Нам абсолютно НЕ следует это документировать. […]
- ^ Microsoft (31 октября 1990 г.). Соколов, Михаил (ред.). «РАСШИРЕНИЯ API MS-DOS ДЛЯ ХОСТОВ DPMI, предварительная версия 0.02» (перепечатанное предварительное издание с аннотациями) (опубликовано 8 апреля 1999 г.) . Проверено 23 мая 2016 г.
- ^ Майкрософт (1989). Соколов, Михаил (ред.). «ИНТЕРФЕЙС ЗАЩИТНОГО РЕЖИМА DOS (DPMI) – СПЕЦИФИКАЦИЯ API защищенного режима для расширенных приложений DOS» (Аннотированное, не полностью реконструированное издание) (опубликовано 8 апреля 1999 г.) . Проверено 23 мая 2016 г.
- ^ Jump up to: а б с д Вюртманн, Герольд; Вопперер, Бернхард; Висбёк, Иоганн (1991). «Спецификация DPMI – Введение» [Введение в спецификацию DPMI]. Лекции и сопроводительные тексты для 2-го форума разработчиков Design & Electronics на тему: Архитектура ПК, 17 сентября 1991 г., Мюнхен [ Презентации и дополнительные материалы для второго форума разработчиков по архитектуре ПК 17 сентября 1991 г., Мюнхен ] (книга) (на немецком языке) (1-е изд.). Мюнхен, Германия: Markt & Technik Verlag Aktiengesellschaft . п. 223. (Примечание. Форум организован немецким журналом Design & Elektronik и Intel .)
- ^ Комитет ДПМИ (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 года.
- ^ Jump up to: а б с Шнайдер, Стефани (17 июня 1994 г.). «Конец DOS – это лишь вопрос времени » . Компьютерная неделя (на немецком языке). Мюнхен, Германия: IDG Business Media GmbH . Архивировано из оригинала 02 января 2022 г. Проверено 02 января 2022 г.
- ^ «ФАЙЛ: Поддержка Windows Int 21h и NetBIOS для DPMI» . База знаний . Майкрософт . 04 августа 2004 г. [12 декабря 1999 г.]. КБ65128. Q65128. Архивировано из оригинала 20 февраля 2020 г. Проверено 21 мая 2016 г.
- ^ Соколов, Михаил (6 мая 1998 г.). «lИсправка к предыдущему сообщению» . рысь-dev . Архивировано из оригинала 20 февраля 2020 г. Проверено 20 февраля 2020 г.
- ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (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]
Дальнейшее чтение
[ редактировать ]- Введение в интерфейс защищенного режима DOS — технический документ . Интел . 1993. Код заказа Intel 240787-003. (22 страницы)
- Спецификация интерфейса защищенного режима DOS (DPMI) — API защищенного режима для расширенных приложений DOS — версия 0.9 . Интел . 26 июля 1990 г. Архивировано из оригинала 25 апреля 2012 г. (112 страниц)
- Комитет ДПМИ (12 марта 1991 г.). Спецификация интерфейса защищенного режима DOS (DPMI) – Версия 1.0 – Интерфейс прикладного программирования (API) для приложений DOS в защищенном режиме (PDF) . Интел . Код заказа Intel 240977-001. Архивировано из оригинала (PDF) 31 мая 2013 г. Проверено 31 мая 2013 г. (160 страниц)
- Соколов, Михаил (26 апреля 1998 г.). «Немного истории о ДПМИ» . Архивировано из оригинала 22 мая 2016 г. [3] [4]
- Чуй, Пол (1 февраля 1992 г.). «Недокументированный DOS из защищенного режима Windows 3» . Журнал доктора Добба . Архивировано из оригинала 20 сентября 2018 г. Проверено 20 сентября 2018 г.
- «MS-DOS 5.0 DPMI» (на английском и японском языках). 24 июля 2016 г. [22 июня 2016 г.]. Архивировано из оригинала 17 сентября 2018 г. Проверено 17 сентября 2018 г. (MSDPMI на японской MS-DOS 5.00A для платформы PC-98 .)
Внешние ссылки
[ редактировать ]- «Спецификация интерфейса защищенного режима DOS (DPMI) — API защищенного режима для расширенных приложений DOS — версия 0.9» (редакция, преобразованная в HTML). Tenberry Software, Inc. , 1998 г. [1990-07-26]. Архивировано из оригинала 21 мая 2016 г. Проверено 19 декабря 2006 г.
- «Спецификация API программирования DPMI 1.0» (редакция, преобразованная в HTML). Диджей Делори . Апрель 1996 г. [1991]. Архивировано из оригинала 21 мая 2016 г. Проверено 28 июля 2019 г.
- Microsoft (31 октября 1990 г.). «Расширения API MS-DOS для предварительной версии 0.02 хостов DPMI» . ( Альтернативная ссылка HTTPS )
- Microsoft (11 марта 1991 г.). «Расширения API MS-DOS для предварительной версии 0.04 хостов DPMI» (PDF) .
- Сандманн, Чарльз В. «CWSDPMI» . Архивировано из оригинала 16 ноября 2015 г.
- Иафет. «Расширитель HX DOS» . Архивировано из оригинала 13 октября 2014 г.
- Смит, Боб. «Файл документации DPMIONE версии 0.91» . Архивировано из оригинала 21 мая 2016 г. Проверено 28 июля 2019 г.