[openbeos] Re: Kernel status (POSIX)

  • From: "Michael Phipps" <mphipps1@xxxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Wed, 02 Jan 2002 22:29:52 -0500

>>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.

Eh. Assembly is over-rated. The number of people who *can* write better code 
than
the compiler is *far* smaller than the number who *think* that they can. And 
that
is increasing by the day. Not to sound old, but back in my Amiga days, it 
wasn't too
tough to do better 68k asm than SAS/C. But I would be surprised if more than a 
few people
on this list (or, in fact, in the whole Be community) could write better asm 
than gcc.
Personally, I couldn't. Not without a *WHOLE* lot of learning. Most people save 
most
time by improving their algorithms. ;-)

>>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. :)

I think that (and this may just be me) this is probably the least likely 
optimization that people will
find. Now, having said that, if someone will find it, the NetBSD people will. 
:-)

>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 100% agree. Travis did *exceptional* work with this. Better than the Linux 
source,
for example, that I have looked at. Way better. Porting NewOS is trivial 
*COMPARED* to
other OS's. But getting a functioning kernel is *FAR* different from a complete 
and tested
system. :-) That is what I have been (subtly) saying to the PPC folks. I like 
PPC better, too,
as far as chip deisgn and all goes. But basically, you need to write a whole 
new set of drivers
(or at least many of them) for PPC. The PCI, USB, IDE (if applicable) and SCSI 
drivers would 
need work, if not a re-write. Then there is video, audio, networking, internal 
modems, etc.
Even the iMac's - there are a zillion motherboard revisions and a couple of 
different models
now. Not to mention the colors. ;-) A port to make the raw kernel (no devices) 
work on another
chip is as trivial as that process can be, IMHO. Writing device drivers, 
though, is never trivial.
Especially without specs. :-/

I would *love* to buy my Mom an iMac and throw OBOS R1 on it. Really. I think 
that the hardware
is pretty slick. But I can't tell people that we will ship in 2009, either. :-/

>>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.. :)

:-) My point was that the request wasn't clear. :-) And I don't *ever* want to 
be project dictator.
I *need* input from others. That is really the whole point of this list. :-)

>You choose the mandates, I'm just throwing in my CAD0.02 (effectively nothing! 
>Yay!) :)

Come spend it in Rochester - we need it. :-)


Other related posts: