Hi Julian,

> Vancouver on NUL has a IMHO non obvious way of managing virtual
> memory. How does Vancouver on Genode allocate VM memory?

can you elaborate a bit more? Which part do you consider non-obvious in
particular?

In general, Vancouver on Genode tries to use plain Genode mechanisms to
manage its address space wherever possible. For example, for managing
the guest-physical memory, Vancouver needs to manually populate the
lower portion of its virtual address space (which is a shadow of the
guest-physical memory). Consequently, we have to make sure that no other
memory object ends up being attached to this virtual memory area. We do
this by creating a managed dataspace (in fact, this is an RM session)
and attach it at the lower part of Vancouver's address space. This way,
this area will never used for something else.

If you are interested in the implementation, please take a look at the
'Guest_memory' class and the accompanying comments:


https://github.com/genodelabs/genode/blob/master/ports/src/vancouver/main.cc

That said, even though I think that the memory management is implemented
in a clean way, is it certainly not obvious either. :-)

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to