Re: Automatic Configuration of a Kernel

David Lang
2005-09-15T10:27:32Z

On Wed, 14 Sep 2005, Lee Revell wrote:

> On Wed, 2005-09-14 at 19:03 -0700, David Lang wrote:
>> another advantage of having an auto-config for the kernel is that people
>> who are experimenting may have the auto-config find hardware that they
>> didn't realize they had (or they didn't realize that support had been
>> added)
>>
>> I know that most of my kernels don't have support for everything the
>> motherboards have on them (mostly I don't care much about the other
>> features, but in some cases they weren't supported, or weren't worth the
>> hassle of figureing the correct config for when I started, and I've never
>> gone back to try and figure it out)
>
> Why does this have to be in the kernel again? Isn't this exactly what
> you get with a fully modular config and hotplug?

I happen to be one of those crazy people who believe that there are
advantages to building non-modular kernels.

1. they compile faster

2. they use less memory (if tightly configured) as each module loaded will
average a 1/2 page of wasted memory

3. it's far easier to moveone file around then a file and a directory tree
of modules

4. the non-modular kernel will be slightly faster (all calls to modules
must be far calls, if it's not modular the compiler can optimize some of
the calls)

5. once kmem and mem can be made read-only there is a security advantage
in not having kernel modules available (yes the machine can be rebooted
into a new kernel, but that's easier to detect then a module getting
loaded)

6. the kernel takes less space on disk (matters in embedded devices and
other places where your media is small)

none of this matters if you're dealing with a large desktop system that
you are installing from a series of CD/DVD disks from a top-5 distro, but
that's not the entire world

note that a good autodetect routine will have no impact on the kernel once
it's compiled, it just generates a .config file.

I believe it makes more sense to have this be part of the kernel source
distro then a seperate project as it needs to have a lot of knowledge
about what a particular kernel supports and that's going to change from
release to release.

David Lang

--
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
-- C.A.R. Hoare