본문 바로가기

작업일지/Embedded

QEMU 에뮬레이터

간혹 에뮬레이터를 VMWare와 같은 가상머신으로 보는 경우가 있는데, 이와는 좀 다르다.
에뮬레이터는 CPU를 그대로 에뮬레이팅 해주기에 임베디드 개발시 실제 장치없이 에뮬레이터를 이용해 개발이 가능하다.
WinCE도 그렇고 iPhone, Android등도 자체적으로 개발용 에뮬레이터를 제공한다.

이곳에 범용적으로 쓸수 있는 강력한 에뮬레이터로 QEMU라는 에뮬레이터가 있다.
http://www.nongnu.org/qemu/
오픈소스이며 각자의 입맛에 맞는 개발용 에뮬레이터를 만들수 있다.

상당히 많은 칩들을 에뮬레이터 해주며, 유명한 android 에뮬레이터도 QEMU를 이용한 것으로 보인다.
제공되는 CPU 정보는 아래와 같다.
(출처:http://www.nongnu.org/qemu/status.html)

 

List of Supported Guest OSes

Target CPU support

The target CPU is the one QEMU emulates. User emulation means emulation of user code in order to launch Linux processes. System emulation means full CPU emulation in order to launch an Operating System.

Target CPUUser emulationSystem emulation
x86 OK OK
x86_64 Testing OK
ARM OK OK
SPARC OK OK
SPARC64 Dev only Dev only
PowerPC Testing Testing
PowerPC64 Testing Dev only
MIPS OK OK
MIPS64 Not supported OK
m68k (Coldfire) OK OK
SH-4 Testing Dev only
Alpha Dev only Dev only
CRIS OK Testing
MicroBlaze Testing Testing

Host CPU support

The host CPU is the one which executes QEMU.

Host CPUStatus
x86 OK
x86_64 OK
PowerPC OK
Sparc32 Testing
ARM Testing
HPPA Dev only
MIPS Not supported
S390 Not supported
Sparc64 Not supported
ia64 Not supported
m68k Not supported
Alpha Not supported

Note: Testing means that the emulator is working on most of the regression tests, but that some important application fail.