The Hurd

Marcus Brinkmann Marcus.Brinkmann at ruhr-uni-bochum.de
Mon Mar 18 23:54:28 UTC 2002


On Mon, Mar 18, 2002 at 07:38:57PM +0100, Eneko Lacunza wrote:
> 	Don't you see that the GNU system has been greatly helped by Linux?
> Linux helped it with more testing, more popularity, more developers...

This remains to be seen.  The FSF almost was diminished to irrelevance by
the growth rate of "Linux" (actually GNU/Linux), and althoughmany people
started to use the system (and some contributed back to it), people did not
talk about freedom anymore.  Which is really most important, because our
freedom is threatened and constantly under heavy attack, to the point that
it is in some and might become in all parts of the world illegal to write
certain free software (that violates software patents).

> 	And what? This is (maybe) a sad thing, but I think that Linux has done
> an excelent work.

I think he could have done a much better job.  Don't get me wrong, this is
not to diminish the job Linux developers have done.  But maybe this gives
you some ideas:  Linux has poor code reusage.  Heck, they can't even reuse
their own code from one kernel version to the next (even between minor
versions).  This would be all dandy if it would only be their problem, but
it effects other projects just as well, like the C library, and all kernel
specific software that relies on the exposed interfaces.  This is actually a
two-fold problem.  On the one hand, external interfaces change in an
incompatible way, and on the other hand, internal interfaces change
dramatically.  And this without proper documentation of the changes, of the
internals, and the lack of revision control (now bitkeeper has appeared,
which is not free software, and I don't even know if it allows me to track
changes in the kernel).  This is particularly bad because Linux is _the_
free software repository for hardware drivers, there are drivers for every
exotic device.  But there is an utter lack of a clean driver framework,
particularly for non-(IDE, SCSI, NIC) drivers.  The interfaces improve from
version to version, so there is hope, but it remains to be seen.

This actually hurts projects like OSKit, or the old gnumach, which try to
encapsulate and reuse Linux drivers.  It is hard enough to do for a specific
version, but updating the drivers is almost impossible without also updating
a lot of the driver framework (which had to be added to encapsulate the
drivers in the first place).

The other issue is more at the root of the overall design as a UNIX clone:
It can discourage development of code.  Just look at the KGI/GGI saga. 
I have not participated in GGI, but from the outside look at it it seems
that the fact that Linus ruled out inclusion of graphic drivers into the
kernel has hurt them a lot.  The fact that the kernel interfaces changes
makes it almost impossible to seperate extensions to it externally from the
mainstream kernel.  The little experiences I have with building and adding
kernel modules to Linux have been "interesting".

Also, Linus could have done a better job of encouraging only free software,
for example by disallowing non-free binary drivers.  Instead concurrenting
with projects like GGI, he could have tried to encourage them, were it not
for the problematic monolithical design of the kernel itself.  My gut
feeling is that for the Linux kernel, squeezing out the last bit of
performance might be considered more important by its developers than adding
compatibility or abstraction layers (this is my gut feeling, I have not
personally tried to get a compatibility or isolation fix in the kernel. 
Joerg reported yesterday about a rejected backward copatible patch.)

Things like free software, user freedom, cooperation, code reuse, and
compatibility are very important for the Hurd system.  And I think we are
doing quite well in this regard.  These paradigms might come at a cost,
which might be the (lack of) immediate availability of a feature, or a
temporary performance penalty.  If we succeed with the other goals, I
think we can comfortably look into the future anyway.

> I would want to do lots of things, but unfortunately a day only has 24
> hours. Currently I'm more interested in promoting and defending Free
> Software, that developing new innovative system designs. I think this
> also can help the Hurd and other innovations. 8)

Of course.  I hope I didn't bore you, and maybe I was able to show how
these two goals sometimes can come together.  I certainly hope that although
probably off topic, it was at least an interesting read to some people here.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd at debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus at gnu.org
Marcus.Brinkmann at ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



More information about the Discussion mailing list