2015-09-07 6 views
4

При построении qemu из исходного кода, я нахожу для каждого CPU архитектуры, есть 2 варианта для целевого списка: xx-softmmu и xx-linux-user. Например:В чем разница и взаимосвязь между «xx-softmmu» и «xx-linux-user»?

x86_64-softmmu 
x86_64-linux-user 

Я не могу найти разницу между двумя вариантами. Может ли кто-нибудь представить, в чем разница и отношения между ними?

ответ

5

Проще говоря, xxx-softmmu скомпилирует qemu-system-xxx, который является эмулируемой машиной для архитектуры xxx (эмуляция системы). Когда он сбрасывается, отправной точкой будет вектор сброса этой архитектуры. В то время как xxx-linux-user компилирует qemu-xxx, который позволяет запускать пользовательское приложение в архитектуре xxx (эмуляция пользовательского режима). Который будет искать основную функцию пользовательских приложений и начать выполнение оттуда.

См https://en.wikipedia.org/wiki/QEMU#Operating_modes

+0

Чтобы быть точными, было бы начать с * точкой входа * исполняемого файла (обычно '_start') при использовании пользователя режим эмуляции, но это лишь деталь. – minmaxavg