Комментарии 8
Хорошая вводная шпаргалка получилась, но "маловато будет" :) Раскрывайте тему, как эмулируются аппаратные устройства, как работает паравиртуализация на KVM, устройства virtio-net, -blk, -balloon. Проброс реальных устройств с помощью IO-MMU. Получится замечательная серия.
+6
НЛО прилетело и опубликовало эту надпись здесь
KVM это божественно.
Не могу себе представить нормальное существование без него.
Не могу себе представить нормальное существование без него.
-2
Напишите в комментариях, в каких местах я не правильно понимаю тему или если есть, что дополнить.
Уважаемый автор. Ваше понимание принципов работы гипервизора неправильное почти полностью. Трудно написать, где вы ошибаетесь, поскольку для этого придётся написать новую статью.
-4
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 итд рассказывать просто лень, сорри.
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 итд рассказывать просто лень, сорри.
+3
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
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Общие принципы работы QEMU-KVM