3 ms·
This sounds brilliant, virtual memory is a hardware feature which is currently sorely underused in user space. Unfortunately, most mainstream kernels don't give
by pmjordan 16y ago
This sounds brilliant, virtual memory is a hardware feature which is currently sorely underused in user space. Unfortunately, most mainstream kernels don't give you deep enough access to the VM subsystem for serious trickery. For example, you can't map the same memory at multiple addresses unless it's file-backed; there's just no API for it. I have to admit I don't know if this would cause problems with caches on certain hardware.
In any case, you're free to mess with (virtualised) page tables when the parent is a hypervisor.
- jasonwatkinspdx 16y agoI agree. While I'm not a systems programmer, from what I've read (particularly from Poul-Henning Kamp) I think enriching the virtual memory abstraction is going to be a key area for OS innovation shortly. MMU's and the signaling mechanisms offer a unique ability to trap events happening dynamically within your program. I think by revising the userland/kernel API, I think there's likely many interesting ways for userland software to better utilize the MMU's in modern processors.