A Sun engineer on Linux
Posted Sep 23, 2004 22:19 UTC (Thu) by
Duncan (guest, #6647)
In reply to:
A Sun engineer on Linux by mmarq
Parent article:
A Sun engineer on Linux
> IMO what Open Source needs [is standards,
> not just Linux,] but a Open Source Driver
> Model from OpenDarwin to BSDs to Linux
> and possibily OpenSolaris,...
Neat idea. To bad it can't work, for both technical and political
reasons.
Technical, because Linux tends toward a monolithic kernel model where even
if there are modules, once they are loaded into the kernel, they
become /part/ of the kernel (thus one of the objections to proprietaryware
modules and why the kernel hackers insist that the kernel is tainted when
a closed source module is loaded, that could do virtually /anything/),
while the BSDs AFAIK tend toward a far more "microkernel" design where the
drivers are /not/ part of the "microkernel" but operate at a lower
privilage level either as "userland" code or just above it, but below the
level of the "microkernel" code. (Vastly simplifying reality, a very
general statement of the relative benefits of each model would be that
microkernels are less complex and easier to stabilize, since the amount of
code operating with maximum privs is relatively small, while monolithic
kernels tend to be higher performing, and are either less stable or take
far more effort to make stable. In reality, however, neither model tends
to be used in pure form in modern operating systems, thus my use of the
qualifier "tend toward" in the above description.)
Political, for the same reason Linux and the GPL haven't merged with the
BSDs already, at the macro/legal level, and there are multiple
distributions and multiple BSD variants at the micro/interpersonal level.
At the macro level, there's a split between the philosophies of those that
believe code isn't truly free unless it is free to be used even in
proprietaryware, and those who simply aren't even interested in
contributing if others can take the contributed code and close it up,
without returning improvements to the community from which the code
originated, while at the same time publicly distributing the binaries (as
Apple has done with the many proprietary improvements it made to the BSD
base it used for OSX). Keep in mind that many developers are contributing
in their free time, while others work for companies and can contribute
code /only/ under the condition that it can't be made proprietary and
potentially used by a company competitor. For the former, it may simply
not be worth the bother if others can take the code without
paying /something/ for it (in either cash for use or code improvements in
return), while for the latter, they wouldn't even have the /choice/ of
contributing if it could be made proprietary. This contrasts, as I said,
with those who wish that their code be as widely used as possible, even
becoming a standard, even where that means use in proprietaryware (as MS
used BSD code to implement its original TCP/IP stack, as well as the
previous Apple/OSX example). These camps will never be fully reconciled,
but fortunately, that's fine, because there's room for both in open
source.
Likewise, at the micro level, interpersonal politics is part of the reason
we have four BSD variants (Open, Net, Free, Dragonfly) and all the Linux
distributions. Were there not serious personal disagreements, quite apart
from philosophical ones, we'd have fewer splits there, as well. However,
again, open source has proven that it's a "big tent", big enough to let
folks that can't get along with each other work in different portions of
the community, while remaining /in/ the community.
Duncan
(
Log in to post comments)