Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | |
А-а-а. Ну да. Пока не задумаешься, как оно реализовано действительно выглядит забавно 03.05.07 10:20 Число просмотров: 2500
Автор: amirul <Serge> Статус: The Elderman
|
В общем то виртуализация и там и там софтовая, просто гипервизор вынужден обрабатывать больше эксепшенов, а без VT код статически анализируется на предмет "опасных" инструкций и туда прямо наживо вставляются заглушки. Результат кэшируется и как следствие - при неиспользовании VT происходит меньше переключений контекста/перезагрузок CR3 (с инвалидацией всех кэшей и TLB-ов) и прочих прелестей.
|
<software>
|
VMWare 26.04.07 17:13
Автор: tatar_0x4e Статус: Member
|
Можно ли как-нибудь заставить виртуальную машину работать с 3d party картой воткнутой в PCI ? Более общий вопрос, можно ли вообще сделать так чтобы виртуальный машины увидели нестандартное железо (что-нибудь, кроме сетевухи, cdrom и т.п.) ?
|
|
VMWare - нет 26.04.07 19:31
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
Вряд ли кто-нибудь пустит тебя к PCI шине из виртуальной машины.
|
| |
приколись 28.04.07 14:51
Автор: z0 <z0> Статус: Member
|
цитата из http://www.ixbt.com/cm/vmware-server-esx-server.shtml
VMware Server экспериментально поддерживает технологию аппаратной виртуализации компании Intel и позволяет использовать ее для поддержки виртуальных машин. Стоит отметить, что аппаратная виртуализация по исследованиям инженеров VMware пока является более медленной, чем программная, поэтому не рекомендуется включать поддержку программной виртуализации в целях лучшего быстродействия.
|
| | |
И что? 30.04.07 11:32
Автор: amirul <Serge> Статус: The Elderman
|
> цитата из > http://www.ixbt.com/cm/vmware-server-esx-server.shtml
> VMware Server экспериментально поддерживает технологию > аппаратной виртуализации компании Intel и позволяет > использовать ее для поддержки виртуальных машин. Стоит
Intel Virtualization Technology (Intel VT) и AMD Virtualization (AMD-V aka Pacifia) не имеют никакого отношения к PCI.
http://en.wikipedia.org/wiki/Intel_virtualization_technology
> отметить, что аппаратная виртуализация по исследованиям > инженеров VMware пока является более медленной, чем > программная, поэтому не рекомендуется включать поддержку > программной виртуализации в целях лучшего быстродействия.
|
| | | |
просто прикольно. аппаратная поддержка тормознее софтовой 02.05.07 16:56
Автор: z0 <z0> Статус: Member
|
> Intel Virtualization Technology (Intel VT) и AMD > Virtualization (AMD-V aka Pacifia) не имеют никакого > отношения к PCI. >
по теме все правильно сказано - нельзя
|
| | | | |
А-а-а. Ну да. Пока не задумаешься, как оно реализовано действительно выглядит забавно 03.05.07 10:20
Автор: amirul <Serge> Статус: The Elderman
|
В общем то виртуализация и там и там софтовая, просто гипервизор вынужден обрабатывать больше эксепшенов, а без VT код статически анализируется на предмет "опасных" инструкций и туда прямо наживо вставляются заглушки. Результат кэшируется и как следствие - при неиспользовании VT происходит меньше переключений контекста/перезагрузок CR3 (с инвалидацией всех кэшей и TLB-ов) и прочих прелестей.
|
| | | | | |
ты хочешь сказать что при каждой загрузке страницы в память... 03.05.07 15:19
Автор: z0 <z0> Статус: Member
|
ты хочешь сказать что при каждой загрузке страницы в память vmware.exe дизассемблирует
инструкции (страница не обязательно начинается на границе инструкции) и после анализа
результата патчит некотороые байты? что-то сомнительно с т.з. перформанса
даже если учесть что это нужно только для ядра и только один раз на страницу
я сам точно не знаю но краем уха слышал что якобы вара работает в 1 ринге и эмулируются
соответственно только привилегированные инструкции
в этом случае код не "статически анализируется на предмет "опасных" инструкций"
|
| | | | | | |
Почти 04.05.07 11:23
Автор: 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. Результат никак не кешируется и при каждом проходе через привелегированную инструкцию ее обработка будет производиться в обработчике исключения.
Вот по этим двум причинам аппаратная виртуализация (гипервизор) медленнее "программной".
|
| | | | | | | |
мы наверное не влезем в рамки, как это говорится красиво -... 04.05.07 16:41
Автор: z0 <z0> Статус: Member
|
мы наверное не влезем в рамки, как это говорится красиво - подробное рассмотрение
этого вопроса выходит за пределы этой книги )))
я читал какой-то ПДФ по интелВТ и там было так - в систему комманд добавляются
2 инструкции - не помню точного названия, типа ENTER и LEAVE
и алгоритм похож на вход в защищенный режим - готовятся структурки данных, вызывается
ENTER - и код уже выполняется внутри ВМ, все системные регистры свои, таблицы страниц
IOmap короче все железо если смотреть со стороны проца - виртуализовано
ничего нигде не перехватывается, не патчится, работает как бы на полной скорости
и практические результаты были вроде бы тормознее в основном потому что как раз IOmap
таким образом виртуализированный к удивлению самих разработчиков работал
медленнее чем ексепшын из ринг-1, но подробностей почему не было, написали
только что мол в след. версии будем IOmap полностью реинжинирить
короче говоря, тема очень интересная, процессорная мощность на физ.пределе,
за виртуализацией как минимум половина будущего (вторая половина за многопоточностью,
там все еще хуже, не так просто как хотелось бы интелу)
|
|
Принципиальная возможность есть 26.04.07 19:22
Автор: amirul <Serge> Статус: The Elderman
|
Например если написать пару драйверов - один для хоста и один для таргета. Надо только придумать способ обмена инфой. Но писать и отлаживать это очень муторно
Штатными же средствами VMware этого сделать нельзя.
|
|
|