Microkernel virtualization under one roof
- dare the impossible -
Microkernel virtualization under one roof - dare the impossible - - - PowerPoint PPT Presentation
Microkernel virtualization under one roof - dare the impossible - Alexander Bttcher < alexander.boettcher@genode-labs.com > Outline 1. Introduction 2. Kernel interfaces 3. VM interface harmonization 4. VMMs harmonized 5. Conclusion
Microkernel virtualization under one roof - dare the impossible - 2
Microkernel virtualization under one roof - dare the impossible - 3
Microkernel virtualization under one roof - dare the impossible - 4
Microkernel virtualization under one roof - dare the impossible - 5
Microkernel virtualization under one roof - dare the impossible - 6
Microkernel virtualization under one roof - dare the impossible - 7
Microkernel virtualization under one roof - dare the impossible - 8
Microkernel virtualization under one roof - dare the impossible - 9
Microkernel virtualization under one roof - dare the impossible - 10
Microkernel virtualization under one roof - dare the impossible - 10
Microkernel virtualization under one roof - dare the impossible - 10
Microkernel virtualization under one roof - dare the impossible - 11
UTCB UTCB
copy Microkernel virtualization under one roof - dare the impossible - 12
kernel space user space
Microkernel virtualization under one roof - dare the impossible - 13
kernel space user space
Microkernel virtualization under one roof - dare the impossible - 14
kernel space user space
Microkernel virtualization under one roof - dare the impossible - 15
kernel space user space
thread vCPU IPC call IPC reply Microkernel virtualization under one roof - dare the impossible - 16
kernel space user space
thread vCPU syscall done vmresume (blocking) Microkernel virtualization under one roof - dare the impossible - 17
kernel space user space
thread vCPU syscall done vmenter (blocking) Microkernel virtualization under one roof - dare the impossible - 18
kernel space user space
thread vCPU signal run Microkernel virtualization under one roof - dare the impossible - 19
Microkernel virtualization under one roof - dare the impossible - 20
Microkernel virtualization under one roof - dare the impossible - 21
Microkernel virtualization under one roof - dare the impossible - 21
kernel space user space entrypoint vCPU0 vCPUn VM event signal signal
Microkernel virtualization under one roof - dare the impossible - 22
kernel space user space
entrypoint A vCPU A0 ... vCPU An entrypoint B vCPU B0 ... vCPU Bn
Microkernel virtualization under one roof - dare the impossible - 23
kernel space user space
ld.lib.so VM interface Entrypoint vCPU0 ... vCPUn
Microkernel virtualization under one roof - dare the impossible - 24
Microkernel virtualization under one roof - dare the impossible - 25
VMM
ld.lib.so VM interface (client)
init core
VM interface (server) connection kernel kernel space user space entrypoint
Microkernel virtualization under one roof - dare the impossible - 26
VMM
ld.lib.so VM interface (client)
init core
VM interface (server) VM session kernel kernel space user space entrypoint vCPU0 ... vCPUn
Microkernel virtualization under one roof - dare the impossible - 27
VMM
ld.lib.so VM interface (client)
init core
VM interface (server) VM session kernel kernel space user space entrypoint vCPU0 ... vCPUn
Microkernel virtualization under one roof - dare the impossible - 28
VMM
UTCB
kernel space user space
NOVA microhypervisor UTCB VMCS/VMCB
thread vCPU IPC call IPC reply
VMM
UTCB vCPU state
kernel space user space
Genode’s -hw- microkernel (ARM) UTCB vCPU state
thread vCPU signal run
Microkernel virtualization under one roof - dare the impossible - 29
Event source
(timer)
VMM kernel VM
vCPU vCPU0 vCPU1 Entrypoint hw/NOVA VM exit signal/IPC call run/IPC reply non-blocking VM resume event (timeout) pause/recall non-blocking VM exit signal/IPC call run/IPC reply inject vIRQ
Microkernel virtualization under one roof - dare the impossible - 30
VMM
IPCBuffer
kernel space user space
seL4 microkernel IPCBuffer vCPU state VMCS
thread vCPU syscall done vmenter (blocking)
VMM
UTCB vCPU state
kernel space user space
Fiasco.OC microkernel UTCB vCPU state VMCS/VMCB
thread vCPU syscall done vmresume (blocking)
Microkernel virtualization under one roof - dare the impossible - 31
Event source
(timer)
VMM kernel VM
vCPU0 vCPU1 Entrypoint seL4/Fiasco.OC vmenter/vmresume blocking syscall VM resume
Microkernel virtualization under one roof - dare the impossible - 32
Event source
(timer)
VMM kernel VM
vCPU0 vCPU1 Entrypoint Handler0 Handler1 run run non-blocking vmenter/vmresume VM resume run run non-blocking vmenter/vmresume VM resume
Microkernel virtualization under one roof - dare the impossible - 33
Event source
(timer)
VMM kernel VM
vCPU0 vCPU1 Entrypoint Handler0 seL4/Fiasco.OC run non-blocking vmenter/vmresume blocking syscall VM resume event (timeout) pause cancel vmenter/vmresume vmenter/vmresume syscall returns signal run inject vIRQ vmenter/vmresume inject vIRQ VM resume
Microkernel virtualization under one roof - dare the impossible - 34
Microkernel virtualization under one roof - dare the impossible - 35
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 36
Microkernel virtualization under one roof - dare the impossible - 37
Microkernel virtualization under one roof - dare the impossible - 37
Microkernel virtualization under one roof - dare the impossible - 37
Microkernel virtualization under one roof - dare the impossible - 38
Microkernel virtualization under one roof - dare the impossible - 39
Microkernel virtualization under one roof - dare the impossible - 40
Microkernel virtualization under one roof - dare the impossible - 41
Microkernel virtualization under one roof - dare the impossible - 42
Microkernel virtualization under one roof - dare the impossible - 43
Microkernel virtualization under one roof - dare the impossible - 44
Microkernel virtualization under one roof - dare the impossible - 45