Carl Hensler wrote:
> Sebastien Roy wrote:
>   
>> Andrew Gallatin wrote:
>>     
>>> Sebastien Roy writes:
>>>  > Cyril Plisko wrote:
>>>  > > I noticed that uts/common/sys/mac.h file is not delivered
>>>  > > by any package into final snv image. Does that mean
>>>  > > that 3rd party has no means to build Nemo-based
>>>  > > ethernet driver outside of the ON consolidation ?
>>>  > > If so is it on purpose ?
>>>  > 
>>>  > This is the case, and it is on purpose.  The Nemo driver interfaces are 
>>>  > consolidation-private for now, and will remain so until the interfaces 
>>>  > stabilize and are formally documented.
>>>
>>> It would be nice if you could at least ship the header files which
>>> match the running kernel so that 3rd parties can distribute source
>>> based drivers.
>>>       
>> You know this already, but hey, this is a mailing list and there's more 
>> than one person reading:  One of the defining attributes of a 
>> Consolidation-Private interface is that changes to the interface can be 
>> managed within that software consolidation without affecting untold 
>> numbers of unknown consumers outside of the consolidation.  Use of these 
>> interface by 3rd parties in this way would have a high likelihood of 
>> resulting in broken software as experienced by end-users.
>>     
>
> Yes, but ...
>
> Is this kind of restriction on access to code consistent with open 
> source development?  The Linux world copes with the fact that a lot of 
> code is a work in progress.  Things evolve, rapidly at first and then 
> more slowly.  Consumers and participants accept the fact that things change.
>
> I understand our traditional rules for Solaris, but are they appropriate 
> for OpenSolaris?
>   

Absolutely!  If a 3rd party produces an unbundled driver, using 
unpublished APIs, and it breaks, whose fault is it?

Under OpenSolaris, we provide a promise that published APIs won't 
break.  We don't *enforce* a rule that vendors use only published APIs, 
but we do try hard to discourage it, and we don't provide any promises 
(except a promise that if you use certain undocumented APIs then it 
*will* break)

Most IHVs aren't happy not having basic levels of stability.  Most of 
them despise this "feature" about Linux.  (And for the most part, Linus 
actively discourages such 3rd parties, because he says "your driver 
should be open source and in the kernel tree, not an unbundled binary".  
To the point that he actively refuses to provide support for any bug 
relating to a driver that he doesn't have source code for, even if the 
bug clearly is with the kernel rather than the driver.)

So, IHVs that don't care, can still use private APIs, but they need to 
grab their own copy of the headers from the kernel source.  And when 
their stuff breaks, they get what they deserve.

Users who are victimized by such IHVs will quickly learn to shun their 
stuff in favor of those who provide drivers that are integrated into 
Nevada, or that use stable public APIs.

If you are such an IHV, see my earlier offer on how to integrate into 
OpenSolaris.  If you really insist on remaining closed source, then yes, 
you're stuck with the GLDv2 for now, or you have to somehow arrange some 
other agreement with Sun, which goes beyond what I'm willing to 
volunteer to help with.

    -- Garrett


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to