Re: [Announce] BKL shifting into drivers and filesystems - beware

From: Jeff V. Merkey (jmerkey@timpanogas.com)
Date: Thu Jul 13 2000 - 16:59:43 EST


Linus Torvalds wrote:
>
> On Thu, 13 Jul 2000, Jeff V. Merkey wrote:
> > >
> >
> > Breaking the device drivers, protocol stacks, disk drivers, file
> > systems, etc. out of the kernel proper and forcing them to always be
> > loadable modules would achieve this end with the added benefit of
> > allowing folks to plug in their own optimized binary versions -- Like
> > NetWare and NT are today.
>
> No, it would be a complete disaster.
>
> You'd get the same kind of disaster that all binary-only modules have: you
> cannot change fundamental interfaces.
>
> In another five or ten years, we may be at the point where the fundamental
> interfaces _really_ don't change, and that we've handled all the
> scalability issues and that we have no need to add new interfaces. At THAT
> point we can just say "ok, drivers are truly independent".
>
> It's not true today.
>
> Basically, the thing that allows 2.4.x to scale as well as it does (and it
> does really well: look at the current SpecWeb99 world record numbers, and
> compare it to the also-ran second place), is exactly because we had all
> the source in one place, and we _could_ make fundamental changes. Claiming
> anything else is silly - if we had broken-up device drivers, we'd have
> been up shit creek without a paddle. End of story.
>
> This is the thing that people don't understand. In theory it is wonderful
> to have modularization. It's the best thing on earth. But if that
> modularization means that you can't fix the module interfaces, then you're
> going to remain broken for all time.
>
> This is why I rather fix module interfaces early and often. Make sure that
> we (a) have good interfaces that matches what the different parts of the
> kernel want to have and (b) make people used to the fact that a driver or
> a filesystem is not a static thing, and keep them aware of the fact that
> it depends on the kernel underneath it.
>
> We're certainly getting closer to a good interface in many areas. The
> current VFS interfaces, for example, are pretty good - although many of
> the less important ones still depend on the kernel lock etc. But we're
> _not_ at the stage yet where we could just say "ok, a driver is a driver,
> and we don't need to worry about it".
>
> Linus

Linus,

We already have versioning with modver to enforce version mismatches.
This sounds like a control and freedom issue relative to being able to
efficiently make changes, which I agree is very important. Novell
requires all driver writers to provide source code for driver
certification for the very reasons you cite. I think this could be
made a policy issue since it relates more to the human element than any
technical arguments (other than the freedom to fixed busted and shitty
drivers, and BTW I agree completely with your position here).

If folks were always required by licensing to post the code for binary
drivers they want you to consider for inclusion in Linux (the Linus
Torvalds driver certifiation program), I think this could be easily
dealt with. Also, having an NLM-like "kernel only" interface much like
modutils provides that would allow you to segregate specific code pieces
for Linux kernel mode only would allow you the freedom to control these
issues since you could easily create a special binary interface just for
this stuff -- and you'd be the one making the rules the rest of us live
by.

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jul 15 2000 - 21:00:17 EST