Quoth "Michael Phipps": >>I agree totally that mandating portability makes sense. I don't know that >>it's >>a good idea to mandate specifically that PPC support should be in there or >>not, >>though PPC is probably the next most likely target after i386.. >> >><shrug> > >What does it mean to mandate portability? >Does it mean writing no assembly code at all? Go ahead and try to write a >kernel that wa >y. :-) Well, of course not. :) >Does it mean writing as little assembly as possible? That is good kernel >design. Good for design, not so good for speed. >Does it mean being modular? That, too, is good kernel design. And the BeOS way. This is exactly it. Make strong use of abstraction layers, when appropriate. Use a nice clean interface, so it's easy to write a few simple assembly functions to get a port *running*, but it isn't necessary to stick just to C, inlined assembly is fine too, and can be extremely beneficial. I've seen bits of NetBSD be rewritten as assembly, and improve say, network performance by 5-20%, depending on the hardware, yet not impact portability whatsoever, since there's still the C functions available for new ports until whatever time they choose to write the optimized version, or not. :) When it comes down to it, it's not too difficult to work in the portability bits, and the gain is huge when someone wants to add New Platform X(tm) support to the OS. >I am not sure what I, as a kernel developer, should feel mandated to do, here. You're the one making the decisions at the moment, I think.. :) You choose the mandates, I'm just throwing in my CAD0.02 (effectively nothing! Yay!) :)