Где QEMU отображает страницы ядра гостевой ОС? - PullRequest
0 голосов
/ 15 июня 2019

Я читаю некоторый исходный код QEMU (в версии 3.1.0, но также принимаются подсказки для другой версии), и я пытаюсь понять / найти, в каком месте исходного кода QEMU отображает ядро ​​гостевой ОС память в машинной памяти хоста?

1 Ответ

0 голосов
/ 17 июня 2019

QEMU специально не отображает само ядро ​​гостевой ОС. Он просто обеспечивает эмулируемую оперативную память для виртуальной машины (и эта эмулируемая оперативная память создается с помощью обычного анонимного mmap в qemu_anon_ram_alloc () - он мог бы сделать это с помощью вызова malloc ()). Гостевые двоичные файлы могут быть загружены в ОЗУ либо с помощью QEMU (различные функции hw / core / loader.c делают это), либо с помощью самого гостя, загружающего его с эмулируемого диска.

Для гостевой системы x86, как правило, QEMU загружает только гостевой образ BIOS в гостевую память. Затем гостевой BIOS загружает собственное гостевое ядро ​​в память (либо с эмулируемого диска, либо через устройство QEMU "fw_cfg", которое гость может использовать для доступа к файлам вне эмуляции), и QEMU не знает и не заботится о том, где это случилось, чтобы положить его.

...