[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-discuss
Subject:    Re: [osol-discuss] OpenSolaris cancelled,
From:       "Richard L. Hamilton" <rlhamil () smart ! net>
Date:       2010-09-09 14:53:35
Message-ID: 863061124.401284069246351.JavaMail.Twebapp () sf-app1
[Download RAW message or body]

[...]
> Perhaps some sort of side project can be started to
> look at a generic
> way of making device driver sources from Linux and
> the BSDs work with
> the OpenSolaris kernel (as separate Solaris modules
> so there are no
> clashes between the CDDL and GPL/BSD licenses.)  Most
> of the devices are
> block or character mode, so perhaps some sort of
> compatibility framework
> could be built?  Linux certainly has a lot more
> supported drivers for
> hardware than opensolaris, if there was a way to port
> a majority of
> those drivers, we wouldn't have to rely on Oracle for
> them, nor would we
> have to rewrite them all from scratch if there was
> some compatibility
> layer.  Granted not everything would work immediately
> out of the box,
> but for stuff like USB and PCI devices, as long as it
> doesn't depend on
> too many things inside the Linux or BSD kernel, it
> might work.  (And
> those callbacks could be implemented in another
> layer.)  I recall about
> 5-10 years ago the idea of a captive driver on Linux
> where you could use
> windows NT drivers under Linux, for example.

Solaris x86 AFAIK could use _some_ Windows
drivers with a similar approach, in particular network drivers.
This has been done, and might be ok for desktops, but might not
be reliable enough for anything else.  See
http://en.wikipedia.org/wiki/Network_Driver_Interface_Specification
and then
http://hub.opensolaris.org/bin/view/Community+Group+laptop/ndis

I think that people had decent luck with it for 32-bit OS and drivers
for laptop WiFi support, but there was some problem with register
usage convention differences or something like that making it
unlikely to get 64-bit OS+drivers to work.

Beyond that, there was a broader framework, the Uniform Driver Interface,
intended to work cross-platform on a variety of Unix-like OSs.  It never
really caught on, perhaps in part because the Linux/GPL fanboys
thought it would lead to either others using their work or to a
proliferation of portable but closed drivers.  See
http://wiki.osdev.org/Uniform_Driver_Interface

I _think_ that at one time there was some experimental code
to implement UDI for Solaris, but I'm having a tough time finding
the latest version of the reference implementation, let alone
whether the UDI code for Solaris was ever released.

Anyway, I doubt there are enough drivers available for UDI to be
worth it, and likely no new ones.

Even aside from getting people to realize that _everyone_ benefits
from portable drivers (except maybe the ideological purity fanatics),
there's also the chicken-or-egg problem, like with alternative fuels:
who is going to build the cars (drivers) unless the fuel stations (OSs)
are there, but who is going to provide high quality performant OS
support unless the drivers are there?

And of course no portable interface will be a perfect match for
any system, so that there will be _some_ performance hit, or
inability to take advantage of advanced OS or hardware features, or
something like that.

If it were easy (technically, but even more getting the cooperation), we'd
probably be using something like that already.
-- 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic