расширение DOS
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2011 г. ) |
— Расширение DOS это компьютерная программа, работающая под DOS , которая позволяет программному обеспечению работать в среде защищенного режима , даже если операционная система хоста способна работать только в реальном режиме .
Расширители DOS были первоначально разработаны в 1980-х годах после появления процессора Intel 80286 (а позже расширены с помощью Intel 80386 ), чтобы справиться с ограничениями памяти DOS .
Работа расширителя DOS
[ редактировать ]Расширитель DOS — это программа, которая «расширяет» DOS, чтобы программы, работающие в защищенном режиме, могли прозрачно взаимодействовать с базовым API DOS . Это было необходимо, поскольку многие функции, предоставляемые DOS, требуют 16-битных адресов сегментов и смещений, указывающих на ячейки памяти в пределах первых 640 килобайт памяти . Однако в защищенном режиме используется несовместимый метод адресации, при котором регистры сегмента (теперь называемые селекторами) используются для указания на запись в глобальной таблице дескрипторов , которая описывает характеристики сегмента. Два метода адресации являются взаимоисключающими: процессору приходится совершать дорогостоящие переключения в реальный режим (или V86 ) для обслуживания запросов незащищенного режима.
Помимо настройки среды и загрузки самой программы для выполнения, расширитель DOS также предоставляет (среди прочего) уровень трансляции, который поддерживает буферы, выделенные ниже барьера памяти реального режима в 1 МБ. Эти буферы используются для передачи данных между базовой операционной системой реального режима и программой защищенного режима. Поскольку переключение между реальным режимом/режимом V86 и защищенным режимом является относительно трудоемкой операцией, расширитель пытается минимизировать количество переключений, дублируя функциональность многих операций реального режима в своей собственной среде защищенного режима. Поскольку DOS широко использует прерывания для связи между операционной системой и программным обеспечением пользовательского уровня, расширители DOS перехватывают многие общие аппаратные (например, часы реального времени и контроллер клавиатуры) и программные (например, саму DOS и API мыши) прерывания. Некоторые расширители также обрабатывают другие распространенные функции прерываний, такие как процедуры видео BIOS.
По сути, расширитель DOS подобен миниатюрной операционной системе, выполняющей большую часть функций самой базовой операционной системы.
История развития
[ редактировать ]Расширитель DOS, возможно, был изобретен Фар Лапом , но именно компании Tenberry Software (ранее Rational Systems) 386 расширитель DOS/4GW вывел программы DOS с защищенным режимом на массовый рынок. Включенный в состав компиляторов C, C++ и Fortran компании Watcom для процессоров класса 386, он вскоре стал повсеместной основой компьютерных приложений и игр, таких как id Software от успешная Doom .
Хотя первоначально именно бизнес-приложения, требующие большого объема памяти, стимулировали разработку расширителей DOS, именно компьютерные игры привлекли к ним всеобщее внимание. В результате разработки расширителей DOS были созданы два новых программных интерфейса, которые устраняют множество потенциальных конфликтов, которые могут возникнуть из-за уже существующих различных методов управления памятью, а также обеспечивают единый интерфейс для клиентских программ.
Первым из этих интерфейсов был программный интерфейс виртуального управления (VCPI), но его быстро затмила спецификация интерфейса защищенного режима DOS (DPMI), которая выросла из разработки Windows 3.0. [ 1 ] Они предоставили API, через который расширенная программа могла взаимодействовать с программным обеспечением реального режима, выделять память и обрабатывать службы прерываний. Они также предоставили расширителю простой способ настройки переключения в защищенный режим и позволили нескольким программам в защищенном режиме мирно сосуществовать.
расширители DOS
[ редактировать ]- DOS/4G, DOS/4GW и DOS/16M от Tenberry Software, Inc.
- 286|DOS Extender и 386|DOS Extender от Phar Lap . Позже заменен TNT Dos Extender.
- PROT от Эла Уильямса, 32-битного расширителя DOS, опубликованного в журнале Dr. Dobb's Journal. [ 2 ] [ 3 ] и в двух книгах. [ 4 ] [ 5 ] Преимущество этого расширителя заключалось в том, что вызовы DOS и BIOS выполнялись в эмулируемом режиме вместо переключения обратно в реальный режим.
- CauseWay ранее был проприетарным расширителем, конкурирующим с DOS4G. С 2000 года он был выпущен с открытым исходным кодом. Его используют несколько редких игр, таких как Daggerfall .
- DOS/32 как альтернатива DOS/4G Нареча К.
- Ergo (ранее Eclipse, ранее AI Architects) расширители OS/286 и OS/386, а также серверы DPM16 и DPM32.
- 386Power 32-bit DOS Extender — это расширитель для 32-битных приложений на ассемблере . Включает исходный код .
- все Microsoft Windows версии с 1990 года, за исключением ветки NT , включают как сервер DPMI, так и расширитель DOS. [ 6 ]
- HX DOS Extender обеспечивает ограниченную поддержку Win32, позволяя консоли Windows и некоторым приложениям Win32 с графическим интерфейсом (например, Far Manager ) работать под DOS. Он содержит как 16-битные, так и 32-битные серверы DPMI (HDPMI16/HDPMI32) для использования с программами DOS в защищенном режиме. [ 7 ]
- DosWin32 обеспечивает ограниченную поддержку Win32.
- WDosX был ранней реализацией ограниченной поддержки Win32, используемой компилятором TMT Pascal.
- Borland Power Pack представлял собой расширитель, включенный в некоторые из их пакетов разработки, который мог получить доступ к ограниченной части API Win32.
- TASM , опять же от Borland, включал 32RTM с DPMI32VM и RTM с DPMI16BI, два хоста DPMI.
- CWSDPMI от Чарльза В. Сандманна, сервер DPMI для использования с 32-битными программами DOS DJGPP с защищенным режимом .
- QDPMI от Quarterdeck Office Systems — хост DPMI, включенный в QEMM .
- GO32, используемый в старых (до v2) версиях DJGPP и Free Pascal.
- D3X — это сервер DPMI, полностью написанный на ассемблере . Все еще находится в состоянии альфа-версии, но прекращено до завершения.
- DPMIONE — еще один сервер DPMI. Первоначально разработан для 32-битных программ, созданных Borland C++ и Delphi.
- DBOS от Salford Software, 32-битный расширитель DOS с защищенным режимом, используемый в основном их компилятором Fortran FTN77. [ 8 ]
- X32 и X32VM от FlashTek и поддерживаются в качестве цели Digital Mars . компиляторами
- BLINKER от Blink Inc версии 3 и выше предоставлял 286 расширитель DOS для нескольких 16-битных компиляторов DOS, включая CA-Clipper, Microsoft C/C++, PASCAL, FORTRAN и Borland C/C++. Поддерживаются уникальные исполняемые файлы «двойного режима», способные работать как в реальном, так и в защищенном режиме в зависимости от среды выполнения.
- ЕМХ
- PMODE/W, 32-битный расширитель Protected DOS для компилятора Watcom C/C++, недавно выложенный в открытый доступ с июля 2023 года. [ 9 ]
Известные расширенные приложения DOS
[ редактировать ]- Лаборатория графического программного обеспечения ATT «RIO» — графическое программное обеспечение для объектов, независимых от разрешения.
- Adobe Acrobat Reader 1.0 (использует раннюю версию DOS/4GW Professional)
- Автокад 11 (PharLap 386)
- Lotus 1-2-3, выпуск 3 (Rational Systems DOS/16M)
- Oracle Профессионал
- IBM Интерлиф
- Major BBS — пакет программного обеспечения BBS 1980-х годов , в котором использовался расширитель Phar Lap DOS.
- Многозадачное программное обеспечение Quarterdeck DESQview и DESQview/X
- Watcom от C , C++ и Fortran Компиляторы для x86.
- Бесчисленное количество игр для DOS с начала до середины 1990-х годов, в основном использующих DOS/4GW, в том числе:
- id Software от DOOM и его продолжения, а также Quake (созданный с помощью DJGPP )
- от Looking Glass Studios Системный шок
- Parallax Software Происхождение
- Crack dot Злоупотребления Com
- Blizzard Entertainment от Warcraft: Orcs & Humans и Warcraft II: Tides of Darkness
- 3D Realms ' Duke Nukem 3D
- Midway от Mortal Kombat
- от Westwood Studios « Command & Conquer» и «Command & Conquer: Red Alert»
- от DMA Design (ныне Rockstar North) Grand Theft Auto . Более поздние версии игры были портированы на Windows, чтобы сделать ее более совместимой с современными компьютерами.
- Comanche: Maximum Overkill от NovaLogic использовал собственный менеджер памяти режима Unreal , который требовал процессор 80386 и был несовместим с менеджерами памяти и виртуальными ящиками DOS , требуя сложной конфигурации меню загрузки DOS в CONFIG.SYS . Более поздние версии включали расширитель DOS, который решил проблему.
- Ultima VII и Ultima VII Part Two: Serpent Isle от Origin Systems также использовали собственный менеджер памяти режима Unreal , называемый Voodoo Memory Manager, который был несовместим с EMS памятью и менеджерами памяти , такими как EMM386 .
Ссылки
[ редактировать ]- ^ Дункан, Рэй; Петцольд, Чарльз ; Шульман, Эндрю; Бейкер, М. Стивен; Нельсон, Росс П.; Дэвис, Стивен Р.; Мут, Роберт (1992). Расширение DOS: Руководство программиста по DOS в защищенном режиме (2-е изд.). Addison-Wesley Publishing Company, Inc., стр. 433–462. ISBN 0-201-56798-9 .
- ^ Уильямс, Эл (октябрь 1990 г.). «Создайте свой собственный расширитель DOS: Часть I». Журнал доктора Добба . 15 (10). Технология CMP : 16–18, 20, 24. ISSN 1044-789X .
- ^ Уильямс, Эл (ноябрь 1990 г.). «Создайте свой собственный расширитель DOS: Часть II». Журнал доктора Добба . 15 (11). Технология CMP : 74, 76, 80, 81–83, 85, 122–128, 130. ISSN 1044-789X .
- ^ Уильямс, Эл (1991). DOS 5: Руководство разработчика . Редвуд-Сити, Калифорния, США: Markt&Technik . ISBN 1-55851-177-6 .
- ^ Уильямс, Эл (1993). DOS 6: Руководство разработчика . Рынок и технологии. ISBN 1-55851-309-4 .
- ^ Уильямс, Эл (1993). Защищенный режим DOS и Windows: программирование с использованием расширителей DOS на языке C. Аддисон-Уэсли . п. 30. ISBN 0-201-63218-7 .
- ^ «Расширитель HX DOS» .
- ^ FTN77 Компилятор Фортрана
- ^ Чарльз Шеффолд, Томаш Питель. «ПРЕЖИМ/ВТ» . Проверено 13 декабря 2023 г.
Внешние ссылки
[ редактировать ]- «Расширитель DOS на вики FreeDOS» . Архивировано из оригинала 2 марта 2009 года . Проверено 12 августа 2009 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - HX-DOS
- Список расширителей DOS от Free Country