qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Prozessor-Architekturen SMP QEMU PPC pentium3 x86 x86_64 SPARC MIPS ARM PowerPC SuperH Coldfire

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Virtuelle Hardware/ Prozessoren]])

<<<|###| >>> | English


OpenBIOS in der SPARC-Emulation.
OpenBIOS in der SPARC-Emulation.
Das Android SDK verwendet QEMU.
Das Android SDK verwendet QEMU.
Die Emulation mehrerer CPUs unter QEMU.
Die Emulation mehrerer CPUs unter QEMU.

Inhaltsverzeichnis

[bearbeiten] Prozessor-Architekturen

Als Hardware-Emulator emuliert QEMU unterschiedliche Architekturen. Bei einigen Linux-Distributionen muss dazu das Paket qemu-kvm-extras installiert sein. QEMU übersetzt nativen Assembler-Code des Gast-Prozessors, zum Beispiel SPARC, in eine Sequenz von Mikro-Operationen (micro operations). In einem zweiten Schritt werden diese Mikro-Operationen in ausführbaren Code für den Host-Prozessor, zum Beispiel x86, umgewandelt und in einen Translation-Block (TB) gepackt. Diese Translation-Blöcke werden in einen Cache gehalten und können wieder verwendet werden. Dadurch verringert sich die Ausführungszeit. Emuliert werden diese Architekturen:

[bearbeiten] x86

Die meisten PC-Betriebssysteme arbeiten mit der x86-Architektur. Die x86-Architektur baut auf einem CISC-Befehlssatz auf. Die Abkürzung CISC steht für Complex Instruction Set Computing (Rechnen mit komplexem Befehlssatz). Mit Intels erster 16-Bit-CPU, dem 8086, wurde die x86-Architektur 1978 eingeführt. Durch den enormen Erfolg des IBM-PCs und seiner Nachbauten wurde die x86-Architektur innerhalb weniger Jahre zu einer der erfolgreichsten Prozessorarchitekturen. Außer Intel produzieren auch andere Hersteller x86-kompatible CPUs, wie zum Beispiel die Firma AMD. Mit dem 80386 führte Intel 1985 die erste x86-CPU mit einer 32-Bit-Architektur ein. 2003 brach für x86 die 64-Bit-Ära an, diesmal auf Initiative von AMD. Der 64-Bit-Standard heißt AMD64 und wurde unter dem Namen EM64T auch von Intel übernommen. Für die x86-Architektur wird folgende Hardware emuliert:

Die 32-Bit-Version der x86-Prozessorarchitektur wird mit qemu-system-i386 aufgerufen. In QEMU-Versionen vor 1.0 wurde qemu verwendet.

Host ~$ qemu-system-i386

Die Option -machine type= beziehungsweise -M (vor QEMU 0.15) ermöglicht die Auswahl des emulierten Maschinen-Typs (PC-Bus-Architektur). Wird die Angabe zum Maschinen-Type weggelassen oder die Default-Option -machine type=pc angegeben, wird ein heutiger Standard-PC mit PCI-Bus emuliert. Die möglichen Maschinen-Typen zeigt -machine ? an. Die Maschinen-Typen xenfv und xenpv stehen nur bei aktiviertem Xen-Support zur Verfügung.

Host ~$ qemu-system-i386 -machine ?
Supported machines are:
pc         Standard PC (alias of pc-1.0)
pc-1.0     Standard PC (default)
pc-0.14    Standard PC
pc-0.13    Standard PC
pc-0.12    Standard PC
pc-0.11    Standard PC, qemu 0.11
pc-0.10    Standard PC, qemu 0.10
isapc      ISA-only PC
xenpv      Xen Para-virtualized PC
xenfv      Xen Fully-virtualized PC

Bei älteren QEMU-Version ist -M ? zu verwenden.

Host ~$ qemu-system-i386 -M ?

Mit neueren QEMU-Versionen ändert sich die emulierte Hardware. Erhält QEMU ein Update, haben einige Gast-Systemen Probleme mit der geänderten Hardware. Zum Beispiel müssen manche Microsoft Windows-Systeme dann neu aktiviert werden. Damit sich die emulierte Hardware nicht ändert, ist der Maschinen-Typ an die QEMU-Version zu binden. Im folgenden Beispiel wird der Maschinen-Typ pc der QEMU-Version 0.11.0 vorgegeben.

Host ~$ qemu-system-i386 -machine type=pc-0.11

Bei älteren QEMU-Version ist -M pc-0.11 zu verwenden.

Host ~$ qemu-system-i386 -M pc-0.11

Mit der Option -machine type=isapc wird ein PC-Modell mit dem älteren ISA-Bus (Industry Standard Architecture) emuliert. Dies kann bei älteren Betriebssystemen, bei der Emulation von Industrie-PCs und eingebetteten Systemen sinnvoll sein.

Host ~$ qemu-system-i386 -M isapc

Die Option -cpu ermöglicht die Auswahl des Prozessor-Typs (CPU - Central Prozessing Unit). Die möglichen Typen zeigt -cpu ? an.

Host ~$ qemu-system-i386 -cpu ?
x86           [n270]
x86         [athlon]
x86       [pentium3]
x86       [pentium2]
x86        [pentium]
x86            [486]
x86        [coreduo]
x86          [kvm32]
x86         [qemu32]
x86          [kvm64]
x86       [core2duo]
x86         [phenom]
x86         [qemu64]

Ein 486-Prozessor wird mit -cpu 486 emuliert.

Host ~$ qemu-system-i386 -cpu 486

Zur Emulation von 64-Bit-Prozessoren dient der Befehl qemu-system-x86_64. Wird unter einem 32-Bit-Host mit qemu-system-x86_64 eine 64-Bit-Architektur emuliert, stehen weder KVM noch KQEMU zur Verfügung.

Host ~$ qemu-system-x86_64

Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-x86_64 -machine ?
Supported machines are:
pc         Standard PC (alias of pc-1.0)
pc-1.0     Standard PC (default)
pc-0.14    Standard PC
pc-0.13    Standard PC
pc-0.12    Standard PC
pc-0.11    Standard PC, qemu 0.11
pc-0.10    Standard PC, qemu 0.10
isapc      ISA-only PC
xenpv      Xen Para-virtualized PC
xenfv      Xen Fully-virtualized PC

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-x86_64 -cpu ?
x86       Opteron_G3
x86       Opteron_G2
x86       Opteron_G1
x86          Nehalem
x86           Penryn
x86           Conroe
x86           [n270]
x86         [athlon]
x86       [pentium3]
x86       [pentium2]
x86        [pentium]
x86            [486]
x86        [coreduo]
x86          [kvm32]
x86         [qemu32]
x86          [kvm64]
x86       [core2duo]
x86         [phenom]
x86         [qemu64]

Zusätzliche CPU-Definitionen werden dem CPU-Typ nach einem Komma übergeben. Mit der Default-Einstellung +svm werden Prozessoren mit Hardware-Virtualisierungstechniken emuliert. Das heißt, das Gast-System kann als Host-System für weitere KVM- beziehungsweise Xen-Instanzen dienen.

Host ~$ qemu-system-x86_64 -cpu qemu64,+svm

Soll die Emulation dieser Hardware-Virtualisierungstechnik unterdrückt werden, ist -svm vorzugeben.

Host ~$ qemu-system-x86_64 -cpu qemu64,-svm

