Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Sep 1996 15:01:10 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        darrend@novell.com (Darren Davis)
Cc:        terry@lambert.org, chat@freebsd.org
Subject:   Re: FreeBSD vs. Linux 96 (my impressions)  - Reply
Message-ID:  <199609032201.PAA05164@phaeton.artisoft.com>
In-Reply-To: <s22c47a5.046@novell.com> from "Darren Davis" at Sep 3, 96 03:06:09 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Just one question.
> 
> What is this OpenBSD thing?  I have never heard of the term.

OpenBSD the source code is the NetBSD sources base + fixes from
various places, including FreeBSD.

OpenBSD the political entity is somewhat different.

OpenBSD's "claim to fame" is that it tries to divorce itself from
the "good ol' boy network" inherent in the core team organization
of the NetBSD and FreeBSD.  A lot of people see the current NetBSD
and FreeBSD organizations as imposing a "tunneling barrier energy"
which you have to overcome to get to the next higher stable state.

I have to take responsibility for the organization template copied
from the "FreeBSD + patchkit" days.  The template resulted from
the inherent requirement for a central serialization authority
for patches because the tools I built were simply not up to
arbitrating concurrent developement.  This may, in fact, have
been a key contributor to the NetBSD/386BSD split -- I know that
there were at least two people who later became initial members of
the NetBSD core team who tried to "roll their own" patches in
patchkit format, only to have them formally rejected.  Not because
they sucked, but because they disrupted the serialization
mechanism (this didn't stop the people involved from assuming
that the reason for the rejection was a personal attack, however).


OpenBSD's main failing is that it does not impose process controls
to do the coherency control job that the "good ol' boy network"
does for FreeBSD and NetBSD.  It is currently metastable because
it does not have a significantly larger number of people than are
in the NetBSD or FreeBSD core teams actually hacking on or checking
in code.

To go back to the electron tunnelling analogy, OpenBSD has less
barrier to moving forward, but at the same time it would probably
take significantly less energy to get it rolling down hill as
easily as up hill.  The result would be a throwing on of the
brakes, either unidirectionally, in the form of increased process
complexity, or bidirectionally, in the form of a tiered management
structure (aka a "core team").

Political structures are interesting because their behaviour is more
easily subject to rigorous mathematical analysis than, for instance,
an individual's behaviour.  The "path of least resistance" for "throwing
on the brakes" is a tiered management structure ("some pigs more equal
than others"); I suspect that an increase in process complexity would
be fought just as bitterly by the initial OpenBSD comitters as it
was fought in NetBSD (leading to the formation of OpenBSD in the
first place), or as bitterly as the current argument about the
buildability of "-current" taking place on the other list right now.
Given that, and some mathematical modelling that I won't go into
because it is too hard to represent in ASCII, I predict that OpenBSD
will probably develop its own core team, unless it takes exceptional
care.  It might take that care anyway as a method of product
differentiation, just as FreeBSD and NetBSD have arrived at an
accommodation on their "product differentiation".


Currently, however, OpenBSD could be described as "lacking brakes",
with both the good and bad consequences thereof.


I supposed the ideal system would have unidirectional brakes, to
inhibit rolling back down hill, but to avoid posing a barrier to
forward movement.  So far, none of the BSD camps has arrived at
a political design which implements this.  If you project the
potential well for tunnelling into a three dimensional saddle curve,
with Linux on one end (control imbued in an individual), OpenBSD
on the other end (with a flat curve asymtotically approaching the
tangent), then NetBSD and FreeBSD are somewhere in the middle.
This implies that the only reason process changes don't take
place is (social) inertia along the Z axis.

Novell/USG (where you an I both worked) had the exact same problem,
projected along the inverted Z axis.  At USL, the process *was* the
product, and the tree because inertially fixed by process limitations
instead of becoming inertially fixed by change limitations inherent
in the number of reasonably managable participants, defined as
sizeof(core team).  At USL, it was the limit on the number of people
allowed to write the source tree, and the inherent organizational
limitationon the the ability to make changes which were larger in
scope than one component branch of a checked out source tree.  You
couldn't make sweeping changes in the UNIX source base because it
was impossible to coordinate them over all of the affected platforms
because of the way their source tree management process was arranged.
This applied equally to sweeping changes for the better as to sweeping
changes for the worse -- bidirectional brakes.

Ed Lane described this process as what he called "AI", or "Artificial
Importance" -- useless limitations on process output caused by useless
limitations on process complexity.


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199609032201.PAA05164>