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

Поделись знанием:
(перенаправлено с «V86»)
Перейти к: навигация, поиск

Режим виртуального 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, поэтому практически не используемая.


Напишите отзыв о статье "Режим виртуального 8086"

Отрывок, характеризующий Режим виртуального 8086

– Да… я скажу ему, – говорил Пьер, но… – Он не знал, что сказать.
Наташа видимо испугалась той мысли, которая могла притти Пьеру.
– Нет, я знаю, что всё кончено, – сказала она поспешно. – Нет, это не может быть никогда. Меня мучает только зло, которое я ему сделала. Скажите только ему, что я прошу его простить, простить, простить меня за всё… – Она затряслась всем телом и села на стул.
Еще никогда не испытанное чувство жалости переполнило душу Пьера.
– Я скажу ему, я всё еще раз скажу ему, – сказал Пьер; – но… я бы желал знать одно…
«Что знать?» спросил взгляд Наташи.
– Я бы желал знать, любили ли вы… – Пьер не знал как назвать Анатоля и покраснел при мысли о нем, – любили ли вы этого дурного человека?
– Не называйте его дурным, – сказала Наташа. – Но я ничего – ничего не знаю… – Она опять заплакала.
И еще больше чувство жалости, нежности и любви охватило Пьера. Он слышал как под очками его текли слезы и надеялся, что их не заметят.
– Не будем больше говорить, мой друг, – сказал Пьер.
Так странно вдруг для Наташи показался этот его кроткий, нежный, задушевный голос.
– Не будем говорить, мой друг, я всё скажу ему; но об одном прошу вас – считайте меня своим другом, и ежели вам нужна помощь, совет, просто нужно будет излить свою душу кому нибудь – не теперь, а когда у вас ясно будет в душе – вспомните обо мне. – Он взял и поцеловал ее руку. – Я счастлив буду, ежели в состоянии буду… – Пьер смутился.
– Не говорите со мной так: я не стою этого! – вскрикнула Наташа и хотела уйти из комнаты, но Пьер удержал ее за руку. Он знал, что ему нужно что то еще сказать ей. Но когда он сказал это, он удивился сам своим словам.
– Перестаньте, перестаньте, вся жизнь впереди для вас, – сказал он ей.
– Для меня? Нет! Для меня всё пропало, – сказала она со стыдом и самоунижением.
– Все пропало? – повторил он. – Ежели бы я был не я, а красивейший, умнейший и лучший человек в мире, и был бы свободен, я бы сию минуту на коленях просил руки и любви вашей.
Наташа в первый раз после многих дней заплакала слезами благодарности и умиления и взглянув на Пьера вышла из комнаты.
Пьер тоже вслед за нею почти выбежал в переднюю, удерживая слезы умиления и счастья, давившие его горло, не попадая в рукава надел шубу и сел в сани.
– Теперь куда прикажете? – спросил кучер.
«Куда? спросил себя Пьер. Куда же можно ехать теперь? Неужели в клуб или гости?» Все люди казались так жалки, так бедны в сравнении с тем чувством умиления и любви, которое он испытывал; в сравнении с тем размягченным, благодарным взглядом, которым она последний раз из за слез взглянула на него.
– Домой, – сказал Пьер, несмотря на десять градусов мороза распахивая медвежью шубу на своей широкой, радостно дышавшей груди.
Было морозно и ясно. Над грязными, полутемными улицами, над черными крышами стояло темное, звездное небо. Пьер, только глядя на небо, не чувствовал оскорбительной низости всего земного в сравнении с высотою, на которой находилась его душа. При въезде на Арбатскую площадь, огромное пространство звездного темного неба открылось глазам Пьера. Почти в середине этого неба над Пречистенским бульваром, окруженная, обсыпанная со всех сторон звездами, но отличаясь от всех близостью к земле, белым светом, и длинным, поднятым кверху хвостом, стояла огромная яркая комета 1812 го года, та самая комета, которая предвещала, как говорили, всякие ужасы и конец света. Но в Пьере светлая звезда эта с длинным лучистым хвостом не возбуждала никакого страшного чувства. Напротив Пьер радостно, мокрыми от слез глазами, смотрел на эту светлую звезду, которая, как будто, с невыразимой быстротой пролетев неизмеримые пространства по параболической линии, вдруг, как вонзившаяся стрела в землю, влепилась тут в одно избранное ею место, на черном небе, и остановилась, энергично подняв кверху хвост, светясь и играя своим белым светом между бесчисленными другими, мерцающими звездами. Пьеру казалось, что эта звезда вполне отвечала тому, что было в его расцветшей к новой жизни, размягченной и ободренной душе.


С конца 1811 го года началось усиленное вооружение и сосредоточение сил Западной Европы, и в 1812 году силы эти – миллионы людей (считая тех, которые перевозили и кормили армию) двинулись с Запада на Восток, к границам России, к которым точно так же с 1811 го года стягивались силы России. 12 июня силы Западной Европы перешли границы России, и началась война, то есть совершилось противное человеческому разуму и всей человеческой природе событие. Миллионы людей совершали друг, против друга такое бесчисленное количество злодеяний, обманов, измен, воровства, подделок и выпуска фальшивых ассигнаций, грабежей, поджогов и убийств, которого в целые века не соберет летопись всех судов мира и на которые, в этот период времени, люди, совершавшие их, не смотрели как на преступления.