linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Clark <jimwclark@ntlworld.com>
To: Albert Cahalan <albert@users.sf.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Driver Model 2 Proposal - Linux Kernel Performance v Usability
Date: Thu, 4 Sep 2003 21:14:45 +0100	[thread overview]
Message-ID: <200309042114.45234.jimwclark@ntlworld.com> (raw)
In-Reply-To: <1062637356.846.3471.camel@cube>

Thank you for this (and the few other) sensible appraisal of my 'proposal'. 

I'm very surprised by the number of posts that have ranted about Open/Close 
source, GPL/taint issues etc. This is not about source code it is about 
making Linux usable by the masses. It may be technically superior to follow 
the current model, but if the barrier to entry is very high (and it is!) then 
the project will continue to be a niche project. A binary model doesn't alter 
the community or the benefits of public source code. I agree that it is an 
extra interface and will carry a performance hit - I think this is worth it. 
Windows has many faults but drivers are often compatible across major 
releases and VERY compatible across minor releases. It is no accident that it 
has 90% of the desktop market. If we are going to improve this situation this 
issue MUST be confronted.

I am currently collating the arguments for and (mostly) against the idea. If I 
don't get flamed in the meantime I may come back with more...

James



On Thursday 04 Sep 2003 2:02 am, you wrote:
> > Following my initial post yesterday please find attached my
> > proposal for a binary 'plugin' interface:
>
> There was one, called UDI. It was rejected.
>
> > I believe that sometimes the ultimate goals of stability and
> > portability get lost in the debate on OSS and desire to allow
> > anyone to  contribute.
>
> If "stability" means "no changes", then don't upgrade
> for a few years.
>
> If "stability" means "no crashes", then a binary
> interface is harmful. Extra layers mean extra bugs,
> and the layers make debugging more difficult.
>
> Portability??? Linux beats every other OS for that.
>
> > 3. Design 'plugin' interface to be extensible as possible
> > and then rarely remove support from interface. Extending
> > interface is fine but should be done in a considered way
> > to avoid interface bloat. Suggest interface supports
> > dependant 'plugins'
>
> Removal of crud is important. We keep things simple,
> fast, and small.
>
> > 4. Allow 'plugins' to be bypassed at boot - perhaps a
> > minimal 'known good' list
>
> This works already. Put "init=/bin/bash" on the kernel
> command line (at the lilo, grub, or syslinux prompt) and
> you will bypass all of the start-up scripts. That will
> cause you to skip any modules (drivers, plugins, whatever)
> that would be loaded by your boot scripts.
>
> > 5. Ultimately, even FS 'plugins' could be created
> > although IPL would be required to load these.
>
> IPL is some old IBM mainframe term. In the Linux and
> UNIX world we call it boot, bootstrap, start-up, etc.
>
> We can already make our filesystem a loadable module.
> Your boot loader (lilo, grub, or syslinux) has the
> ability to load an "initrd". This gives you something
> kind of like a ramdisk, but without the wasted space.
> The scripts on the initrd can then load drivers for
> your disk (IDE, SCSI, etc.) and filesystem (ext2, ext3,
> reiserfs, reiser4, jfs, xfs, etc.). After the drivers
> are loaded, there's a mount() syscall, a pivit_root()
> syscall... and soon enough the initrd is gone and you
> have the real root filesystem mounted.
>
> > 1. Make Linux easier to use
>
> I doubt it. There would be a promise of binary
> compatibility that wouldn't be possible to maintain.
> Microsoft fails often enough; notice how Win98
> broke SCSI drivers that people were using.
>
> Without such a promise, people don't grow to depend
> on an interface that ultimately can't be supported.
>
> > 2. The ability to replace even very core Kernel
> > components without a restart.
>
> That's a fantasy, more-or-less. Binary patches can
> be done on a case-by-case basis at great expense.
> Novell did it sometimes. Microsoft didn't even try.
>
> > 3. Allow faulty 'plugins' to be fixed/replaced in
> > isolation. No other system impact.
>
> Linux supports this as well as can be. Any driver
> (module, plugin, whatever) has the ability to crash
> your system BY DEFINITION of having the necessary
> power to control your hardware.
>
> > 4. 'Plugins' could create their own interfaces as
> > load time. This would remove the need to pre-populate /dev.
>
> We have this as an option; we call it devfs.
> It has a problem: permission changes will not
> persist across a reboot.
>
> > 5. Remove need for joe soap user to often recompile Kernel.
>
> Already done: buy a CD-ROM from Red Hat
>
> > 6. Remove link between specific module versions
> > and Kernel versions.
>
> It's partly done (optional), and partly not desireable.
>
> > 7. Reduce need for major Kernel releases. Allow effort
> > to concentrate on improving Kernel not maintaining
> > ever increasing Kernel source that includes support
> > for the 'Kitchen Sink'
>
> No. It's damn nice to have all the source code in one
> place, all updated together, supporting whatever old
> hardware one may have.
>
> It's only recently (2.5.xx kernel series) that Linux
> dropped support for the PC-XT hard drive interface.
> Know what that is? It was introduced around 1981 maybe.
> Support was only dropped because all the disks have died.
>
> > 8. Make core Kernel more stable. Less releases and
> > less changes mean less bugs. It would be easy to
> > identify offending 'plugin' by simply starting up
> > the Kernel with it disabled.
>
> We can do this now. It's not a kernel issue though.
> Starting up with things disabled is a feature of
> your boot scripts, which are provided by your Linux
> distribution. See your Red Hat documentation, or
> your SuSE documentation, etc.
>
> > 9. Remove need for modules to be maintained in
> > sync with each Kernel thus  freeing 'module' developers
> > to add improved features or work on new projects.
>
> Then nobody would maintain them.


       reply	other threads:[~2003-09-04 20:15 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1062637356.846.3471.camel@cube>
2003-09-04 20:14 ` James Clark [this message]
2003-09-04 20:27   ` Driver Model 2 Proposal - Linux Kernel Performance v Usability Mike Fedyk
2003-09-04 21:16     ` James Clark
2003-09-04 21:50       ` Mike Fedyk
2003-09-04 22:10       ` insecure
2003-09-04 22:01     ` jdow
2003-09-04 20:29   ` Rik van Riel
2003-09-04 21:12     ` James Clark
2003-09-04 21:40       ` Alan Cox
2003-09-04 21:41       ` Bartlomiej Zolnierkiewicz
2003-09-04 22:19       ` Jamie Lokier
2003-09-04 21:29   ` Richard B. Johnson
2003-09-04 21:51     ` James Clark
2003-09-04 22:06       ` Alan Cox
2003-09-04 22:10       ` Martin Mares
2003-09-04 22:23       ` Gustav Petersson
2003-09-05 17:52       ` Valdis.Kletnieks
2003-09-05 18:31         ` James Clark
2003-09-05 18:59           ` Martin Schlemmer
2003-09-05 19:12           ` Dale P. Smith
2003-09-05 19:45             ` Stan Bubrouski
2003-09-05 19:59           ` Richard B. Johnson
2003-09-05 20:01             ` James Clark
2003-09-05 20:08           ` Mike Fedyk
2003-09-05 21:15           ` Valdis.Kletnieks
2003-09-05 23:19             ` Bernd Eckenfels
2003-09-10 20:50     ` Timothy Miller
2003-09-10 20:48       ` Richard B. Johnson
2003-09-10 23:22         ` James Clark
2003-09-10 23:58           ` Greg KH
2003-09-12 20:51         ` Timothy Miller
2003-09-12 20:55           ` Tim Hockin
2003-09-15 11:39           ` Richard B. Johnson
2003-09-05 20:53 Chad Kitching
2003-09-05 23:30 ` Mike Fedyk
  -- strict thread matches above, loose matches on Subject: below --
2003-09-04 22:41 Chad Kitching
2003-09-03 17:53 James Clark
2003-09-03 17:49 ` Andre Hedrick
2003-09-03 18:23   ` Guillaume Morin
2003-09-04  4:10     ` Andre Hedrick
2003-09-03 18:35   ` Guillaume Morin
2003-09-03 19:30     ` Andre Hedrick
2003-09-03 18:18 ` Greg KH
2003-09-03 18:23 ` Richard B. Johnson
2003-09-03 18:49 ` Patrick Mochel
2003-09-03 18:58 ` Gábor Lénárt
2003-09-03 20:18 ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200309042114.45234.jimwclark@ntlworld.com \
    --to=jimwclark@ntlworld.com \
    --cc=albert@users.sf.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).