public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: John Richard Moser <nigelenki@comcast.net>
To: John Richard Moser <nigelenki@comcast.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: binary drivers and development
Date: Thu, 10 Mar 2005 12:24:15 -0500	[thread overview]
Message-ID: <423082BF.6060007@comcast.net> (raw)
In-Reply-To: <423075B7.5080004@comcast.net>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've done more thought, here's a small list of advantages on using
binary drivers, specifically considering UDI.  You can consider a
different implementation for binary drivers as well, with most of the
same advantages.

 - Smaller kernel tree
   The kernel tree would no longer contain all of the drivers; they'd
   slowly have to bleed into UDI until most were there
 - Better focused development
   The kernel's core would be the core.  Driver code would be isolated,
   so work on the kernel would affect the kernel only and not any
   drivers.  UDI is a standard interface that shouldn't be broken.  This
   means that work on the high-level drivers will not need to be sanity
   checked a thousand times against the PCI Bus interface or the USB
   host controler API or whatnot.
 - Faster rebuilding for developers
   The isolation between drivers and core would make rebuilding involve
   the particular component (driver, core).  A "broken driver" would
   just require recoding and rebuilding the driver; a "broken kernel"
   would require building pretty much a skeletal core
 - UDI supplies SMP safety
   The UDI page brags[1]:

   "An advanced scheduling model. Multiple driver instances can be run
    in parallel on multiple processors with no lock management performed
    by the driver. Free paralllism and scalability!"

   Drivers can be considered SMP safe, apparently.  Inside the same
   driver, however, I have my doubts; I can see a driver maintaining a
   linked list that needs to be locked during insertions or deletions,
   which needs lock managment for the driver.  Still, no consideration
   for anything outside the driver need be made, apparently.
 - Vendor drivers and religious issues
   Vendors can supply third party drivers until there are open source
   alternatives, since they have this religious thing where they don't
   want people to see their driver code, which is kind of annoying and
   impedes progress

Disadvantages:

 - Preemption
   Is it still possible to implement a soft realtime kernel that
   responds to interrupts quickly?
 - Performance
   UDI's developers claim that the performance overhead is negligible.
   It's still added work, but it remains to be seen if it's significant
   enough to degrade performance.
 - Religious battles
   People have this religious thing about binary drivers, which is kind
   of annoying and impedes progress
 - Constriction
   This would of course create an abstraction layer that constricts the
   driver developer's ability to do low level complex operations for any
   portable binary driver

A Linux specific binary driver format might be more useful, but wouldn't
potentially allow for sharing the drivers across operating systems

[1] http://projectudi.sourceforge.net/about.php
- --
All content of all messages exchanged herein are left in the
Public Domain, unless otherwise explicitly stated.

    Creative brains are a valuable, limited resource. They shouldn't be
    wasted on re-inventing the wheel when there are so many fascinating
    new problems waiting out there.
                                                 -- Eric Steven Raymond
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCMIK8hDd4aOud5P8RAo+EAJwIF7zEmiyxKzRJJ037TQ2FhYG5bACffTBX
JLhXPcidbQbf18LyTmjHgh0=
=gbyB
-----END PGP SIGNATURE-----

  parent reply	other threads:[~2005-03-10 17:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-10 16:28 binary drivers and development John Richard Moser
2005-03-10 16:48 ` Greg KH
2005-03-10 17:19   ` John Richard Moser
2005-03-10 17:24     ` Greg KH
2005-03-10 17:02 ` Ralf Baechle
2005-03-10 17:25   ` John Richard Moser
2005-03-10 17:24 ` John Richard Moser [this message]
2005-03-10 20:03   ` Diego Calleja
2005-03-10 20:14     ` John Richard Moser
2005-03-10 21:21   ` Lennart Sorensen
2005-03-10 21:42     ` John Richard Moser
2005-03-10 22:31       ` Lee Revell
2005-03-10 21:59   ` Peter Chubb
2005-03-10 22:32     ` John Richard Moser
2005-03-12 15:53       ` Felipe Alfaro Solana
2005-03-13  5:01         ` John Richard Moser
2005-03-13  7:17           ` Mike Galbraith
2005-03-10 22:45   ` Rik van Riel
2005-03-11 10:39     ` Ben Dooks
2005-03-11 16:39       ` Benedikt Spranger
2005-03-11 16:10   ` Jon Smirl
2005-03-11  9:33 ` [TROLL] " Xavier Bestel
  -- strict thread matches above, loose matches on Subject: below --
2005-03-11  4:57 Albert Cahalan
2005-03-19 11:29 ` Eric W. Biederman

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=423082BF.6060007@comcast.net \
    --to=nigelenki@comcast.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