[Lguest] Lguest mechanism.
Rusty Russell
rusty at rustcorp.com.au
Mon Jun 2 12:08:52 EST 2008
On Saturday 31 May 2008 08:16:34 Sujit Sanjeev wrote:
> Hi Rusty,
>
> I was wondering if there are any documents which could briefly explain the
> structure of the virtual address
> space of a normal user process executing within a guest.
No single document, but it's conceptually simple. The documentation does
explain this on the way through the code.
> Basically, I would like to understand how the traditional 3G/1G
> (user:kernel) virtual addressing is
> changed due to execution within a VM. How is the virtual address space of
> the VMM/host kernel included
> in the normal 4GB address space of a process?
The guest controls its virtual mappings as normal. It is the "physical" pages
of the guest which are really the virtual pages of the launcher:
Guest: Host:
Page tables: Offset:
virtual -> guest physical guest physical -> host virtual
Page tables:
host virtual -> host physical
So the guest puts what (what it thinks are) physical page numbers in its page
tables, and the host offsets and maps those to the real physical page numbers
for the real page tables for the guest.
See "Guest" and "Host" part of documentation.
Cheers,
Rusty.
More information about the Lguest
mailing list