Режим виртуального 8086

Режим виртуального 8086

Режим виртуального 8086 (V86, VM86, иногда просто виртуальный режим) — режим адресации процессоров семейства x86 совместимый с прародителем семейства — процессором Intel 8086. Является подрежимом защищенного. Впервые появился в процессоре 80386 и предназначался главным образом для создания т. н. «виртуальных DOS-машин», виртуальных сред для исполнения приложений господствовавшей в то время в мире персональных ЭВМ операционной системы MS-DOS. Является первой попыткой корпорации Intel внедрить в свои процессоры технологии аппаратной виртуализации.

Содержание

Особенности

Задача виртуального 8086 представляет собой обычную задачу защищенного режима со следующими особенностями:

  • Режим активируется установкой флажка EFLAGS.VM с помощью привилегированной инструкции (IRET, JMP <task>) (непривилегированная команда POPF, даже исполняясь на уровне привилегий 0, состояния этого флажка не изменяет).
  • Адрес, аналогично реальному режиму, является двухкомпонентным, состоящим из 16-битного номера 16-байтного параграфа, задающего базовый адрес сегмента и 16-битного смещения внутри сегмента;
  • Исходя из формата адреса, возможна адресация только нижнего мегабайта памяти (+65520 байт HMA); однако, благодаря страничному отображению, в эту область могут быть отображены произвольные страницы памяти, что позволяет организовать мультизадачность для задач DOS;
  • Задача исполняется с самыми низкими привилегиями в кольце 3.
  • Прерывания обрабатываются обычными обработчиками ОС защищенного режима. Таблица векторов прерываний по адресу 0 не используется (если не активно расширение VME). Модуль операционной системы, часто называемый V86-монитором, может эмулировать прерывание реального режима, программно обращаясь к этой таблице;
  • Меняется значение поля EFLAGS.IOPL. В режиме V86 оно используется для перехвата некоторых инструкций (CLI, STI, PUSHF, POPF, INT, IRET), а для перехвата ввода/вывода требуется использование битовой карты разрешения портов в сегменте состояния задачи;

Расширения

Начиная с процессора Pentium в режим V86 были введены опциональные функции: таблица перенаправления прерываний и виртуализация флажка прерываний. Теперь процессор, без вмешательства ОС мог непосредственно использовать таблицу векторов прерываний по адресу 0, причем не для всех прерываний, а только для тех, что разрешила операционная система с помощью специальной битовой карты (аналогичной карте ввода/вывода) в сегменте состояния задачи. Виртуализация флага прерываний также уменьшает число исключительных ситуаций, требующих программной обработки операционной системой, что, в свою очередь, сказывается на общей производительности.

V86 и x86-64

Процессоры с архитектурой x86-64 поддерживают V86 только в наследственном, но не в длинном режиме. В длинном режиме флажок EFLAGS.VM попросту игнорируется. Поэтому, для поддержки виртуальных DOS-задачи требуется переключение в наследственный режим, сопряженное с двойным сбросом MMU. А поскольку роль DOS и её приложений в наши дни практически сошла на нет, операционные системы x86-64 не включают такого рода поддержку V86. Тем не менее, некоторые современные средства аппаратной виртуализации позволяют виртуализовать как реальный режим, так и V86, получая в результате двойную виртуализацию.

Поддержка операционными системами

  • MS-DOS — В DOS режим V86 использовался для эмуляции дополнительной памяти по стандарту LIM/EMS при помощи специального драйвера EMM386. Поскольку в этом режиме, в отличие от реального, возможна трансляция страниц, дополнительная память эмулировалась с помощью отображения расширенной в окно адресов UMB/EMS. Также драйвер позволял в адресах UMB размещать данные и резидентные программы.
  • OS/2 — В составе OS/2 имелась штатная виртуальная DOS-машина.
  • Windows — В составе Windows начиная с версии 3.0 появился 386 расширенный режим, который позволял позволял создавать V86-задачи для программ DOS («DOS в окне»).
  • Linux — ОС Linux/x86 поддерживается системный вызов vm86() которым активно пользуется программа DOSEMU — свободная реализация виртуальной DOS-машины (в последнее время вытесненяемая эмулятором DOSBox, поскольку эмуляция, несмотря на большие ресурсозатраты более точно имитирует работу компьютера, что было важно для программ того времени, довольно часто обращающихся к аппаратным средствам непосредственно).
  • FreeBSD — В ОС FreeBSD/i386 имеется поддержка V86 и встренная программа doscmd, обладающая гораздо меньшими возможностями, чем DOSEMU, поэтому практически не используемая.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Режим виртуального 8086" в других словарях:

  • 8086 — <<   Intel 8086   >> Центральный процессор Микропроцессор Intel 8086 Производство …   Википедия

  • Intel 8086 — <<   Intel 8086   >> Центральный процессор Микропроцессор Intel 8086 Производство: 8 июня 1978 Производители …   Википедия

  • Режим защищённого виртуального адреса (защищённый режим) — режим работы микропроцессора. Разработан фирмой Digital Equipments (DEC) для 32 разрядных компьютеров VAX 11, а так же фирмой Intel начиная с 32 разрядных процессоров 80386. Применяется в процессорах других производителей. Данный режим позволил… …   Википедия

  • Режим защищённого виртуального адреса — Защищённый режим (режим защищённой виртуальной адресации)  режим работы процессора. Разработан фирмой Digital Equipment (DEC) для 32 разрядных компьютеров VAX 11, а также фирмой 80386. Несмотря на то, что защищённый режим частично был реализован… …   Википедия

  • Защищенный режим — Защищённый режим (режим защищённой виртуальной адресации)  режим работы процессора. Разработан фирмой Digital Equipment (DEC) для 32 разрядных компьютеров VAX 11, а также фирмой 80386. Несмотря на то, что защищённый режим частично был реализован… …   Википедия

  • Защищённый режим — (режим защищённой виртуальной адресации)  режим работы x86 совместимых процессоров. Частично был реализован уже в процессоре 80286, но там существенно отличался способ работы с памятью, так как процессоры еще были 16 битными и не была… …   Википедия

  • X86 — 80486 DX2 x86 (Intel 80x86)  аппаратная платформа: архитектура микропроцессора и соответствующий набор инструкций, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA …   Википедия

  • x86 — 80486 DX2 x86 (англ. Intel 80x86)  архитектура процессора c одноимённым наборо …   Википедия

  • Intel 80386 — <<   Intel 80386   >> Центральный процессор Микропроцессор Intel 80386 Производство …   Википедия

  • 80386 — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту статью …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»