20
QEMU Binary Translation Ashish Kaila (akaila) Maneet Singh (maneets) 1

QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

  • Upload
    others

  • View
    43

  • Download
    3

Embed Size (px)

Citation preview

Page 1: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

QEMU Binary Translation

Ashish Kaila (akaila)

Maneet Singh (maneets)

1

Page 2: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Virtualization Techniques

Ø Full Virtualization using Binary Translation

2

Page 3: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Virtualization Techniques

Ø OS Assisted Virtualization or Paravirtualization

3

Page 4: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Virtualization Techniques

Ø Hardware Assisted Virtualization

4

Page 5: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Binary Translation

Ø VMWare Software Virtualization

Source Inst Stream (binary)

IR1IR2

.

.IRn

Translation Units (TU)

IR1IR2

.

.IRn

Target Inst Stream (binary)

Compiled Code Fragment (CCF)

Dynamic Binary Translator

5

Page 6: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Binary Translation

Ø QEMU Binary Translation in brief

Source Inst Stream (binary)

Micro-operations

implemented in C

Object file

Target Inst Stream (binary)

dyngen

6

Page 7: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Quick EMUlation (QEMU)

Ø Machine Emulator

Ø Virtualizer

QEMU modes:

Ø User-mode emulation – Allows a process built for one CPU to be

executed on another.

Ø System-mode emulation – Allows emulation of a full system,

including processor and assorted peripherals.7

Page 8: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

References

• A comparison of software and hardware techniques for x86 virtualization – Keith Adams, Ole Agesen, ASPLOS’06

• Understanding Full Virtualization, Paravirtualization and Hardware Assist – VMware Whitepaper

• QEMU, a fast and portable Dynamic Translator – Fabrice Bellard

• QEMU Wiki: wiki.qemu.org

8

Page 9: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

QEMU Deep Dive

Source: wiki.qemu.org

9

Page 10: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

10

Page 11: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

11

Page 12: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

12

Page 13: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

13

Page 14: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

14

Page 15: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

15

Page 16: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

16

Page 17: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

QEMU ARCHITECTURE

17

Page 18: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

18

Page 19: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

1919

Page 20: QEMU Binary Translation412/lectures/L05_QEMU_BT.pdf · Quick EMUlation (QEMU) Ø Machine Emulator Ø Virtualizer QEMU modes: Ø User-mode emulation – Allows a process built for

Thank you

20