Subject: Re: Back to business [was: the Be thread]
From: Crispin Cowan <crispin@cse.ogi.edu>
Date: Wed, 24 Nov 1999 20:11:46 +0000

Keith Bostic wrote:

> So, that said, the interesting question for the manager of a
> distributed open source project is: should I deliberately shun
> complex solutions, in favor of a brute-force modular approach
> that lets me have a less sophisticated programmer base, and
> that requires less start-up time?  Software written that way
> is likely to have fewer bugs than more complex solutions, plus
> I'm confident that CPUs will continue to become faster.

That appears to be one of Linus's driving design philosophies, although he
doesn't quite put it that way.  Linus is often quoted as saying that complex
things should be done in user space, not in the kernel.  This very likely had
directly resulted in a relatively simple and modular kernel.  A further
consequence appears to be that the kernel does benefit from a voluminous, less
sophisticated programmer base than would otherwise be the case.  Consider it the
"RISC" approach to kernel design.

Of course the corollary to RISC processors is complex compilers.  One of my
favorite definitions of "RISC" is "Relegate Important Stuff to Compiler" :-)
I think a similar effect is also operating between the Linux kernel and the
compiler, and between the Linux kernel and application space in general:

   * gcc is vastly complex
   * glibc is very complex
   * UNIX in general relegates graphics to user land (X windows) in contrast to
     the MS approach of an integrated window system.

IMHO, these effects are beneficial to Linux.  It has made Linux more compact,
faster, and more stable, as well as encouraging rapid development.

Crispin
-----
Crispin Cowan, CTO, WireX Communications, Inc.    http://wirex.com
Free Hardened Linux Distribution:                 http://immunix.org