Как стать автором
Обновить

Комментарии 8

Хорошая вводная шпаргалка получилась, но "маловато будет" :) Раскрывайте тему, как эмулируются аппаратные устройства, как работает паравиртуализация на KVM, устройства virtio-net, -blk, -balloon. Проброс реальных устройств с помощью IO-MMU. Получится замечательная серия.

НЛО прилетело и опубликовало эту надпись здесь
KVM это божественно.
Не могу себе представить нормальное существование без него.
Напишите в комментариях, в каких местах я не правильно понимаю тему или если есть, что дополнить.

Уважаемый автор. Ваше понимание принципов работы гипервизора неправильное почти полностью. Трудно написать, где вы ошибаетесь, поскольку для этого придётся написать новую статью.
Напишите пожалуйста обоснованно и внятно, с чем конкретно Вы не согласны по тексту статьи и что хотели бы добавить.
1. В 64-разрядном режиме современных процессоров нет 4 колец защиты. Есть только System и User. 32-разрядный режим стремительно уходит в прошлое, поэтому кольца защиты это прошлый век.
2. Внутри виртуальной машины полностью воссоздаются те же самые режимы System и User. (либо Ring0 + Ring3 в 32-разрядном режиме). То есть на рисунке это должно выглядеть не в виде колец, а как два рисунка в виде двух вселенных, соединённых чёрными дырами VMEXIT-ов и VMRESUME-ов.
3. Ring -1 это такое больше «поэтическое» сравнение для гипервизора, чтобы как-то объяснить на пальцах его преимущественное право обработки аппаратных прерываний с непосредственным VMEXIT.
4. При выключенном EPT гипервизор строит таблицу трансляции виртуальных адресов ВМ в физические адреса хоста и ловит обращения к памяти виртуальных устройств по #PF. При включенном EPT гипервизор строит таблицу трансляции физических адресов ВМ в физические адреса хоста и ловит обращения к памяти виртуальных устройств по EPT Violation. Далее идёт эмуляция в текущем режиме работы гипервизора, коим является режим System (Ring0 для 32-разрядных систем). Если тут же рядышком крутится ядро хостовой интерактивной ОС, то такой гипервизор называется II-типа. Если же всё работает через SR-IOV, которым управляет гипервизор, то драйверы таких устройств можно погрузить в начальную ВМ, как это делает Hyper-V и KVM и это называется гипервизором I-типа, что резко увеличивает требования к аппаратуре.

5,6,7,8 итд рассказывать просто лень, сорри.
1. В 64-разрядном режиме современных процессоров нет 4 колец защиты. Есть только System и User. 32-разрядный режим стремительно уходит в прошлое, поэтому кольца защиты это прошлый век.

Вынужден пошатнуть вашу уверенность
In IA-32e mode, the CS descriptor’s DPL is used for execution privilege checks (as in legacy 32-bit mode)
© Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B, 3C & 3D):System Programming Guide

Да, только вот базового адреса и предела нет. А без них ценность DPL уходит полностью. При отсутствующей сегментации невозможно в одном адресном пространстве создать градации привилегий, кроме как через таблицы страниц.

Но вообще пример прикольный! Я про этот DPL забыл напрочь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории