Wow! Thanks for all the feedback, guys! :^)
I obviously need to tighten up my terminology a bit, and spend even more time in some L4 Kernel sources... (I have Hazelnut here now).
On Mon, Apr 08, 2002 at 05:41:50PM +0200, Robert Kaiser wrote:
If by "work the MMU" you mean to setup/manipulate page tables etc., then no, neither sigma0 nor any other entity outside the µkernel knows how to work the MMU. The Kernel provides a platform independent mechanism (IPC) for pages to migrate between different processes. So, if a process owns a set of pages, it can map or grant (some of) these pages to another process. The reciever of the pages can map (some of) these pages on to another process, and so on.
Yea, that's what I meant by "work the MMU". But you gave me the answer I was looking for--- that the Kernel owns the MMU, not user processes, *and* there's enough of a consistent API there that an OS running under an L4 Kernel need not concern itself with the MMU.
After what's been said above I think it is probably clear now that this is already how things work with L4. However it is not sigma0 that does the mapping, but the kernel. Note that L4 strictly seperates between policy and mechanism: the kernel provides only the mechanism (i.e. how to "work the MMU"), while all the policy (e.g. page replacment algorithms, etc.) is to be implemented in user space.
Right. This is what I'm after.
There are e few things besides the syscall interface that are (and will always remain) platform dependent, though they need not necessarily be implemented in assembly language.
Sure. But it looks like the number of them gets smaller by going with L4. :^)
It all sounds so familiar ... Apparently I have interestst very similar to yours :-). My main problem is time to actually _do_ all these nice things
It's different when you make a living at it, of course, but not too different. I don't yet have the time, either! :^(
b.g.