Podstawowym zadaniem QEMU jest możliwość uruchamiania wielu systemów operacyjnych na jednym fizycznym sprzęcie. Qemu to w przeciwieństwie do Virtual PC i VMWare Workstation projekt open-source'owy. Jest on emulatorem , który korzysta z dynamicznej translacji kodu. Potrafi dzięki temu emulować różne procesory na maszynach o różnych CPU. Dokładniej - pozwala na emulację x86, ARM, PowerPC, SPARC. Jednak ma pewne ograniczenia, o których szerzej jest napisane na stronie http://fabrice.bellard.free.fr/qemu/qemu-tech.html. W szczególności na architakturze x86 nie obsługuje SSE/MMX (choć w przyszłości ma się to zmienić), brak IPC syscall, brak wsparcia dla x86-64.
QEMU udostępnia dwa tryby pracy:
QEMU może uruchamiać różne systemy operacyjne na maszynach wirtualnych przy różnych goszczących SO - jak Linux, Windows, Mac (oczywiście host nie musi być taki jak gość).
Składa się z kilku podsystemów:
Trzeba pamiętać, że emulator procesora musi poradzić sobie z wieloma problemami:
Pierwszym krokiem jest podział każdej instrukcji emulowanego procesora na bardziej podstawowe instrukcje (mikrooperacje). Każda z tych mikrooperacji jest implementowana jako osobny mały kawałek kodu w C. Później ten kawałek kodu jest kompilowany przez GCC do pliku .o. Mikrooperacje są w taki sposób wybrane, aby ich ilość była dużo mniejsza niż ilość wszystkich kombinacji operacji i operandów w emulowanym CPU.
Narzędzie o nazwie dyngen używa pliku object jako wejścia, aby wygenerować dynamiczny generator kodu. Tenże generator jest potem używany, aby utworzyc funkcje hosta, które łączą w sobie kilka mikrooperacji.
Możliwa jest instalacja zarówno pod Windowsami, jak i pod Linuxem. Nie jest ona skomplikowana zarówno pod jednym, jak i pod drugim systemem. Pokrótce omówimy tutaj proces instalacji.
qemu-img create moj_obraz.img 3G
To polecenie utworzy nam obraz o wielkości 3G. Można stworzyć obrazy o różnym rozszerzeniu, m.in. .vmdk, który jest kompatybilny w VMWare Workstation 3, 4.
qemu.exe -L . -cdrom "\\.\D:" -hda hda.img -m 128 -boot d
Kiedy bootujemy z obrazu iso, zamiast ścieżki do CD piszemy moj_obraz.iso.
Teraz, gdy chcemy uruchomić system, piszemy:
qemu.exe -L . -hda hda.img -m 128
W czasie dzialania maszyny wirtualnej, możemy dokonywac różnych zmian. Sluży do tego QEMU Monitor, który pozwala na zmianę/usunięcie/dodanie dysków wymiennych; zamrożenie stanu maszyny wirtualnej; badanie stanu VM. Spis wszystkich funkcji jest dostępny na stronie QEMU.
Dodatkowo, pod Windowsa, istnieją dwa programy, które mają ułatwić użytkownikowi pracę z QEMU. Są to QEMU Manager i QEMU Menu. Pierwszy z nich ma wygląd zwykłej aplikacji windows'owskiej.
Instalacja pod Linuksem jest analogiczna. Uwaga! Jeśli chcecie samemu skompilowac QEMU, musicie miec gcc starsze niz 4. Ale najłatwiej po prostu skopiowac plik tar.gz do katalogu głównego i tam go rozpakowac.
Informacji o tym, jak posługiwac się QEMU, jest w sieci bardzo dużo. Podajemy najważniejsze strony w katalogu "źródła".
Można uruchomic QEMU w QEMU, choć jest to możliwe tylko w wypadku, jeśli samodzielnie zostały skompilowane żródła.