Linked by Thom Holwerda on Sun 16th Apr 2006 15:36 UTC
Thread beginning with comment 115547
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Why should there be kernels anyway?
by Cloudy on Mon 17th Apr 2006 20:29
in reply to "RE: Why should there be kernels anyway?"
The trick is to use systems on which the transition between protection domains is assisted by the VM hardware rather than hindered. The PA-RISC VM model, for example, makes transitions between memory protection domains very fast, nearly as fast as procedure calls that don't transition.
This is what hardware designers and OS designers keep missing. The VM system should make accessability and addressability of memory distinct so as implementation of protection domains in this way is cheap.
We at HP tried to convince Intel to do this in Itanium, but I didn't stick around long enough to see if it made it.




Member since:
2005-11-16
I think the above could be achieved with a solution called 'memory map'. Just like a process has a page map, a software component should also have a memory map, i.e. a range of addresses that it is allowed to access.
Accessing RAM is slow, but accessing several levels of the paging structures and severel levels of "memory map" structures and the final physical RAM location (every time the CPU accesses RAM) would be unbearable. That's why CPUs cache the paging structures (TLB), and that's why they'd need to cache the "memory map structures". If you're going to change the "memory map" structures every time the CPU changes between software components then you'll lose the benefits of this caching and end up with "memory map structure cache" misses.
You might aswell just change the paging structures instead (which is what micro-kernels do)...