Русская Википедия:Расширитель DOS

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Переработать Расширитель DOS (также Шаблон:Lang-en) — технология, позволяющая программам для операционных систем семейства DOS работать в защищённом режиме процессора. Существуют 16- и 32-битные расширители DOS: 16-битные расширители предназначены для работы на процессорах Intel 80286 и выше, 32-битные — Intel 80386 и выше.

Работа в защищённом режиме нужна была в первую очередь для преодоления ограничения адресации в реальном режиме (программа, выполняющаяся в реальном режиме процессора под управлением DOS, может адресовать только 1 Мб), не прибегая к приёмам вроде переключения банков памяти.

32-битные расширители также позволили DOS-программам выполняться в 32-битном режиме, который во многих случаях более эффективен по производительности, чем 16-битный.

Расширители DOS включают инструментальные средства для разработки приложений, часто поставлявшиеся с компиляторами, а также выполнимый код либо в виде отдельного файла (выполнимого или подгружаемого) или группы файлов, либо встраиваемый в файл продукта. Многие компиляторы имели специальные параметры и библиотеки для генерации кода под конкретный расширитель DOS.

Расширитель DOS предоставляет прикладной программе различные сервисы по управлению памятью и прочими ресурсами через программные прерывания.

Всем расширителям DOS приходится вызывать DOS API для доступа к диску, сети и т. д. На Intel 80386 это стало осуществлять легче, поскольку DOS можно оставить выполняться внутри задачи виртуального 8086 режима, к которой может обращаться 16- или 32-битный код. Однако на Intel 80286 вызывать DOS было существенно сложнее, потому что у 286 была только инструкция для переключения из реального в защищённый режим, а обратно не было. Для обхода этого ограничения применялись сброс процессора через контроллер клавиатуры или недокументированная инструкция Шаблон:Не переведено 2, или функция BIOS, которая сама использовала один из этих методов.

Изначально расширители DOS сами выполняли переключение в защищённый режим и управляли расширенной памятью. Позднее, когда в практику вошло использование специальных менеджеров защищённой памяти, таких как Шаблон:Не переведено 2 или Шаблон:Не переведено 2 на 80386, стало необходимым создать возможность для будущих программ входить и в защищённый режим, был разработан Шаблон:Не переведено 2, который предоставлялся этими менеджерами. Однако это плохо состыко́вывалось с многозадачными ОС и не поддерживалось Microsoft, чья альтернатива, интерфейс DPMI, стала более распространённой.

Наибольшего успеха добился расширитель DOS/4G (поставлявшийся с компилятором Watcom как DOS/4GW), не в последнюю очередь благодаря игре Doom, написанной под него.

Свой расширитель DOS присутствует и в Microsoft Windows, начиная с версии 3.0 (кроме реального режима в 3.0).

Среди остальных расширителей можно отметить:

  • Phar Lap 386/DOS-Extender
  • Quarterdeck DESQview и DESQview /X, обеспечивающий многозадачную и многооконную работу обычных программ DOS;
  • 16- и 32-битные расширители DOS фирмы Borland, поставлявшиеся с компиляторами C++ и Паскаля
  • GO32 (используется в GCC и Free Pascal)
  • WDOSX [1] (эмулирует подмножество Win32 и позволяет некоторым консольным программам выполняться под DOS)
  • HX DOS Extender [2] — эмулирует Win32 и позволяет некоторым консольным и OpenGL-программам выполняться
  • CWSDPMI Используется в программах DOS, созданных с помощью DJGPP, является заменой GO32
  • DOS/32 Advanced DOS Extender — наиболее современный расширитель DOS, свободно используемый и с открытым исходным текстом.

Существует также проект создания операционной системы FreeDOS-32, которая будет напрямую выполнять системные вызовы 32-битных программ.

См. также

Ссылки