Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Почти 04.05.07 11:23 Число просмотров: 2745
Автор: amirul <Serge> Статус: The Elderman
|
> ты хочешь сказать что при каждой загрузке страницы в память > vmware.exe дизассемблирует
Зачем дизассемблить все страницы? Ведь большая часть будет все таки данными, а не кодом. Насколько я помню во фрейме page fault-а указывается причина fault-а и fetch и read - разные типы фолтов. Анализировать надо только фетчи. Как решается проблема с последующим чтением памяти, которая пропатчена (при чтении должно возвращаться старое содержимое, а PF-а уже не будет, так как страница уже в памяти) я не знаю, хотя идеи есть.
> инструкции (страница не обязательно начинается на границе > инструкции) и после анализа > результата патчит некотороые байты? что-то сомнительно с > т.з. перформанса > даже если учесть что это нужно только для ядра и только > один раз на страницу
> я сам точно не знаю но краем уха слышал что якобы вара > работает в 1 ринге и эмулируются > соответственно только привилегированные инструкции
Все правильно слышал.
> в этом случае код не "статически анализируется на предмет > "опасных" инструкций"
Ну да. Но прикол в том, что x86 не отвечает критериям Попека и Голдберга
http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements
и к примеру инструкция SIDT не является привелегированной. Таким образом если кто-то (например target OS) захочет посмотреть содержимое IDT, GDT, LDT то никакого эскепшена не произойдет и код target-машины получит содержимое соответствующих регистров host-машины. Есть еще проблемы с кольцами защиты, например. Да и вообще до фига.
А вот как раз полное выполнение всех "опасных" инструкций через эксепшены это и есть аппаратная виртуализация и именно потому, что:
1. Эксепшенов значительно больше, потому что больше привелегированных инструкций
2. Результат никак не кешируется и при каждом проходе через привелегированную инструкцию ее обработка будет производиться в обработчике исключения.
Вот по этим двум причинам аппаратная виртуализация (гипервизор) медленнее "программной".
|
- VMWare - tatar_0x4e 26.04.07 17:13 [2201]
|
|
|