Guys:
I'm an L4 newbie. I've booted it on my PC, I've read a lot of the online docs, and I've looked at some of the code. But I've been doing embedded systems for more than ten years now, so I know a thing or two about computers and operating systems.
I'm interested in using L4 as a foundation for a new, yet-to-be-written Linux replacement intended primarily for use in embedded systems. My main motivations are for an OS that is portable, is understandable, has low interrupt latency, and has a small memory footprint. I'm thinking along the same lines as L4-Linux, but my OS would probably be written in C++ and make more use of L4 servers for hardware i/o.
Here are my questions:
One of the L4 manuals I've read says that when an OS running under L4 starts, it should take all free memory from sigma0 and then manage the pages itself. To me, this means that the OS has to know how to interact with the host CPU's MMU hardware, which is obviously hardware-dependent and therefore undesirable in a portable OS. It also appears to be redundant--- sigma0 already knows how to work the MMU. Performance issues aside, would letting sigma0 do page mapping and unmapping eliminate the need for an OS running under it to know how the MMU interface works, and thereby make the OS a little more portable? Is this a reasonable approach?
What is the likelihood that an L4-based OS would need no assembly language at all, other than the syscall interface? I'm thinking along the lines of "to port this OS to your CPU, just port L4 and then recompile the OS sources."
I'm eyeing ARM, MIPS, SH and x86 targets--- all of which I work with every day. I have single-board computers representing all four architectures in my lab here right now, and I'm doing something with all of them almost all the time. That's why portability is important to me. My customers think Linux is great because it's more portable than the alternatives, but I think it isn't nearly portable enough. And it scores low marks for understandability, interrupt latency and footprint. Oh, and debuggability---I love your "KD:" prompt! :^)
Thanks!
b.g.