The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск эмулятора QEMU 6.0"
Отправлено Аноним, 07-Май-21 06:18 
> Просветите чем эмулятор от гипервизора отличаются и как они связаны?

Под гипервизором обычно понимают "программу уровнем выше ядра". Если ядро - supervisor mode, то над ним может быть hypervisor mode. Супервизор супервизоров. Взаимоотношение ядро <-> гипервизор немного похоже на взаимоотношение программа <-> супервизор (aka ядро). Только теперь caller - ядро, а исполнитель - железо и, вот, гипервизор.

Идея в том что железо, конечно, рубит привилегированые операции guest'а. А обрабатывает исключения гипервизор, который арбитрирует потуги, делит ресурсы, а при случае подвирает ОС и их ядрам что вон те привилегированные запросы к железу - прокатили. Хоть они и ни разу не - проц кинул исключение, гипервизор пришел, посмотрел, что-то сделал, вернул результат как будто и правда сработало. Операционка не заметила подвоха и ее ядро работае как будто всем и рулит, хоть это уже и не так. Плюс этого подхода в том что большую часть операций guest все же напрямую или почти напрямую делает на реальном железе - и скорость выполнения близка к железной.

Если guest явно в курсе что его на...вают, он вообще может юзать короткий и эффективный интерфейс запросов к гипервизору, по типу virtio, вместо того чтобы думать что это настоящие железки.

Под эмулятором же обычно понимают "программную реализацию оборудования". Простой пример: запускаем программу, программа читает опкоды из вон того бинарного потока и глядя на них делает то же что делал бы настоящий железный проц (меняет внутреннее состояние так же как настоящий проц). При этом совершенно не обязательно обладать тем процом, проц хоста может быть любым, лишь бы программу эмулятора мог запустить. Этот номер можно провернуть и с всеми остальными железками, так что эмулятор может эмулировать и вообще целиком всю систему. Поэтому какой-нибудь x86 может на раз прикинуться Raspberry Pi, хоть у него и нет ARM'овского процессора (точность и полнота эмуляции отдельный вопрос, но все же).

Эмуляция сильно гибче - можно изобразить вообще совсем все, незвисимо от возможностей и архитектуры своего железа. Вопрос в том с какой скоростью. Некто на AtMega сэмулировал ARMv5 с MMU и загрузил там убунту наример. Просто это был очень медленный "ARM" из-за того что "хост" убогий по фичам и слабосильный.

Реально подходы можно сочетать. Скажем получив вон те команды к той железке гипервизор может сделать какую-то фильтрацию, выпилив откровенно вредные и опасные, а потом взяв да и отдав это железке выполнять напрямую. При этом скорость лучше чистой эмуляции а гибкость лучше, можно что-то и совсем софтварно отлупить, если там потеря скорости была ОК.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру