Здравствуйте, alpha21264, Вы писали:
FLY>>> Мне кажется уже сейчас это всё в режиме эмуляции должны идти бодро CRT>>что значит "кажется"? CRT>>Что запустить какую то софтину виртуальную машину поднимать?
A>По моему не все осознают, что нынешние виртуальные машины работают так бодро, A>потому что они исполняют родной набор команд на родном процессоре.
И потому что им помогают в опознании всех проблемных мест.
Не редуцируясь до Попека-Голдберга (что слишком жёстко и только один из вариантов), но когда например SMSW не была привилегированной, всё было сильно сложнее.
A>Виртуальность заключается лишь в двойном преобразовании адресов. A>А когда придётся действительно эмулировать отсутствующие команды, то... A>производительность просядет в 10 а может быть и в 100 раз. A>На эмуляторы АРМ-ов посмотрите.
Вообще-то это давно неплохо решается — см. qemu.
Исходной странице кода эмулируемого процессора ставится результат трансляции в машинный код хозяйского процессора. Такой себе JIT из ассемблера в ассемблер. Замедление есть, конечно, но не 100 раз. Иногда даже меньше чем в 10.