All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chase Venters <chase.venters@clientec.com>
To: bidulock@openss7.org
Cc: Daniel Phillips <phillips@google.com>,
	Stephen Hemminger <shemminger@osdl.org>,
	Sridhar Samudrala <sri@us.ibm.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC/PATCH 1/2] in-kernel sockets API
Date: Tue, 13 Jun 2006 19:53:19 -0500	[thread overview]
Message-ID: <200606131953.42002.chase.venters@clientec.com> (raw)
In-Reply-To: <20060613183112.B8460@openss7.org>

On Tuesday 13 June 2006 19:30, Brian F. G. Bidulock wrote:

> Yes, and the long list of open source licenses listed on the FSF website
> as incompatible with the GPL.

Conceded, I suppose. The usage of EXPORT_SYMBOL() though tends to be for the 
reason of enabling drivers to offer functionality to the kernel -- not for 
people who want to turn the kernel into applications. (Consider for example 
how netfilter is exposed as GPL. You can build applications [routers] out of 
it, but in that case you're doing a work derived off of Linux, and you should 
be abiding by its GPL licensing terms)

> > Then would offering a 'stable API in disguise' not be a disaster and an
> > irritation to these people? If the kernel doesn't specify that an
> > in-kernel interface is stable, then there is no reason to expect it to
> > be. It might not change, but there won't be too much sympathy for
> > out-of-tree users if it does. The kernel comes with big warnings about
> > the lack of a stable API for a reason.
>
> In fact most core kernel facilities (spin lock, memory caches, character
> and block device interface, even core file system) have had a very stable
> API (way back to early 2.4 kernels).  An in fact most of them are derived
> from some variant or precursor to UNIX.  For example, memory caches are a
> Sun Solaris concept.

I'm not advocating changing the API for no reason / just to piss off out of 
tree developers. I'm just trying to make clear that in these cases, 'stable' 
is just an observation -- not something you can count on.

> It is the lack of an ABI that is most frustrating to these users.

And the presence of an ABI would be _very_ frustrating to core developers. Not 
only would these people suffer, everyone would -- developer time would be 
wasted dealing with cruft, and forward progress would be slowed.

> > > Another thing to consider is that the first step for many organizations
> > > in opening a driver under GPL is to release a proprietary module that
> > > at least first works.
> >
> > If the driver is an old-tech Linux port, then it seems there isn't too
> > much stopping them from doing this today (aside from the fact that some
> > people think proprietary modules are murky anyway). In this case, we
> > don't want a stable API/ABI, because then we leave them with little
> > incentive to open the code.
>
> "old-tech"?  No, these are high-tech drivers supported by commercial RTOS,
> from which Linux stands to benefit.  And, by not allowing these
> organizations to take the first step (generate a workable Linux driver)
> such a policy provides them little incentive to ever move the driver to
> Linux, and cuts them off from opening it.

Perhaps another term may have been more appropriate. What I mean by 'old tech' 
is more 'existing code' -- ie, something you would port. 

And these organizations _are_ afforded the opportunity to take the first step 
-- that's why interfaces critical to drivers are currently EXPORT_SYMBOL().

> I don't think that it is fair to say that an unstable API/ABI, in of
> itself, provides an incentive to open an existing proprietary driver.

Sure it does, depending on your perspective and what you're willing to 
consider. The lack of a stable API/ABI means that if you don't want to have 
to do work tracking the kernel, you should push to have your drivers merged.

> > We're not as perfect as I wish we were. But the lack of stable API (dead
> > horse) is something that is fairly well established and understood. I
> > think most people feel that the cost-benefit analysis, for Linux anyway,
> > strongly favors no stable API.
>
> Well, the lack of a stable ABI is well known.  The API is largely stable
> (but not sacrosanctly so) for the major reason that changing it within a
> large code base is difficult and error prone at best.

Perhaps, but calling it 'stable' in any sense other than idle observation is a 
disaster, because the idea leads to pain and suffering when you do have a 
major reason to change the API.

Thanks,
Chase

  reply	other threads:[~2006-06-14  0:53 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-12 23:56 [RFC/PATCH 1/2] in-kernel sockets API Sridhar Samudrala
2006-06-13  5:07 ` Stephen Hemminger
2006-06-13 11:13   ` Arnaldo Carvalho de Melo
2006-06-13 11:22   ` Brian F. G. Bidulock
2006-06-13 21:12     ` Daniel Phillips
2006-06-13 21:40       ` Brian F. G. Bidulock
2006-06-13 22:00         ` Chase Venters
2006-06-13 22:30           ` Daniel Phillips
2006-06-13 22:47             ` Brian F. G. Bidulock
2006-06-13 23:59               ` H. Peter Anvin
2006-06-13 23:59               ` Chase Venters
2006-06-13 23:59                 ` Chase Venters
2006-06-14  0:31                 ` Brian F. G. Bidulock
2006-06-14  0:53                   ` Chase Venters [this message]
2006-06-14  6:07                     ` Brian F. G. Bidulock
2006-06-14  7:58                       ` Chase Venters
2006-06-14  9:28                         ` Brian F. G. Bidulock
2006-06-14 10:43                       ` Alan Cox
2006-06-14 10:54                         ` Brian F. G. Bidulock
2006-06-14 10:36                     ` Theodore Tso
2006-06-14  6:28             ` David Schwartz
2006-06-13 22:44           ` Brian F. G. Bidulock
2006-06-13 23:42           ` Ben Greear
2006-06-14  0:05             ` Chase Venters
2006-06-14  0:18               ` Brian F. G. Bidulock
2006-06-14  0:29                 ` Chase Venters
2006-06-14  0:36                   ` Brian F. G. Bidulock
2006-06-14  0:19               ` Ben Greear
2006-06-14  0:38                 ` Brian F. G. Bidulock
2006-06-14  0:07           ` H. Peter Anvin
2006-06-14  4:54           ` Brice Goglin
2006-06-14  5:03             ` Dave Jones
2006-06-14  5:28             ` Chris Friesen
2006-06-14 13:30       ` Harald Welte
2006-06-14 14:29         ` Erik Mouw
2006-06-14 15:26           ` Harald Welte
2006-06-14 17:48         ` Daniel Phillips
2006-06-14 18:03           ` Brian F. G. Bidulock
2006-06-14 20:52           ` Sridhar Samudrala
2006-06-13 14:58 ` Jan Engelhardt
2006-06-13 16:27   ` Sridhar Samudrala

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=200606131953.42002.chase.venters@clientec.com \
    --to=chase.venters@clientec.com \
    --cc=bidulock@openss7.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=phillips@google.com \
    --cc=shemminger@osdl.org \
    --cc=sri@us.ibm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.