Interested Article - Расширитель DOS

Расширитель DOS (также англ. DOS extender) — технология, позволяющая программам для операционных систем семейства 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 была только инструкция для переключения из реального в защищённый режим, а обратно не было. Для обхода этого ограничения применялись сброс процессора через контроллер клавиатуры или недокументированная инструкция ( англ. ), или функция BIOS , которая сама использовала один из этих методов.

Изначально расширители DOS сами выполняли переключение в защищённый режим и управляли расширенной памятью. Позднее, когда в практику вошло использование специальных менеджеров защищённой памяти, таких как ( англ. ) или ( англ. ) на 80386, стало необходимым создать возможность для будущих программ входить и в защищённый режим, был разработан ( англ. ), который предоставлялся этими менеджерами. Однако это плохо состыко́вывалось с многозадачными ОС и не поддерживалось 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 ( эмулирует подмножество Win32 и позволяет некоторым консольным программам выполняться под DOS)
  • HX DOS Extender эмулирует Win32 и позволяет некоторым консольным и OpenGL -программам выполняться
  • Используется в программах DOS, созданных с помощью DJGPP , является заменой GO32
  • DOS/32 Advanced DOS Extender — наиболее современный расширитель DOS, свободно используемый и с открытым исходным текстом.

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

См. также

Ссылки

  • (англ.)

Same as Расширитель DOS