William Chivers wrote:

> Hello,
>
> Thank you Theo and your team of developers for OpenBSD.
>
> Some people responding to the "European Orders" thread seem to have lost
> sight of what OpenBSD is and who develops it. I am a bit of a newbie here
> (although I have been using computers in my career since 1972)...


I also add my thanks to the discussion. I do have a fundamental question
to pose however.  It seems that opensource culture for large projects
is driven by featurism and the need to make massive changes incorporated
into frequent releases.  I come from a background of very long-term
stability requirements for APIs and ABIs, performance figures on hardware
over long life-cycles and stringent documentation. I do embedded work
and expect to maintain a system for decades without massive overhaul.
I chose obsd when it was at 3.2 for a project and have maintained it
with backports of fixes, missing functionality and other maintenance
tasks by browsing CVS and doing some original coding; I cannot afford
to change the O/S every six months to accommodate the latest release, and
if I pose questions to a list about some issue with older code, I am
usually ignored, so I am on my own.  This wasn't always the case in
this business and it was expected that an O/S would have major releases
with ongoing simultaneous maintenance of previous releases for decades.
When I chose obsd, it was because of isakmpd and openssl and the bsd
heritage, as a bsd kernel was appropriate for the task (more than an
RTOS and less than the bloat of other *nix); I qualified the performance
for the chosen platform and expected that I could continue for years to
develop and refine the system, but soon discovered that I was outside of
the accepted paradigm.  This is also true for other major projects (even
worse with Asterisk for example, and of course it has forked a number
of times due to various issues including dissatisfaction with the roadmap).
I need an O/S with certain core functionality designed for performance
on mature hardware, and to be expected to upgrade with each release would
only put in peril a stable system, especially when there are no published
performance benchmarks with each release (on all of the supported platforms)
to permit an analysis of the cost-benefit ratio to doing an upgrade.
Adding extra resource-consuming features is another concern, and there is
little data to permit a reasoned analysis on this score as well (for the
majority of large opensource projects).

A modular approach to an O/S would be welcome; say a major version every five
years, with an a la carte menu of features, which are subject to versioning
and upgrade over that period, and maintenance of a stable set of APIs, ABIs
and configuration files over that same period. If some 'feature' package
requires a re-formulation of its APIs, then it could exist in parallel with
previous versions, and be maintained at least over the major release period.
Most importantly, the specific hardware targets of a new release (and their
minimum and optimal resource requirements) should be made clear so that there
is no confusion about the suitability of that release. This approach seems to
be rejected by the majority of contemporary opensource developers on large
projects, but has historically been crucial to any commercial systems
deployments.

I have little reason to expect any shifts in the paradigm here, but only
point out that if when major O/S products are a moving target, their adoption
is far less certain and less widespread.

I will continue to maintain and adapt 3.2 in the absence of reliable performance
data for subsequent releases; I just wish that there was a 'version 3' obsd,
much like there is a 'version 3 MS-Windows', with known performance 
characteristics
and resource requirements.

Michael

Reply via email to