Eine schnellere Variante gegenüber dieser Emulation ergibt sich durch die KVM hardware-unterstützte Virtualisierung (siehe unten). Dazu muss das Host-System über AMD-Prozessoren verfügen und das Kernel-Modul kvm_amd mit den Optionen nested=1 und npt=1 geladen sein (siehe http://qemu-buch.de/d/Installation). Weiterhin wird QEMU ab der Version 0.14.0 benötigt.

Host ~$ qemu-system-x86_64 -machine type=pc,accel=kvm -cpu qemu64,+svm

Im Gast-System (64-Bit-Linux) wird das SVM-Flag überprüft.

Gast ~$ grep "svm" /proc/cpuinfo

Werden Zeilen mit svm ausgegeben, können im Gast-System die KVM-Module geladen werden.

[bearbeiten] SPARC

Die SPARC-Architektur (Scalable Processor ARChitecture) wird von der Firma Sun Microsystems (jetzt Oracle Corporation) ab 1985 entwickelt. SPARC-Prozessoren sind hauptsächlich in den Produkten von Sun zu finden. Neben SunOS beziehungsweise Solaris können auf SPARC-Systemen Linux oder BSD-Varianten eingesetzt werden. 1995 wurde die ursprüngliche 32-Bit-Architektur auf 64-Bit erweitert und unter dem Namen UltraSPARC vermarktet. Im QEMU-Paket ist das Programm qemu-system-sparc zur Emulation von 32-Bit-SPARC-Systemen enthalten. Folgende Sun4m-Architekturen werden emuliert:

Die Emulationen von SPARCstation 2 (sun4c), SPARCserver 1000 und SPARCcenter 2000 (sun4d) sind auch möglich. Folgende Sun4m-, Sun4c- und Sun4d-Hardware wird emuliert:

Die maximale Größe des Arbeitsspeichers (RAM) ist abhängig vom Maschinentyp. Bei SS-5 kann der RAM maximal 256 MByte betragen, sonst 2047 MByte. Die Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-sparc -machine ?
Supported machines are:
SS-5       Sun4m platform, SPARCstation 5 (default)
SS-10      Sun4m platform, SPARCstation 10
SS-600MP   Sun4m platform, SPARCserver 600MP
SS-20      Sun4m platform, SPARCstation 20
Voyager    Sun4m platform, SPARCstation Voyager
LX         Sun4m platform, SPARCstation LX
SS-4       Sun4m platform, SPARCstation 4
SPARCClassic Sun4m platform, SPARCClassic
SPARCbook  Sun4m platform, SPARCbook
SS-1000    Sun4d platform, SPARCserver 1000
SS-2000    Sun4d platform, SPARCcenter 2000
SS-2       Sun4c platform, SPARCstation 2
leon3_generic Leon-3 generic

qemu-system-sparc emuliert bis zu 16 CPUs. Linux begrenzt aber die Anzahl auf maximal vier CPUs. Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-sparc -cpu ?
Sparc  Fujitsu MB86900 IU 00000000 FPU 00080000 MMU 00000000 NWINS 7 -swap -mul -div -flush -fsqrt -fmul 
Sparc  Fujitsu MB86904 IU 04000000 FPU 00080000 MMU 04000000 NWINS 8 
Sparc  Fujitsu MB86907 IU 05000000 FPU 00080000 MMU 05000000 NWINS 8 
Sparc       LSI L64811 IU 10000000 FPU 00020000 MMU 10000000 NWINS 8 -mul -div -flush -fmul 
Sparc  Cypress CY7C601 IU 11000000 FPU 00060000 MMU 10000000 NWINS 8 -mul -div -flush -fmul 
Sparc  Cypress CY7C611 IU 13000000 FPU 00060000 MMU 10000000 NWINS 8 -mul -div -flush -fmul 
Sparc  TI MicroSparc I IU 41000000 FPU 00080000 MMU 41000000 NWINS 7 -fsmuld 
Sparc TI MicroSparc II IU 42000000 FPU 00080000 MMU 02000000 NWINS 8 
Sparc TI MicroSparc IIep IU 42000000 FPU 00080000 MMU 04000000 NWINS 8 
Sparc TI SuperSparc 40 IU 41000000 FPU 00000000 MMU 00000800 NWINS 8 
Sparc TI SuperSparc 50 IU 40000000 FPU 00000000 MMU 01000800 NWINS 8 
Sparc TI SuperSparc 51 IU 40000000 FPU 00000000 MMU 01000000 NWINS 8 
Sparc TI SuperSparc 60 IU 40000000 FPU 00000000 MMU 01000800 NWINS 8 
Sparc TI SuperSparc 61 IU 44000000 FPU 00000000 MMU 01000000 NWINS 8 
Sparc TI SuperSparc II IU 40000000 FPU 00000000 MMU 08000000 NWINS 8 
Sparc       Ross RT625 IU 1e000000 FPU 00020000 MMU 1e000000 NWINS 8 
Sparc       Ross RT620 IU 1f000000 FPU 00020000 MMU 1f000000 NWINS 8 
Sparc        BIT B5010 IU 20000000 FPU 00000000 MMU 20000000 NWINS 8 -mul -div -flush -fmul 
Sparc Matsushita MN10501 IU 50000000 FPU 00000000 MMU 50000000 NWINS 8 -swap -div -flush -fmul 
Sparc     Weitek W8601 IU 90000000 FPU 00060000 MMU 10000000 NWINS 8 
Sparc            LEON2 IU f2000000 FPU 00080000 MMU f2000000 NWINS 8 
Sparc            LEON3 IU f3000000 FPU 00080000 MMU f3000000 NWINS 8 
Default CPU feature flags (use '-' to remove): float swap mul div flush fsqrt fmul fsmuld 
Available CPU feature flags (use '+' to add): float128 vis1 vis2 hypv cmt gl 
Numerical features (use '=' to set): iu_version fpu_version mmu_version nwindows

Für den SPARC-Emulator ist das OpenBIOS (http://www.openbios.org) implementiert. Ziel von OpenBIOS ist eine vollständige Kompatibilität zum Standard EEE 1275-1994 bei der Firmware. Ab QEMU 0.15 ist es möglich neben Linux auch Solaris 8 für Sparc32 und HelenOS für Sparc64 zu booten. Der SPARC32-System-Emulator hat diese zusätzlichen Optionen:

-g WxHx[xDEPTH]

Definiert den initialen Grafik-Modus (Default = 1024x768x8). Es kann auch der Modus 1024x768x24 eingestellt werden.

-prom-env string

Mit dieser Option setzt man OpenBIOS-Variablen im NVRAM. Im folgenden Beispiel wird der automatische Boot-Vorgang unterbunden und der Prompt des OpenBIOS erscheint.

Host ~$ qemu-system-sparc -machine type=SPARCClassic \ 
        -g 1024x768x24 -prom-env 'auto-boot?=false' 

Hilfestellung zu den OpenBIOS-Befehlen erhält man mit help.

0 > help

Der Bootvorgang wird mit dem Befehl boot gestartet. Soll von CD-ROM gestartet werden, ist boot cdrom einzugeben. Beispiele virtueller Maschinen mit SPARC-Architektur werden im Abschnitt Gast-Systeme erläutert.

Das Programm qemu-system-sparc64 dient zur Emulation von folgenden 64-Bit-SPARC-Systemen: Sun4u (UltraSPARC PC-ähnlich), Sun4v (T1 PC-ähnlich), oder generische Niagara-Maschine (T1). Folgende Sun4u-Architekturen werden emuliert:

Der SPARC64-System-Emulator besitzt die gleichen Optionen wie der SPARC32-System-Emulator. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-sparc64 -machine ?
Supported machines are:
sun4u      Sun4u platform (default)
sun4v      Sun4v platform
Niagara    Sun4v platform, Niagara

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-sparc64 -cpu ?
Sparc  Fujitsu Sparc64 IU 0004000200000000 FPU 00000000 MMU 00000000 NWINS 4 
Sparc Fujitsu Sparc64 III IU 0004000300000000 FPU 00000000 MMU 00000000 NWINS 5 
Sparc Fujitsu Sparc64 IV IU 0004000400000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc Fujitsu Sparc64 V IU 0004000551000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc  TI UltraSparc I IU 0017001040000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc TI UltraSparc II IU 0017001120000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc TI UltraSparc IIi IU 0017001291000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc TI UltraSparc IIe IU 0017001314000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc Sun UltraSparc III IU 003e001434000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc Sun UltraSparc III Cu IU 003e001541000000 FPU 00000000 MMU 00000001 NWINS 8 
Sparc Sun UltraSparc IIIi IU 003e001634000000 FPU 00000000 MMU 00000000 NWINS 8 
Sparc Sun UltraSparc IV IU 003e001831000000 FPU 00000000 MMU 00000002 NWINS 8 
Sparc Sun UltraSparc IV+ IU 003e001922000000 FPU 00000000 MMU 00000000 NWINS 8 +cmt 
Sparc Sun UltraSparc IIIi+ IU 003e002200000000 FPU 00000000 MMU 00000001 NWINS 8 
Sparc Sun UltraSparc T1 IU 003e002302000000 FPU 00000000 MMU 00000003 NWINS 8 +hypv +cmt +gl 
Sparc Sun UltraSparc T2 IU 003e002402000000 FPU 00000000 MMU 00000003 NWINS 8 +hypv +cmt +gl 
Sparc NEC UltraSparc I IU 0022001040000000 FPU 00000000 MMU 00000000 NWINS 8 
Default CPU feature flags (use '-' to remove): float swap mul div flush fsqrt fmul vis1 vis2 fsmuld 
Available CPU feature flags (use '+' to add): float128 hypv cmt gl 
Numerical features (use '=' to set): iu_version fpu_version mmu_version nwindows

Beispiele mit qemu-system-sparc findet man unter http://qemu-buch.de/d/Gast-Systeme/_SPARC-Architektur.

[bearbeiten] ARM

Die ARM-Architektur wurde 1983 vom englischen Computerhersteller Acorn Computers Ltd. als Entwicklungsprojekt gestartet. Anstatt auf Prozessoren der Firmen Intel oder Motorola zurückzugreifen, entwickelte man einen eigenen Prozessor, den ARM (Acorn RISC Machine). Tests ergaben, dass diese Rechner bei praktisch gleicher Taktfrequenz etwa acht mal schneller waren als die Rechner der Konkurrenten Commodore Amiga und Atari ST. Nachdem 1989 der ARM2 zum ARM3 weiterentwickelt worden war und als immer mehr Firmen Interesse an diesen Prozessoren bekundet hatten, gründete Acorn im Jahre 1990 zusammen mit Apple und VLSI Technology die Firma Advanced RISC Machines Ltd. (ARM). Die ARM-Architektur folgt dem RISC-Konzept (Reduced Instruction Set Computing). Ein RISC-Befehlssatz verzichtet zugunsten eines niedrigeren Dekodierungsaufwandes konsequent auf komplexe Befehle, wodurch die Einzelbefehle einfacher auszuführen sind. Zusätzlich sind die Befehle bei RISC-Prozessoren fest verdrahtet. Jede Operation wird also durch Leiterbahnen auf dem Prozessor repräsentiert. Aufgrund ihrer geringen Leistungsaufnahme kommen ARM-Prozessoren in vielen eingebetteten Systemen, wie Mobiltelefonen, PDAs und Routern, zum Einsatz. Im QEMU-Paket ist das Programm qemu-system-arm enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-arm -machine ?
Supported machines are:
z2         Zipit Z2 (PXA27x)
vexpress-a9 ARM Versatile Express for Cortex-A9
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
tosa       Tosa PDA (PXA255)
syborg     Syborg (Symbian Virtual Platform)
lm3s811evb Stellaris LM3S811EVB
lm3s6965evb Stellaris LM3S6965EVB
akita      Akita PDA (PXA270)
spitz      Spitz PDA (PXA270)
borzoi     Borzoi PDA (PXA270)
terrier    Terrier PDA (PXA270)
realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
cheetah    Palm Tungsten|E aka. Cheetah PDA (OMAP310)
sx1        Siemens SX1 (OMAP310) V2
sx1-v1     Siemens SX1 (OMAP310) V1
n800       Nokia N800 tablet aka. RX-34 (OMAP2420)
n810       Nokia N810 tablet aka. RX-44 (OMAP2420)
musicpal   Marvell 88w8618 / MusicPal (ARM926EJ-S)
mainstone  Mainstone II (PXA27x)
integratorcp ARM Integrator/CP (ARM926EJ-S) (default)
connex     Gumstix Connex (PXA255)
verdex     Gumstix Verdex (PXA270)
collie     Collie PDA (SA-1110)

Die ARM Integrator/CP-Emulation unterstützt folgende Hardware:

Die ARM Versatile-Baseboard-Emulation unterstützt folgende Hardware:

Die ARM RealView Baseboard-Emulation unterstützt folgende Hardware:

Die Emulation der XScale-based Clamshell PDA Modelle (Spitz, Akita, Borzoi und Terrier) unterstützt folgende Hardware:

Die Emulation Palm Tungsten|E PDA (Codename "Cheetah") unterstützt folgende Hardware:

Die Emulation der Nokia N800- und N810-Internet-Tablets (RX-34, RX-44/48) unterstützt folgende Hardware:

Die Luminary Micro Stellaris LM3S811EVB-Emulation unterstützt folgende Hardware:

Die Luminary Micro Stellaris LM3S6965EVB-Emulation unterstützt folgende Hardware:

Die Freecom MusicPal Internet Radio-Emulation unterstützt folgende Hardware:

Die Emulation der Siemens SX1-Modelle v1 und v2 (Default) unterstützt folgende Hardware:

Die Emulation der Syborg Symbian Virtual Platform unterstützt folgende Hardware:

Ab QEMU 0.15 werden ARM Versatile Express ("vexpress-a9") und Sharp Zaurus SL-5500 ("collie") unterstützt. Die cp15-Performance-Counter und cp14-Debug-Register wurden als Dummy implementiert. Dadurch können Linux-Kernel booten, die diese Funktionalitäten abfragen. Die möglichen CPU-Typen der ARM-Emulation zeigt -cpu ? an.

Host ~$ qemu-system-arm -cpu ?
Available CPUs:
  arm926
  arm946
  arm1026
  arm1136
  arm1136-r2
  arm11mpcore
  cortex-m3
  cortex-a8
  cortex-a9
  ti925t
  pxa250
  sa1100
  sa1110
  pxa255
  pxa260
  pxa261
  pxa262
  pxa270
  pxa270-a0
  pxa270-a1
  pxa270-b0
  pxa270-b1
  pxa270-c0
  pxa270-c5
  any

Die ARM-Emulation unterstützt diese zusätzlichen Optionen:

-semihosting

Aktiviert die Semihosting Syscall Emulation. Bei der ARM-Architektur wird das "Angel"-Interface implementiert. Dabei wird dem Gast-System direkter Zugriff auf das Host-Dateisystem erlaubt. Es ist nur bei vertrauenswürdigen Gast-Systemen zu verwenden. Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Zum einen gibt es erhebliche Unterschiede zu einem normalen PC. Zum anderen erschweren Lizenz-Bestimmungen eine Nachbildung der Hard- und Firmware. Das Booten von Linux ist mit den Speziellen Linux-Bootoptionen möglich. Beispiel:

Host ~$ qemu-system-arm -kernel zImage.integrator \
        -initrd arm_root.img
-old-param

Für die ARM-Architektur wird ein Modus mit den alten Parametern aktiviert.

Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich. Ein Beispiel findet man im Abschnitt Gast-Systeme. Der im Android SDK enthaltene Android Emulator verwendet ein modifiziertes qemu-system-arm.

[bearbeiten] MIPS

Die MIPS-Architektur (Microprocessor without interlocked pipeline stages) ist eine RISC-Prozessorarchitektur, die ab 1981 an der Stanford Universität entwickelt wurde. MIPS war ursprünglich eine 32-Bit-Architektur, die 1991 mit dem R4000 auf 64 Bit erweitert wurde. MIPS-Prozessoren wurden von Silicon Graphics in Unix-Rechnern eingesetzt. Früher boten auch andere Hersteller, wie zum Beispiel Digital Equipment Corporation (DEC) und Siemens beziehungsweise SNI, Maschinen mit MIPS-Prozessoren an. MIPS-Prozessoren findet man auch häufig in embedded Systemen (Cisco-Router, Sun Cobalt Server bis RaQ/Qube2, BMW-Navigationssysteme, Fritz!Box, Satelliten-Receiver, Dreambox, Konica Minolta DSLRs und Sony- und Nintendo-Spielkonsolen). Im QEMU-Paket sind die Programme qemu-system-mips, qemu-system-mips64, qemu-system-mipsel und qemu-system-mips64el (MIPSel ist eine MIPS-Architektur mit anderer Byte-Reihenfolge) enthalten. Folgende Maschinen können emuliert werden.

Die möglichen Maschinen-Typen zeigt jeweils die Option -machine ? an.

Host ~$ qemu-system-mips -machine ?
Supported machines are:
mips       mips r4k platform
mipssim    MIPS MIPSsim platform
malta      MIPS Malta Core LV (default)
magnum     MIPS Magnum
pica61     Acer Pica 61
Host ~$ qemu-system-mips64 -machine ?
Supported machines are:
mips       mips r4k platform
mipssim    MIPS MIPSsim platform
malta      MIPS Malta Core LV (default)
magnum     MIPS Magnum
pica61     Acer Pica 61
Host ~$ qemu-system-mipsel -machine ?
Supported machines are:
mips       mips r4k platform
mipssim    MIPS MIPSsim platform
malta      MIPS Malta Core LV (default)
magnum     MIPS Magnum
pica61     Acer Pica 61
Host ~$ qemu-system-mips64el -machine ?
Supported machines are:
mips       mips r4k platform
mipssim    MIPS MIPSsim platform
malta      MIPS Malta Core LV (default)
magnum     MIPS Magnum
pica61     Acer Pica 61
fulong2e   Fulong 2e mini pc

Die generische Emulation (mips) ermöglicht die Installation von Debian auf einer virtuellen Festplatte. Die generische Emulation unterstützt folgende Hardware:

Die Malta-Emulation unterstützt die folgende Hardware:

Die ACER-Pica-Emulation unterstützt die folgende Hardware:

Die MIPS-Emulator-Pseudo-Board-Emulation (mipssim) unterstützt ähnliche Hardware wie die generische Emulation (mips):

Die MIPS-Magnum-R4000-Emulation unterstützt die folgende Hardware:

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-mips -cpu ?
MIPS '4Kc'
MIPS '4Km'
MIPS '4KEcR1'
MIPS '4KEmR1'
MIPS '4KEc'
MIPS '4KEm'
MIPS '24Kc'
MIPS '24Kf'
MIPS '34Kf'
Host ~$ qemu-system-mips64 -cpu ?
MIPS '4Kc'
MIPS '4Km'
MIPS '4KEcR1'
MIPS '4KEmR1'
MIPS '4KEc'
MIPS '4KEm'
MIPS '24Kc'
MIPS '24Kf'
MIPS '34Kf'
MIPS 'R4000'
MIPS 'VR5432'
MIPS '5Kc'
MIPS '5Kf'
MIPS '20Kc'
MIPS 'MIPS64R2-generic'
MIPS 'Loongson-2E'
MIPS 'Loongson-2F'
Host ~$ qemu-system-mipsel -cpu ?
MIPS '4Kc'
MIPS '4Km'
MIPS '4KEcR1'
MIPS '4KEmR1'
MIPS '4KEc'
MIPS '4KEm'
MIPS '24Kc'
MIPS '24Kf'
MIPS '34Kf'
Host ~$ qemu-system-mips64el -cpu ?
MIPS '4Kc'
MIPS '4Km'
MIPS '4KEcR1'
MIPS '4KEmR1'
MIPS '4KEc'
MIPS '4KEm'
MIPS '24Kc'
MIPS '24Kf'
MIPS '34Kf'
MIPS 'R4000'
MIPS 'VR5432'
MIPS '5Kc'
MIPS '5Kf'
MIPS '20Kc'
MIPS 'MIPS64R2-generic'
MIPS 'Loongson-2E'
MIPS 'Loongson-2F'

Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich. Ein Beispiel findet man im Abschnitt Gast-Systeme.

[bearbeiten] Coldfire

Die Coldfire-Prozessorarchitektur ist eine CISC-Architektur basierend auf der Motorola 68000er-Familie. Diese Prozessoren sind speziell auf den Embedded-Markt ausgerichtet. Im QEMU-Paket ist das Programm qemu-system-m68k enthalten. Das Booten eines uClinux-Kernels wird unterstützt. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-m68k -machine ?
Supported machines are:
mcf5208evb MCF5206EVB (default)
dummy      Dummy board
an5206     Arnewsh 5206

Die möglichen CPUs sind:

Host ~$ qemu-system-m68k -cpu ?
m5206
m5208
cfv4e
any

Die M5208EVB-Emulation unterstützt folgende Hardware:

Die AN5206-Emulation unterstützt folgende Hardware:

Es wird diese zusätzliche Option unterstützt.

-semihosting

Aktiviert die Semihosting Syscall Emulation. Für die M68K-Architektur wird das "ColdFire GDB"-Interface implementiert. Dabei wird dem Gast-System direkter Zugriff auf das Host-Dateisystem erlaubt. Es ist nur bei vertrauenswürdigen Gast-Systemen zu verwenden. Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich. Beispiel:

Host ~$ qemu-system-m68k -kernel vmlinux-2.6.21-uc0 -nographic

Ein Beispiel findet man im Abschnitt Gast-Systeme.

[bearbeiten] PowerPC

Die PowerPC-Architektur (PPC) ist eine 1991 durch ein Konsortium aus Apple, IBM und Motorola (heute Freescale) spezifizierte CPU-Architektur auf RISC-Basis. PowerPC-Prozessoren sind unter anderem im Einsatz in Apple-Macintosh-Rechnern, in IBM pSeries (RS/6000) und in der IBM Blade JS20, in den Motorola PowerStack-Rechnern, im Nintendo GameCube und Wii, in Form des Cell in der Playstation 3 von Sony sowie in der Xbox 360 von Microsoft und in vielen eingebetteten Systemen. Die Betriebssysteme Apple Mac OS X, Apple Mac OS Versionen 7.5 bis 9.0, Darwin beziehungsweise OpenDarwin und Linux (LinuxPPC) sind für diese Architektur verfügbar.

QEMU emuliert die folgende PowerPC-Hardware:

QEMU emuliert die folgende PREP-Hardware:

QEMU verwendet das OpenBIOS für die Emulation der G3Beige- und Mac99-PowerMac-Maschinen. Im QEMU-Paket sind die Programme qemu-system-ppc, qemu-system-ppc64 und qemu-system-ppcemb enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-ppc -machine ?
Supported machines are:
virtex-ml507 Xilinx Virtex ML507 reference design
mpc8544ds  mpc8544ds
prep       PowerPC PREP platform
g3beige    Heathrow based PowerMAC (default)
mac99      Mac99 based PowerMAC
bamboo     bamboo (alias of bamboo-0.13)
bamboo-0.13 bamboo
bamboo-0.12 bamboo
ref405ep   ref405ep
taihu      taihu
Host ~$ qemu-system-ppc64 -machine ?
Supported machines are:
virtex-ml507 Xilinx Virtex ML507 reference design
mpc8544ds  mpc8544ds
prep       PowerPC PREP platform
g3beige    Heathrow based PowerMAC
mac99      Mac99 based PowerMAC (default)
bamboo     bamboo (alias of bamboo-0.13)
bamboo-0.13 bamboo
bamboo-0.12 bamboo
ref405ep   ref405ep
taihu      taihu
Host ~$ qemu-system-ppcemb -machine ?
Supported machines are:
virtex-ml507 Xilinx Virtex ML507 reference design
mpc8544ds  mpc8544ds
prep       PowerPC PREP platform
g3beige    Heathrow based PowerMAC (default)
mac99      Mac99 based PowerMAC
bamboo     bamboo (alias of bamboo-0.13)
bamboo-0.13 bamboo
bamboo-0.12 bamboo
ref405ep   ref405ep
taihu      taihu

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-ppc -cpu ?
Host ~$ qemu-system-ppcemp -cpu ?
Host ~$ qemu-system-ppc64 -cpu ?
PowerPC 401              PVR 00270000
PowerPC 401A1            PVR 00210000
PowerPC 401B2            PVR 00220000
PowerPC 401C2            PVR 00230000
PowerPC 401D2            PVR 00240000
PowerPC 401E2            PVR 00250000
PowerPC 401F2            PVR 00260000
PowerPC 401G2            PVR 00270000
PowerPC IOP480           PVR 00220000
PowerPC Cobra            PVR 10100000
PowerPC 403              PVR 00200200
PowerPC 403GA            PVR 00200011
PowerPC 403GB            PVR 00200100
PowerPC 403GC            PVR 00200200
PowerPC 403GCX           PVR 00201400
PowerPC 405              PVR 41810000
PowerPC 405D2            PVR 20010000
PowerPC 405D4            PVR 41810000
PowerPC 405CR            PVR 40110145
PowerPC 405CRa           PVR 40110041
PowerPC 405CRb           PVR 401100c5
PowerPC 405CRc           PVR 40110145
PowerPC 405EP            PVR 51210950
PowerPC 405EZ            PVR 41511460
PowerPC 405GP            PVR 401100c4
PowerPC 405GPa           PVR 40110000
PowerPC 405GPb           PVR 40110040
PowerPC 405GPc           PVR 40110082
PowerPC 405GPd           PVR 401100c4
PowerPC 405GPe           PVR 40110145
PowerPC 405GPR           PVR 50910951
PowerPC 405LP            PVR 41f10000
PowerPC Npe405H          PVR 414100c0
PowerPC Npe405H2         PVR 41410140
PowerPC Npe405L          PVR 416100c0
PowerPC Npe4GS3          PVR 40b10000
PowerPC STB03            PVR 40310000
PowerPC STB04            PVR 41810000
PowerPC STB25            PVR 51510950
PowerPC x2vp4            PVR 20010820
PowerPC x2vp7            PVR 20010820
PowerPC x2vp20           PVR 20010860
PowerPC x2vp50           PVR 20010860
PowerPC 440-Xilinx       PVR 7ff21910
PowerPC MPC52xx          PVR 80822011
PowerPC MPC82xx          PVR 80822013
PowerPC PowerQUICC-II    PVR 80822013
PowerPC G2               PVR 00810011
PowerPC G2H4             PVR 80811010
PowerPC G2GP             PVR 80821010
PowerPC G2LS             PVR 90810010
PowerPC G2HiP3           PVR 00810101
PowerPC G2HiP4           PVR 80811014
PowerPC MPC603           PVR 00810100
PowerPC G2le             PVR 80820010
PowerPC G2leGP           PVR 80822010
PowerPC G2leLS           PVR a0822010
PowerPC G2leGP1          PVR 80822011
PowerPC G2leGP3          PVR 80822011
PowerPC MPC8240          PVR 00810100
PowerPC MPC5200          PVR 80822011
PowerPC MPC5200_v10      PVR 80822011
PowerPC MPC5200_v11      PVR 80822011
PowerPC MPC5200_v12      PVR 80822011
PowerPC MPC5200B         PVR 80822011
PowerPC MPC5200B_v20     PVR 80822011
PowerPC MPC5200B_v21     PVR 80822011
PowerPC MPC8241          PVR 80811014
PowerPC MPC8245          PVR 80811014
PowerPC MPC8247          PVR 80822013
PowerPC MPC8248          PVR 80822013
PowerPC MPC8250          PVR 80811014
PowerPC MPC8250_HiP3     PVR 00810101
PowerPC MPC8250_HiP4     PVR 80811014
PowerPC MPC8255          PVR 80811014
PowerPC MPC8255_HiP3     PVR 00810101
PowerPC MPC8255_HiP4     PVR 80811014
PowerPC MPC8260          PVR 80811014
PowerPC MPC8260_HiP3     PVR 00810101
PowerPC MPC8260_HiP4     PVR 80811014
PowerPC MPC8264          PVR 80811014
PowerPC MPC8264_HiP3     PVR 00810101
PowerPC MPC8264_HiP4     PVR 80811014
PowerPC MPC8265          PVR 80811014
PowerPC MPC8265_HiP3     PVR 00810101
PowerPC MPC8265_HiP4     PVR 80811014
PowerPC MPC8266          PVR 80811014
PowerPC MPC8266_HiP3     PVR 00810101
PowerPC MPC8266_HiP4     PVR 80811014
PowerPC MPC8270          PVR 80822013
PowerPC MPC8271          PVR 80822013
PowerPC MPC8272          PVR 80822013
PowerPC MPC8275          PVR 80822013
PowerPC MPC8280          PVR 80822013
PowerPC e200             PVR 81120000
PowerPC e200z5           PVR 81000000
PowerPC e200z6           PVR 81120000
PowerPC e300             PVR 00850010
PowerPC e300c1           PVR 00830010
PowerPC e300c2           PVR 00840010
PowerPC e300c3           PVR 00850010
PowerPC e300c4           PVR 00860010
PowerPC MPC8343          PVR 00830010
PowerPC MPC8343A         PVR 00830010
PowerPC MPC8343E         PVR 00830010
PowerPC MPC8343EA        PVR 00830010
PowerPC MPC8347          PVR 00830010
PowerPC MPC8347T         PVR 00830010
PowerPC MPC8347P         PVR 00830010
PowerPC MPC8347A         PVR 00830010
PowerPC MPC8347AT        PVR 00830010
PowerPC MPC8347AP        PVR 00830010
PowerPC MPC8347E         PVR 00830010
PowerPC MPC8347ET        PVR 00830010
PowerPC MPC8347EP        PVR 00830010
PowerPC MPC8347EA        PVR 00830010
PowerPC MPC8347EAT       PVR 00830010
PowerPC MPC8347EAP       PVR 00830010
PowerPC MPC8349          PVR 00830010
PowerPC MPC8349A         PVR 00830010
PowerPC MPC8349E         PVR 00830010
PowerPC MPC8349EA        PVR 00830010
PowerPC MPC8377          PVR 00860010
PowerPC MPC8377E         PVR 00860010
PowerPC MPC8378          PVR 00860010
PowerPC MPC8378E         PVR 00860010
PowerPC MPC8379          PVR 00860010
PowerPC MPC8379E         PVR 00860010
PowerPC e500             PVR 80210022
PowerPC e500v1           PVR 80200020
PowerPC e500_v10         PVR 80200010
PowerPC e500_v20         PVR 80200020
PowerPC e500v2           PVR 80210022
PowerPC e500v2_v10       PVR 80210010
PowerPC e500v2_v20       PVR 80210020
PowerPC e500v2_v21       PVR 80210021
PowerPC e500v2_v22       PVR 80210022
PowerPC e500v2_v30       PVR 80210030
PowerPC MPC8533          PVR 80210022
PowerPC MPC8533_v10      PVR 80210021
PowerPC MPC8533_v11      PVR 80210022
PowerPC MPC8533E         PVR 80210022
PowerPC MPC8533E_v10     PVR 80210021
PowerPC MPC8533E_v11     PVR 80210022
PowerPC MPC8540          PVR 80200020
PowerPC MPC8540_v10      PVR 80200010
PowerPC MPC8540_v20      PVR 80200020
PowerPC MPC8540_v21      PVR 80200020
PowerPC MPC8541          PVR 80200020
PowerPC MPC8541_v10      PVR 80200020
PowerPC MPC8541_v11      PVR 80200020
PowerPC MPC8541E         PVR 80200020
PowerPC MPC8541E_v10     PVR 80200020
PowerPC MPC8541E_v11     PVR 80200020
PowerPC MPC8543          PVR 80210021
PowerPC MPC8543_v10      PVR 80210010
PowerPC MPC8543_v11      PVR 80210011
PowerPC MPC8543_v20      PVR 80210020
PowerPC MPC8543_v21      PVR 80210021
PowerPC MPC8543E         PVR 80210021
PowerPC MPC8543E_v10     PVR 80210010
PowerPC MPC8543E_v11     PVR 80210011
PowerPC MPC8543E_v20     PVR 80210020
PowerPC MPC8543E_v21     PVR 80210021
PowerPC MPC8544          PVR 80210022
PowerPC MPC8544_v10      PVR 80210021
PowerPC MPC8544_v11      PVR 80210022
PowerPC MPC8544E         PVR 80210022
PowerPC MPC8544E_v10     PVR 80210021
PowerPC MPC8544E_v11     PVR 80210022
PowerPC MPC8545          PVR 80210021
PowerPC MPC8545_v20      PVR 80210020
PowerPC MPC8545_v21      PVR 80210021
PowerPC MPC8545E         PVR 80210021
PowerPC MPC8545E_v20     PVR 80210020
PowerPC MPC8545E_v21     PVR 80210021
PowerPC MPC8547E         PVR 80210021
PowerPC MPC8547E_v20     PVR 80210020
PowerPC MPC8547E_v21     PVR 80210021
PowerPC MPC8548          PVR 80210021
PowerPC MPC8548_v10      PVR 80210010
PowerPC MPC8548_v11      PVR 80210011
PowerPC MPC8548_v20      PVR 80210020
PowerPC MPC8548_v21      PVR 80210021
PowerPC MPC8548E         PVR 80210021
PowerPC MPC8548E_v10     PVR 80210010
PowerPC MPC8548E_v11     PVR 80210011
PowerPC MPC8548E_v20     PVR 80210020
PowerPC MPC8548E_v21     PVR 80210021
PowerPC MPC8555          PVR 80210011
PowerPC MPC8555_v10      PVR 80210010
PowerPC MPC8555_v11      PVR 80210011
PowerPC MPC8555E         PVR 80210011
PowerPC MPC8555E_v10     PVR 80210010
PowerPC MPC8555E_v11     PVR 80210011
PowerPC MPC8560          PVR 80210021
PowerPC MPC8560_v10      PVR 80210010
PowerPC MPC8560_v20      PVR 80210020
PowerPC MPC8560_v21      PVR 80210021
PowerPC MPC8567          PVR 80210022
PowerPC MPC8567E         PVR 80210022
PowerPC MPC8568          PVR 80210022
PowerPC MPC8568E         PVR 80210022
PowerPC MPC8572          PVR 80210030
PowerPC MPC8572E         PVR 80210030
PowerPC e600             PVR 80040010
PowerPC MPC8641          PVR 80040010
PowerPC MPC8641D         PVR 80040010
PowerPC 601              PVR 00010002
PowerPC 601_v0           PVR 00010001
PowerPC 601_v1           PVR 00010001
PowerPC 601v             PVR 00010002
PowerPC 601_v2           PVR 00010002
PowerPC 602              PVR 00050100
PowerPC 603              PVR 00030100
PowerPC Vanilla          PVR 00030100
PowerPC 603e             PVR 00060401
PowerPC Stretch          PVR 00060401
PowerPC 603e_v1.1        PVR 00060101
PowerPC 603e_v1.2        PVR 00060102
PowerPC 603e_v1.3        PVR 00060103
PowerPC 603e_v1.4        PVR 00060104
PowerPC 603e_v2.2        PVR 00060202
PowerPC 603e_v3          PVR 00060300
PowerPC 603e_v4          PVR 00060400
PowerPC 603e_v4.1        PVR 00060401
PowerPC 603e7            PVR 00070200
PowerPC 603e7t           PVR 00071201
PowerPC 603e7v           PVR 00070100
PowerPC Vaillant         PVR 00070100
PowerPC 603e7v1          PVR 00070101
PowerPC 603e7v2          PVR 00070201
PowerPC 603p             PVR 00070000
PowerPC 603r             PVR 00071201
PowerPC Goldeneye        PVR 00071201
PowerPC 604              PVR 00040103
PowerPC 604e             PVR 00090204
PowerPC Sirocco          PVR 00090204
PowerPC 604e_v1.0        PVR 00090100
PowerPC 604e_v2.2        PVR 00090202
PowerPC 604e_v2.4        PVR 00090204
PowerPC 604r             PVR 000a0101
PowerPC Mach5            PVR 000a0101
PowerPC 740              PVR 00080301
PowerPC Arthur           PVR 00080301
PowerPC 750              PVR 00080301
PowerPC Typhoon          PVR 00080301
PowerPC G3               PVR 00080301
PowerPC 740_v1.0         PVR 00080100
PowerPC 750_v1.0         PVR 00080100
PowerPC 740_v2.0         PVR 00080200
PowerPC 750_v2.0         PVR 00080200
PowerPC 740_v2.1         PVR 00080201
PowerPC 750_v2.1         PVR 00080201
PowerPC 740_v2.2         PVR 00080202
PowerPC 750_v2.2         PVR 00080202
PowerPC 740_v3.0         PVR 00080300
PowerPC 750_v3.0         PVR 00080300
PowerPC 740_v3.1         PVR 00080301
PowerPC 750_v3.1         PVR 00080301
PowerPC 740e             PVR 00080100
PowerPC 750e             PVR 00080200
PowerPC 740p             PVR 10080000
PowerPC 750p             PVR 10080000
PowerPC Conan/Doyle      PVR 10080000
PowerPC 750cl            PVR 00087210
PowerPC 750cl_v1.0       PVR 00087200
PowerPC 750cl_v2.0       PVR 00087210
PowerPC 750cx            PVR 00082202
PowerPC 750cx_v1.0       PVR 00082100
PowerPC 750cx_v2.0       PVR 00082200
PowerPC 750cx_v2.1       PVR 00082201
PowerPC 750cx_v2.2       PVR 00082202
PowerPC 750cxe           PVR 00083311
PowerPC 750cxe_v2.1      PVR 00082211
PowerPC 750cxe_v2.2      PVR 00082212
PowerPC 750cxe_v2.3      PVR 00082213
PowerPC 750cxe_v2.4      PVR 00082214
PowerPC 750cxe_v2.4b     PVR 00083214
PowerPC 750cxe_v3.0      PVR 00082310
PowerPC 750cxe_v3.1      PVR 00082311
PowerPC 750cxe_v3.1b     PVR 00083311
PowerPC 750cxr           PVR 00083410
PowerPC 750fl            PVR 70000203
PowerPC 750fx            PVR 70000203
PowerPC 750fx_v1.0       PVR 70000100
PowerPC 750fx_v2.0       PVR 70000200
PowerPC 750fx_v2.1       PVR 70000201
PowerPC 750fx_v2.2       PVR 70000202
PowerPC 750fx_v2.3       PVR 70000203
PowerPC 750gl            PVR 70020102
PowerPC 750gx            PVR 70020102
PowerPC 750gx_v1.0       PVR 70020100
PowerPC 750gx_v1.1       PVR 70020101
PowerPC 750gx_v1.2       PVR 70020102
PowerPC 750l             PVR 00088302
PowerPC LoneStar         PVR 00088302
PowerPC 750l_v2.0        PVR 00088200
PowerPC 750l_v2.1        PVR 00088201
PowerPC 750l_v2.2        PVR 00088202
PowerPC 750l_v3.0        PVR 00088300
PowerPC 750l_v3.2        PVR 00088302
PowerPC 745              PVR 00083208
PowerPC 755              PVR 00083208
PowerPC Goldfinger       PVR 00083208
PowerPC 745_v1.0         PVR 00083100
PowerPC 755_v1.0         PVR 00083100
PowerPC 745_v1.1         PVR 00083101
PowerPC 755_v1.1         PVR 00083101
PowerPC 745_v2.0         PVR 00083200
PowerPC 755_v2.0         PVR 00083200
PowerPC 745_v2.1         PVR 00083201
PowerPC 755_v2.1         PVR 00083201
PowerPC 745_v2.2         PVR 00083202
PowerPC 755_v2.2         PVR 00083202
PowerPC 745_v2.3         PVR 00083203
PowerPC 755_v2.3         PVR 00083203
PowerPC 745_v2.4         PVR 00083204
PowerPC 755_v2.4         PVR 00083204
PowerPC 745_v2.5         PVR 00083205
PowerPC 755_v2.5         PVR 00083205
PowerPC 745_v2.6         PVR 00083206
PowerPC 755_v2.6         PVR 00083206
PowerPC 745_v2.7         PVR 00083207
PowerPC 755_v2.7         PVR 00083207
PowerPC 745_v2.8         PVR 00083208
PowerPC 755_v2.8         PVR 00083208
PowerPC 7400             PVR 000c0209
PowerPC Max              PVR 000c0209
PowerPC G4               PVR 000c0209
PowerPC 7400_v1.0        PVR 000c0100
PowerPC 7400_v1.1        PVR 000c0101
PowerPC 7400_v2.0        PVR 000c0200
PowerPC 7400_v2.1        PVR 000c0201
PowerPC 7400_v2.2        PVR 000c0202
PowerPC 7400_v2.6        PVR 000c0206
PowerPC 7400_v2.7        PVR 000c0207
PowerPC 7400_v2.8        PVR 000c0208
PowerPC 7400_v2.9        PVR 000c0209
PowerPC 7410             PVR 800c1104
PowerPC Nitro            PVR 800c1104
PowerPC 7410_v1.0        PVR 800c1100
PowerPC 7410_v1.1        PVR 800c1101
PowerPC 7410_v1.2        PVR 800c1102
PowerPC 7410_v1.3        PVR 800c1103
PowerPC 7410_v1.4        PVR 800c1104
PowerPC 7448             PVR 80040201
PowerPC 7448_v1.0        PVR 80040100
PowerPC 7448_v1.1        PVR 80040101
PowerPC 7448_v2.0        PVR 80040200
PowerPC 7448_v2.1        PVR 80040201
PowerPC 7450             PVR 80000201
PowerPC Vger             PVR 80000201
PowerPC 7450_v1.0        PVR 80000100
PowerPC 7450_v1.1        PVR 80000101
PowerPC 7450_v1.2        PVR 80000102
PowerPC 7450_v2.0        PVR 80000200
PowerPC 7450_v2.1        PVR 80000201
PowerPC 7441             PVR 80000203
PowerPC 7451             PVR 80000203
PowerPC 7441_v2.1        PVR 80000201
PowerPC 7441_v2.3        PVR 80000203
PowerPC 7451_v2.3        PVR 80000203
PowerPC 7441_v2.10       PVR 80000210
PowerPC 7451_v2.10       PVR 80000210
PowerPC 7445             PVR 80010302
PowerPC 7455             PVR 80010302
PowerPC Apollo6          PVR 80010302
PowerPC 7445_v1.0        PVR 80010100
PowerPC 7455_v1.0        PVR 80010100
PowerPC 7445_v2.1        PVR 80010201
PowerPC 7455_v2.1        PVR 80010201
PowerPC 7445_v3.2        PVR 80010302
PowerPC 7455_v3.2        PVR 80010302
PowerPC 7445_v3.3        PVR 80010303
PowerPC 7455_v3.3        PVR 80010303
PowerPC 7445_v3.4        PVR 80010304
PowerPC 7455_v3.4        PVR 80010304
PowerPC 7447             PVR 80020102
PowerPC 7457             PVR 80020102
PowerPC Apollo7          PVR 80020102
PowerPC 7447_v1.0        PVR 80020100
PowerPC 7457_v1.0        PVR 80020100
PowerPC 7447_v1.1        PVR 80020101
PowerPC 7457_v1.1        PVR 80020101
PowerPC 7457_v1.2        PVR 80020102
PowerPC 7447A            PVR 80030102
PowerPC 7457A            PVR 80030102
PowerPC 7447A_v1.0       PVR 80030100
PowerPC 7457A_v1.0       PVR 80030100
PowerPC Apollo7PM        PVR 80030100
PowerPC 7447A_v1.1       PVR 80030101
PowerPC 7457A_v1.1       PVR 80030101
PowerPC 7447A_v1.2       PVR 80030102
PowerPC 7457A_v1.2       PVR 80030102
PowerPC 620              PVR 00140000
PowerPC Trident          PVR 00140000
PowerPC POWER7           PVR 003f0200
PowerPC POWER7_v2.0      PVR 003f0200
PowerPC 970              PVR 00390202
PowerPC 970fx            PVR 003c0301
PowerPC 970fx_v1.0       PVR 00391100
PowerPC 970fx_v2.0       PVR 003c0200
PowerPC 970fx_v2.1       PVR 003c0201
PowerPC 970fx_v3.0       PVR 003c0300
PowerPC 970fx_v3.1       PVR 003c0301
PowerPC 970gx            PVR 00450000
PowerPC 970mp            PVR 00440101
PowerPC 970mp_v1.0       PVR 00440100
PowerPC 970mp_v1.1       PVR 00440101
PowerPC ppc64            PVR 003c0301
PowerPC ppc32            PVR 00040103
PowerPC ppc              PVR 00040103
PowerPC default          PVR 00040103

Das folgende Beispiel startet eine virtuelle Maschine mit Power PC-Architektur:

Host ~$ qemu-system-ppc Platte.img -g 800x600

qemu-system-ppc besitzt folgende zusätzliche Optionen:

-g WxH[xDEPTH]

Die Startoption -g gibt die Auflösung und Farbtiefe an. Der Default-Wert ist 800x600x15.

-prom-env string

Die Option -prom-env setzt OpenBIOS-Variablen im NVRAM. Beispiel:

Host ~$ qemu-system-ppc -prom-env 'auto-boot?=false'  \
        -prom-env 'boot-device=hd:2,\yaboot'          \
        -prom-env 'boot-args=conf=hd:2,\yaboot.conf   

Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich. Ein Beispiel findet man im Abschnitt Gast-Systeme.

[bearbeiten] SuperH

Die SuperH-Prozessorarchitektur (SH) wird von der Firma Renesas Technology entwickelt. Diese RISC-artige Prozessorarchitektur ist in Japan sehr verbreitet. Weltweit wird SuperH in vielen eingebetteten Systemen eingesetzt, da diese Architektur nur wenig Strom verbraucht und relativ kostengünstig ist. Die Jornada-Reihe von HP verwendet auch SH-Prozessoren. Im QEMU-Paket sind die Programme qemu-system-sh4 und qemu-system-sh4eb zur Emulation der 4. Generation (SH-4) enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-sh4 -machine ?
Supported machines are:
shix       shix card (default)
r2d        r2d-plus board
Host ~$ qemu-system-sh4eb -machine ?
Supported machines are:
shix       shix card (default)
r2d        r2d-plus board

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-sh4 -cpu ?
SH7750R
SH7751R
SH7785
Host ~$ qemu-system-sh4eb -cpu ?
SH7750R
SH7751R
SH7785

Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich. Beispiel:

Host ~$ qemu-system-sh4 -M r2d -hda sh-linux.img -kernel zImage \
        -serial null -serial stdio -nographic

Ein Beispiel findet man im Abschnitt Gast-Systeme.

[bearbeiten] ETRAX CRIS

ETRAX CRIS bezeichnet eine Prozessorfamilie der Firma Axis Communications. Diese Prozessoren basieren auf dem Code Reduced Instruction Set (CRIS). Im QEMU-Paket ist das Programm qemu-system-cris enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-cris -machine ?
Supported machines are:
axis-dev88 AXIS devboard 88 (default)

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-cris -cpu ?
Available CPUs:
  crisv8
  crisv9
  crisv10
  crisv11
  crisv32

[bearbeiten] MicroBlaze

Der Mikrocontroller MicroBlaze wird als Soft-Core in Hardware-Beschreibungssprachen, wie VHDL (Very High Speed Integrated Circuit Hardware Description Language) oder Verilog HDL, definiert. Dieser 32-Bit RISC Mikrocontroller wird durch FPGAs (Field Programmable Gate Array) der Firma Xilinx realisiert. Neben der kostenpflichtigen Variante des Microblaze gibt es quelloffene Nachbauten, die auch auf FPGAs anderer Hersteller eingesetzt werden dürfen. Beispielsweise steht der aeMB-MicroBlaze-Clone unter der LGPL-Lizenz. MicroBlaze wird von den Betriebssystemen µClinux, Linux und FreeRTOS unterstützt. Im QEMU-Paket ist das Programm qemu-system-microblaze enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-microblaze -M ?
Supported machines are:
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan 3ADSP1800 (default)
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 little endian
Host ~$ qemu-system-microblazeel -M ?
Supported machines are:
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan 3ADSP1800 (default)
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 little endian

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-microblaze -cpu ?
Host ~$ qemu-system-microblazeel -cpu ?

[bearbeiten] Lattice Mico32

Lattice Mico32 ist ein auf einer Harvard-Architektur basierender 32-Bit-Soft-Core-Prozessor der Firma Lattice Semiconductor Corporation. Ein Soft-Core-Prozessor besteht aus reiner Anwenderlogik in einem Field Programmable Gate Array (FPGA). Im QEMU-Paket ist das Programm qemu-system-lm32 enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-lm32 -machine ?
Supported machines are:
lm32-uclinux lm32 platform for uClinux and u-boot by Theobroma Systems
lm32-evr   LatticeMico32 EVR32 eval system (default)
milkymist  Milkymist One

Die möglichen CPU-Typen zeigt -cpu ? an.

Host ~$ qemu-system-lm32 -cpu ?
Available CPUs:
  lm32-basic
  lm32-standard
  lm32-full

Eingesetzt wird dieser Architektur Prozessor im SoC Milkymist. Dieses wird von QEMU vollständig, inklusive Video-Rendering, unterstützt. Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich.

[bearbeiten] IBM System z (s390x)

System/390 ist eine Großrechner-Familie (Mainframe) der Firma IBM. Im QEMU-Paket ist das Programm qemu-system-s390x enthalten. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-s390x -machine ?
Supported machines are:
s390       VirtIO based S390 machine (alias of s390-virtio)
s390-virtio VirtIO based S390 machine (default)
Host ~$ qemu-system-s390x -cpu ?

Problematisch ist die Nachbildung des Boot-Vorgangs bei dieser Architektur. Das Booten von Linux ist möglich.

[bearbeiten] Xtensa

Xtensa-Prozesssoren werden von der Firma Tensilica hergestellt. Der Befehlssatz dieser Prozessoren ist Anwendungs-spezifisch konfigurierbar und erweiterbar. Dies wird ermöglicht durch eine Verilog-ähnliche Befehls-Beschreibungssprache (ISA, Instruction Set Architecture), aus der der Befehlssatz als Microcode generiert wird. In der Grundausstattung enthalten die Xtensa-Prozessoren einen erweiterten RISC Befehlssatz. Je nach Anwendungsgebiet wird dieser um Applikations-spezifische Befehle erweitert. Der Xtensa-Prozessor wird oft in eingebetteten Systemen (embedded) verwendet.

Im QEMU-Paket sind die Programme qemu-system-xtensa und qemu-system-xtensaeb enthalten. Es werden zwei unterschiedliche Maschinen emuliert.

Die Emulation des SIM-Pseuto-Boards liefert eine Umgebung ähnlich der des proprietären Tensilica ISS:

Die Emulation der Avnet LX60/LX110/LX200 unterstützt folgende Komponenten:

Die Option -machine type ermöglicht die Auswahl des emulierten Maschinen-Typs. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-xtensa -machine ?
Supported machines are:
sim        sim machine (dc232b)
lx60       lx60 EVB (dc232b)
lx200      lx200 EVB (dc232b)
Host ~$ qemu-system-xtensaeb -machine ?
 Supported machines are:
 sim        sim machine (dc232b)
 lx60       lx60 EVB (dc232b)
 lx200      lx200 EVB (dc232b)

Die Option -cpu ermöglicht die Auswahl des Prozessor-Typs. Die möglichen Typen zeigt -cpu ? an.

Host ~$ qemu-system-xtensa -cpu ?
Available CPUs:
  dc232b
Host ~$ qemu-system-xtensaeb -cpu ?
Available CPUs:
  fsf

Die Xtensa-Emulation unterstützt diese zusätzliche Option:

-semihosting

Aktiviert die Semihosting Syscall Emulation. Diese liefert grundlegende Datei-Funktionen, wie zum Beispiel open, read, write, seek und select. Die Tensilica Baremetal libc für ISS und die Linux-Platform SIM verwendet dieses Interface. Dabei wird dem Gast-System direkter Zugriff auf das Host-Dateisystem erlaubt. Es ist nur bei vertrauenswürdigen Gast-Systemen zu verwenden.

[bearbeiten] Alpha

Die Firma DEC entwickelte 1992 den damals sehr fortschrittlichen 64-Bit-RISC-Prozessor Alpha AXP. Dabei wurde keine Kompatibilität zu bestehenden Architekturen angestrebt. Dies ermöglichte ein konsequent durchgezogenes 64-Bit-Design und hohe Taktraten. Systeme mit Alpha-Prozessoren waren in der zweiten Hälfte der 1990er Jahre in der Top-500-Liste der Supercomputer immer gut vertreten. Entwickelt wurde die Alpha-Architektur für die Betriebssysteme OpenVMS, OSF/1 (heute Tru64) und Windows NT. Aber auch Linux- und BSD-Betriebssysteme unterstützen diese Architektur. Marketing-Versäumnisse verhinderten eine hohe Stückzahl der Alpha-Server. Die Entwicklung der Alpha-Architektur wurde 2004 eingestellt. Die Firma DEC wurde von Compaq übernommen, die wiederum von Hewlett Packard übernommen wurde.

Im QEMU-Paket ist das Programm qemu-system-alpha enthalten. Die Option -machine type ermöglicht die Auswahl des emulierten Maschinen-Typs. Die möglichen Maschinen-Typen zeigt -machine ? an.

Host ~$ qemu-system-alpha -machine ?
Supported machines are:
clipper    Alpha DP264/CLIPPER (default)

Die Option -cpu ermöglicht die Auswahl des Prozessor-Typs. Die möglichen Typen zeigt -cpu ? an.

Host ~$ qemu-system-alpha -cpu ?

[bearbeiten] Multiprozessorsysteme

[bearbeiten] SMP

Ein symmetrisches Multiprozessorsystem (SMP) verfügt über eine Multiprozessor-Architektur, bei der die laufenden Prozesse auf alle verfügbaren Prozessoren verteilt werden können. Beim asymmetrischen Multiprozessing werden dagegen jeder CPU Aufgaben fest zugewiesen. QEMU und KVM können SMP mit bis zu 255 CPUs emulieren. Konfiguriert wird dies mit der Option -smp gefolgt von einer Zahl (1 bis 255).

Host ~$ qemu-system-x86_64 -hda Platte.img -smp 2

Im QEMU-Monitor informiert der Befehl info cpus über die CPUs und deren Thread-ID.

(qemu) info cpus
* CPU #0: pc=0x000000000002cee9 thread_id=4114
  CPU #1: pc=0x00000000000ff0a2 (halted) thread_id=4115

Die mit dem Stern gekennzeichnete CPU ist die Default-CPU. Mit dem folgenden Befehl wird CPU #1 zur Default-CPU.

(qemu) cpu 1
(qemu) info cpus
  CPU #0: pc=0x000000000002cee9 thread_id=4114
* CPU #1: pc=0x00000000000ff0a2 (halted) thread_id=4115

Bei älteren QEMU-Versionen lässt sich mit dem Befehl cpu_set eine CPU offline schalten.

(qemu) cpu_set 0 offline

Mit dem folgenden Befehl wird die CPU #0 online geschaltet.

(qemu) cpu_set 0 online

Für x86-Architekturen lassen sich die Anzahl der Cores pro Socket, der Threads pro Core und die Anzahl der Sockets vorgeben. Die Gesamtzahl der CPUs kann dann weggelassen werden.

Host ~$ qemu-system-x86_64 -hda Platte.img -smp cores=2,threads=1,sockets=2
(qemu) info cpus
* CPU #0: pc=0x00000000000ff7dc thread_id=4126
  CPU #1: pc=0x00000000000ff0a2 (halted) thread_id=4127
  CPU #2: pc=0x00000000000ff0a2 (halted) thread_id=4128
  CPU #3: pc=0x00000000000ff0a2 (halted) thread_id=4129

Mit maxcpus wird die maximale Anzahl von Hot-Plug-CPUs definiert. Dazu gehören auch die CPUs, die (noch) offline sind.

Host ~$ qemu-system-x86_64 -hda Platte.img \
-smp cores=2,threads=1,sockets=2,maxcpus=8

[bearbeiten] NUMA

NUMA (Non-Uniform Memory Architecture) ist eine Speicher-Architektur für Multiprozessorsysteme. Jeder Prozessor besitzt einen separaten, lokalen Speicher. Anderen Prozessoren des Systems wird über einen gemeinsamen Adressraum ein direkter Zugriff auf diesen Speicher ermöglicht (Distributed Shared Memory). NUMA-Architekturen sind beispielsweise in AMD-Mehrprozessorsystemen auf Opteron-Basis implementiert. Vereinfacht gesagt ist ein NUMA-Node ein Speicherbereich, in welchem jedes Byte den gleichen Abstand (Hops) zu jeder CPU hat. Zur Konfiguration eines NUMA-Nodes dient die Option -numa node. Im folgenden Beispiel wird ein Multi-Node-NUMA-System simuliert.

Host ~$ qemu-system-x86_64 Platte \
-numa node,cpus=0 -numa node,cpus=1 -smp 2

Im QEMU-Monitor informiert der Befehl info numa über den NUMA-Node.

(qemu) info numa
2 nodes
node 0 cpus: 0
node 0 size: 64 MB
node 1 cpus: 1
node 1 size: 64 MB

Die vollständinge Syntax lautet:

-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]

Die Option mem=size definiert die Größe des Speichers. Der Default-Wert ist 128 MByte. Wird diese Option nicht angegeben, werden die Ressourcen gleichmäßig aufgeteilt. Die Option cpus=cpu[-cpu] adressiert die CPU(s) für die Konfiguration. Wird diese Option nicht angegeben, werden die Ressourcen gleichmäßig aufgeteilt. Die Option nodeid=node definiert die Node-ID.

[bearbeiten] x86-Virtualisierungen/-Emulationen

Konfiguriert werden die Beschleuniger mit dem Parameter accel der Option -machine. In Abhängikeit von der Architektur stehen kvm, xen, oder tcg. Werden mehrere Beschleuniger vorgegeben, werden diese nacheinander auf Verwendbarkeit geprüft. Per Default wird tcg verwendet.

[bearbeiten] Tiny Code Generator (TCG)

Nach der QEMU Version 0.9.1 wird als neue Methode der Tiny Code Generator (TCG) zur Code-Generierung für die Emulation verwendet. Der Tiny Code Generator ist performanter als andere Emulatoren, ist aber kein Beschleuniger und Virtualisierer. TCG benötigt also weder Kernel-Module noch Hyperviser. Der Tiny Code Generator ist unabhängiger von der Compiler-Version. Die Grundidee ist, jede Zielanweisung in mehrere RISC-ähnliche Operationen aufzuteilen. Dabei werden einige Optimierungen, zum Beispiel EFLAGS, durchgeführt. Die TCG-Operationen werden als TCG target implementiert. Aktiviert wird der Tiny Code Generator mit dem Parameter accel=tcg (Default-Einstellung) der Option -machine.

Host ~$ qemu-system-x86_64 Platte.img -machine type=pc,accel=tcg

Da tcg die Default-Einstellung ist, kann diese Angabe entfallen.

Host ~$ qemu-system-x86_64 Platte.img

[bearbeiten] Die KVM hardware-unterstützte Virtualisierung

Wie bereits beschrieben, ist die Kernel-based Virtual Machine ein Typ-2-Hypervisor, der die Full Virtualization unterstützt. Statt dem Befehl qemu wird bei der Kernel-based Virtual Machine oft der Befehl kvm angewendet. Dies ist verwirrend, da das Native Linux KVM Tool ebenso aufgerufen wird. Bei einigen Distributionen erfolgt der Aufruf mit qemu-system-x86_32, qemu-system-x86_64 oder qemu-kvm. Aktiviert wird die KVM hardware-unterstützte Virtualisierung mit dem Parameter accel=kvm der Option -machine.

Host ~$ qemu-system-x86_64 Platte.img -machine type=pc,accel=kvm

Bis QEMU 0.15 ist die alte Syntax -enable-kvm möglich.

Host ~$ qemu-system-x86_64 Platte.img -enable-kvm

Wenn die Verwendung der KVM hardware-unterstützten Virtualisierung unterbunden werden soll, ist der Parameter accel=kvm wegzulassen oder der Defaul-Wert accel=tcg zu verwenden.

Host ~$ qemu-system-x86_64 Platte.img -machine type=pc,accel=tcg

Bei älteren QEMU-Versionen wird KVM mit -no-kvm deaktiviert.

Host ~$ qemu-system-x86_64 Platte.img -no-kvm

Bei der Installation von Microsoft Windows als Gast-System sollte die KVM hardware-unterstützte Virtualisierung deaktiviert werden. Nach der Installation kann die KVM hardware-unterstützte Virtualisierung bei allen Windows-Versionen aktiviert sein. Im QEMU-Monitor zeigt der Befehl info kvm an, ob die KVM hardware-unterstützte Virtualisierung aktiv ist. In diesem Fall wurde sie deaktiviert.

(qemu) info kvm
kvm support: disabled

Sind im Host-System die KVM-Kernel-Module geladen, gibt der Befehl info kvm die Meldung kvm support: enabled aus.

Host ~$ qemu-system-x86_64 -monitor stdio
(qemu) info kvm
kvm support: enabled

Wird eine Virtualisierungslösung innerhalb einer anderen Virtualisierungslösung betrieben, so nennt man dies Nesting. Die Option -enable-nesting (bis QEMU 0.14) ermöglicht das Betreiben von KVM in einer KVM-Instanz. Dazu muss entweder das Host-System über AMD-Prozessoren verfügen oder es muss ein Linux-Kernel ab Version 3.1 installiert sein. Notwendig ist die Emulation einer entsprechenden 64-Bit-CPU. Beispiel:

Host ~$ qemu-system-x86_64 Platte.img \
        -cpu qemu64,+svm -enable-nesting 

Mit der Option -kvm-shadow-memory wird dem KVM MMU-Shadowing die vorgegebene Speichergröße zugewiesen. Mit der Option -no-kvm-irqchip deaktiviert man den KVM-Kernel-Mode PIC/IOAPIC/LAPIC. Die Option -no-kvm-pit deaktiviert den KVM-Kernel-Mode PIT. Die Option -no-kvm-pit-reinjection deaktiviert den KVM-Kernel-Mode PIT-Interrupt-Reinjection.

[bearbeiten] Der Hypervisor Xen (HVM)

Wird von den x86-Prozessoren die Hardware-Virtualisierungstechnik unterstützt, kann der Xen Virtual Machine Monitor im HVM-Modus (Hardware Virtual Machine) laufen. Das Xen-Projekt nutzt für den HVM-Modus Source-Code vom QEMU-Projekt zur Emulation gängiger PC-Komponenten (Device Model). Ab QEMU 0.15 wurde die Xen-Unterstützung integriert. Aktiviert wird die Xen-Unterstützung mit dem Parameter accel=xen der Option -machine.

Host ~$ qemu-system-x86_64 Platte.img -machine type=pc,accel=xen

[bearbeiten] Der Accelator KQEMU

Ab QEMU 0.12 wird KQEMU nicht mehr unterstützt. Eine Anleitung zur Installation von QEMU mit KQEMU-Support findet man unter der URL http://qemu-buch.de/d/QEMU+KQEMU_unter_Linux. Die folgenden Beispiele gelten bis zur QEMU-Version 0.11. Wenn Host- und Gast-System in x86-Prozessorarchitektur vorliegen, kann QEMU mit dem optionalen Beschleuniger KQEMU auch die Native Virtualization anwenden. Dabei reicht KQEMU die meisten Befehle direkt an die reelle CPU weiter. Nur die CPU-Befehle, die direkt die Hardware ansprechen, werden abgefangen und durch angepasste Routinen ersetzt. Bei Linux-Gast-Systemen wird die beste Beschleunigung mit dem 2.4er Kernel erreicht. Die 2.6er Versionen funktionieren, sind aber langsamer. Zur Aktivierung der vollen KQEMU-Virtualisierung ist die Option -kernel-kqemu anzuwenden.

Host ~$ qemu Platte.img -kernel-kqemu

Im QEMU-Monitor zeigt der Befehl info kqemu die Verwendung von KQEMU an.

(qemu) info kqemu
kqemu support: enabled for user and kernel code

Eine weitere Option ist -enable-kqemu. Dabei wird KQEMU nur im User-Code aktiviert.

Host ~$ qemu Platte.img -enable-kqemu

Im QEMU-Monitor zeigt der Befehl info kqemu die Verwendung von KQEMU an.

(qemu) info kqemu
kqemu support: enabled for user code

Wenn die Verwendung von KQEMU unterbunden werden soll, ist die Option -no-kqemu anzugeben. Bei der Installation von Microsoft Windows als Gast-System sollte KQEMU deaktiviert werden. Nach der Installation kann KQEMU bei allen Windows-Versionen aktiviert sein.

Host ~$ qemu Platte.img -no-kqemu

Im QEMU-Monitor zeigt der Befehl info kqemu, ob der Beschleuniger KQEMU aktiv ist.

(qemu) info kqemu
kqemu support: disabled

In diesem Fall wurde KQEMU deaktiviert. Im nachfolgenden Beispiel wurde QEMU ohne KQEMU-Support kompiliert. Die Optionen -kernel-kqemu und -no-kqemu stehen nicht zur Verfügung.

(qemu) info kqemu
kqemu support: not compiled

[bearbeiten] Erkennen der Virtualisierung im Gast-System

Mitunter ist es nötig, die verwendete Virtualisierungslösung im Gast-System festzustellen. Unter Linux dienen dazu die Skripte imvirt (http://sourceforge.net/projects/imvirt/) und virt-what (http://people.redhat.com/~rjones/virt-what/). In diesem Beispiel werden diese Pakete unter Ubuntu als Gast-System installiert.

Gast $ sudo apt-get install imvirt virt-what

Läuft das Gast-System unter QEMU mit KVM-Unterstützung, gibt imvirt den die Zeile KVM aus.

Gast $ imvirt
KVM

Wird QEMU ohne KVM-Unterstützung verwendet, wird die Zeile Unknown ausgegeben. Bei einem realen System ist die Ausgabe Physical. Das Skript virt-what gibt bei QEMU mit KVM-Unterstützung kvm aus.

Gast $ sudo virt-what
kvm

Wird QEMU ohne KVM-Unterstützung verwendet, wird die Zeile qemu ausgegeben.


<<<|###| >>>

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Virtuelle_Hardware/_Prozessoren

Diese Seite wurde bisher 70.553 mal abgerufen. Diese Seite wurde zuletzt am 15. März 2012 um 14:39 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …