Subject: RE: Severe and increasing bloat of even "tiny" kernels
To: , <>
From: Prasad V Nuli <>
List: port-i386
Date: 09/04/2000 08:07:14
This is very interesting e-mail. Lot of information. I am trying to build a
very small kernel that I can download into an embedded board. What
determines the kernel size ? there some device specific files and other
sections for compatability. I am curious if there is any statistics which
tells how much some of these options adds to the kernel size.

Prasad Nuli

-----Original Message-----
From: []On
Behalf Of Thor Lancelot Simon
Sent: Sunday, September 03, 2000 10:27 PM
Subject: Severe and increasing bloat of even "tiny" kernels

I am enclosing the config file for a machine of mine which has hardware
suitable for running 1.3, 1.4, and 1.5.

Essentially the *same* configuration for 1.3.3 was 587K.  For 1.4.2 it's
690K (a 18% increase in size).  For 1.5_ALPHA it's 839K (a 22% increase).

Note that these are not GENERIC kernels, reflecting new and useful hardware
now supported.  These kernels are stripped down to include *only* the
hardware the machine includes, and have had things like "isa at pcib" and
"EXEC_AOUT" removed that almost nobody removes from their kernels (but

The 1.3.3 kernel took 126 seconds to build.   The 1.4.2 kernel took 153
seconds to build.  The 1.5_ALPHA kernel took 262 seconds to build on
a somewhat faster machine than the first two.

Not only are we getting worse, the rate at which we're getting worse is
increasing significantly.  Shame on us!

We noticed a couple of obvious crocks of s____ while doing this test (and
some associated benchmarking).  One was the EXEC_AOUT presence in std.i386,
when AOUT is *not* the default object format.  With this in the file that
provides the "machine i386" statement no naive user will ever understand
he can remove it safely.  The other was that even kernels with *no* COMPAT_
options include about 50K of useless "compat" stuff (but this was true for
1.4.2 as well, which means that our bloat is increasing even faster than it
might seem).

The rest of the bloat, I can't account for.  Sigh.  Given the cache effects,
this probably makes us run slower, too.


Version			Size		Number of .o files	    Time
NetBSD-1.3.3		587K		?? (didn't keep this info)  126 sec
NetBSD-1.4.2		690K		257			    286 sec
NetBSD-1.5_ALPHA	839K		281			    262 sec**

**built on different, faster machine

Thor Lancelot Simon	                            
	"And where do all these highways go, now that we are free?"