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
