Как реализован гипервизор?

Основная задача для виртулаьной машины,это реализовать свою трансляцию адресов. Минимально это 10 Машиных инструкций вместо 1 допустим mov rax,[ecx]. То есть я ожидаю замедление в 10 раз. А оно только 10%. Вопрос, есть ли секретные функции malloc выделяющие сразу физическую память? Да или Нет, вот в чем вопрос Если вдруг да то что эта за функция? https://learn.microsoft.com/ru-ru/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc Вот например что за константа MEM_PHYSICAL в методе virtualalloc MEM_PHYSICAL 0x00400000 Резервирует диапазон адресов, который можно использовать для сопоставления страницы расширений окна адресов (AWE).что за AWE. Пытаюсь выделить не получается, там привилегия надо, как то получил, всю--равно ошибка не получилось, забыл на долго.

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

А я даже термин гипервизор не понимаю, так как там ни где не написано, как выделить физ память(а это самая сложная, под 10 тысяч кода даже простую модель реализовать уйдет), вместо этого вижу примеры с sql-ом, сетями, файлами, сообщениями, зачем это вообще, это вообще даже не сложно.


Ответы (0 шт):