I recently went on a wild chase to find the memory used by VirtualBox. As you may know, in the task manager, or Process Explorer, the memory used by VirtualBox is only a few hundred Megabytes, not matter how much memory is actually used by the guest host. In my case, I was using a 2GB VM, so I wanted to understand why it was that I couldn't see that memory use anywhere.
After a lot of googling, I downloaded RamMap and finally found a place where the guest memory amount is displayed:
When I stop my VM, System PTE drop to 40MB, and it goes up back to 2GB when starting again. So clearly, this is where my guest OS reside!
So my question is : why is the memory for a virtualized guest stored at this place? My limited understanding of System PTE is that is represent the mapping between the real memory and the various process address spaces. So I would expected no much more that some kind of array mapping one index to another. Why would we put an entire OS memory there?
Thank you for enlightening me!