(...) Can we make it smaller?

Dick Dunn rcd at ico.isc.com
Thu Apr 25 05:26:51 AEST 1991


In article <7395 at spdcc.SPDCC.COM>, rbraun at spdcc.COM (Rich Braun) writes:

> Reading this thread, I can't help but to wonder:  why worry about
> kernel size, these days?  I've long been one to complain about the fact
> that software seems to get larger in direct proportion to the decrease
> in memory costs, and often slower due to its increasing complexity, but
> in the case of a reasonably well-performing O/S with lots of features,
> why worry so much about kernel size?

First, I think one can argue whether the kernels we're seeing can really be
characterized as "reasonably well-performing".  My own belief is that we've
become inured to the performance costs of kernel bloat, and rapidly in-
creasing hardware speed has covered for us...but I think we're wasting a
lot of the hardware's potential.  This has hurt UNIX in the PC world,
because it's been too big and slow to take advantage of the low-end
machines that would open large markets for it.

Second, I see the expansion of kernel code (not data) as a reliability/
correctness problem.  We keep pushing more and more crud into the code
which runs in privileged mode, and which manages the disks and all the data
structures critical to the integrity of your data.  Each time you add one
feature, you add a bunch of possibilities for wrong interactions (between
that new feature and all the existing ones).  It's very hard to "program
around" kernel bugs the way you can with applications.  The more code you
get in the kernel, the harder it is for anyone to understand it, hence the
more likely new code will be implemented without full awareness of what's
going on around it.  And, let's be frank, the more kernel code you're
getting, the lower the average quality of the programmer writing it.

Rich is right--the memory cost is not that big an issue (any more).  But I
do think that performance and correctness are serious concerns, and getting
more serious every day.

Let's add another: software cost.  It costs a lot of money to add code to
the kernel.  The writing, debugging, testing, etc. is more expensive than
app code.  You're paying for it, and you're not going to see costs drop as
long as everybody's gone feature-mad-hog-wild making major additions in
each release.

> Add another megabyte to the system and the problem will go away.  Seems
> a fairly simple and economical solution.  Even at 1-2Mb, kernels remain
> significantly smaller than most applications...

I assume you're talking about X applications?  I don't have *any* apps on
my machine which come within a factor of 2 of the kernel size, except in
/usr/bin/X11 (and only a few there).  Most of what I use is in the range
of 10-30 Kb of code.  (That strikes me as very backwards--that the fattest
chunk of code I see is the one that is most critical to the system.)
-- 
Dick Dunn     rcd at ico.isc.com -or- ico!rcd       Boulder, CO   (303)449-2870
   ...While you were reading this, Motif grew by another kilobyte.



More information about the Comp.unix.sysv386 mailing list