информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / software
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А-а-а. Ну да. Пока не задумаешься, как оно реализовано действительно выглядит забавно 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 этого сделать нельзя.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach