Subject: Re: LKMs (was Re: IPSEC in GENERIC)
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: None <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 02/20/2006 10:29:56
In message <43F9E3DC.8090002@tadpole.com>", Garrett D'Amore" writes:
>> I'm with you. I've been hacking kernels (or the equivalent) since 1967.
>> I'd much rather have LKMs. If I were king, I'd decree that *all*
>> device drivers must be loadable, and *all* device drivers should be
>> dynamically loaded except for those that are necessary to boot the
>> system and read in new device drivers.
>>
>> --Steven M. Bellovin, http://www.cs.columbia.edu/~smb
>>
>>
>This seems so obvious to me, that I was quite surprised to find the
>point contentious. Anyway, as someone who is interested in it, I've
>raised the question about what is needed to make it happen -- with a
>willingness to provide some assistance if needed.
what's needed to make it happen?
1. the current LKM interface has to die: it's too primitive to support
a this-decade kernel composed of many dynamic modules.
2. We need an in-kernel linker for modules, so that modules can be
loaded early at boot.
3. Optionally, we need machinery in the machine-dependent bootloader
to load modules, and support in the kernel to link those modules into
the kernel "at boot". Examples: loading optional firmware for a boot
device which matches the kernel's driver for that boot device.
(Anyone familiar with Qlogic isp drivers and firmware changes/fixes
knows what [i'm getting at).
I understand FreeBSD has had the relevant machinery for what, nearly a
decade. Oh, and last, to keep us troglodyte builders of embedded
systems happy:
4. config machinery to support current-style fully-static kernels,
for those who decide they still want that.