Dmitry67 wrote:zVlad, ну так что?
В последнем посте я писал что:
Добавив к системе команд IBM всего одну команду - GetCurrentProcessorMode(), мы разрушаем виртуализируемость, но не нарушаем МП/МЗ.
Либо опровергайте, либо соглашайтесь
Мячик на ваей стороне
Дмитрий, во-первых Вы забыли добавить что команда эта должна был непривилегированной. Во-вторых, объясните какое отношение к МЗ/МП/В имеет решение каким командам быть привилегированными а каким нет? Безусловно часть команд прямо становится привилегированными именно потому что мы хочем создавать МЗ/МП/В. В однозадачной среде нам может вообще не нужно ограничивать задачу, в многозадачной больше и т.д. Но вот что в творчестве Интел совсем не понятно так это команды, которые в разных режимах дают разный результат и не дают прерывания. Про такие команды на МФ я никогда не слыхал (см. ниже).
Узнать в каком состоянии выполняется код можно и без соответствующей команды. На МФ статус хранится в PSW - program status word и..... к моему удивлению команда extract PSW не привилегированная, что как известно не мешает МФ быть виртулизуемым 100%. Вот так, Дима, неожиданно для себя самого я Вам отвечаю. А начал я с того что статус можно узнать и без такой команды.
Кстати когда ОС на ВМ выполняет экстракт PSW команду то ей становится известно что она выполняется на ВМ. Опять же в современном МФ уже строго говоря нет классической реальной машины. Обязательно есть хотя бы одна партиция.
Заглянул в наш основополагающий документ:
z/Architecture Principles of Operation
и поразился как много изменилось с тех пор как я последний раз в серьез писал программы на Ассемблере. Оказывается уже есть и семи-привилегированные команды на МФ (см. выше).
Дима, а как насчет защиты памяти?