摘自Linux Virtualization with Lguest,Author:John Quigley
Lguest Launcher
Launcher is an ELF userspace app that launches and monitors guests。
它執行以下任務:
1. maps guest kernel imagine into host’s memory
2.opens /dev/lguest and writes config info about guest
3.hypervisor uses this to initialize and launch guest
4.open procfile used for ongoing control, console I/O,DMA-like I/O via shmem
注意: Physical memory in the Guest is the Host’s virtual memory.
Lguest Hypervisor
The hypervisor is simply a loadablekernel module... cool!
- Being able to insert a module and start new guest
- provides "low commitment" path to virtualization
- Provides the /dev/lguest interface, whereby userspace
- launcher controls and communicates with guest
First write tells us memory size, pagetable, entry point,kernel offset
A read will run guest until pending signal (-EINTR), or guest does DMA out to launcher
- The Lguest hypervisor is unique in several ways.
- Host domain is simply a normal kernel in ring-0
- Hypervisor is loaded into top of kernel memory
Hypervisor contains only core facilities:
1domain switching code