Subject: Re: Please criticize me.
To: David Brownlee <abs@netbsd.org>
From: David Maxwell <david@fundy.ca>
List: netbsd-advocacy
Date: 02/16/2000 11:00:59
On Wed, Feb 16, 2000 at 09:49:56AM +0000, David Brownlee wrote:
> 	Is there likely to be access to a copy online at any point? :)
> 
> 		David/absolute

It probably is on the website - which you need a Usenix membership to
get in to.

I don't have a copy of the original article, except on paper.

Here's the mail I sent. As I said, I haven't seen the paper copy, so
it may have been edited. Re-reading it, I was probably a bit rougher
on OpenBSD than I had really intended to be. Hopefully they edited
that ;-)


Dear Rik,

You followed the 386BSD->FreeBSD history, but not the NetBSD one...

ftp://ftp.netbsd.org/pub/NetBSD/misc/release/NetBSD/NetBSD-0.8

NetBSD 0.8, also a derivitive of 386BSD was announced/released
Apr 19, 1993.

0.9 was released in Aug of 1993. I remember, because I had
just taken a new job, and upgrading an 0.8 box to an 0.9 OS
was one of my first tasks :-)

http://www.netbsd.org/Misc/history.html

The NetBSD and FreeBSD developers (to be) had discussed things
at length before that Apr, and in essence, 'agreed to disagree'.

The FreeBSD folk wanted to focus on the i386 platform, and 
put their full energy into it, the NetBSD folk wanted to continue
in the Unix heritage of portability, and take it further than
it had been before.

The FreeBSD folk are generally happier to accept fixes to 
problems which provide new functionality, while the NetBSD
core team generally prefers to do it 'slow but right'.
This is not to say that FreeBSD does it 'quick and wrong'!
The FreeBSD core, from my experience will be fast to mention
when a feature is not 100% yet. I am referring more to the
'style' of solution.

A historical example:

On an i386 with an ISA bus mastering SCSI controller (like an
Adaptec 1542) the card can only DMA the first 16M of ram.
The ISA bus doesn't have enough address bits for more than
that.

FreeBSD quickly developed 'bounce buffers', which reserved
some space in the first 16M, which the controller could
reach, and then copied the data to the >16M location

During this time, NetBSD machines could not have ISA bus-mastering
controllers and >16M of RAM installed - without using a
'bounce-buffer' patch, which was not included by default.
NetBSD's core team wouldn't sanction an i386 specific
solution. About 2 years later, the NetBSD bus_space
system was introduced, which understands the virtual->
physical address space of all systems, and provides
bounce-buffer support where needed.
(bus_space solves a lot of other problems too)

In 1994/5 timeframe, Theo De Raadt, who had contributed to
NetBSD had an arguement with some of the NetBSD core
team. Not all the details are public. I became aware
of this when Theo posted a message to one of the NetBSD lists
claiming that his messages were being censored, and so he
had put up a web page to express his complaints. I followed
the link to the page, and I was convinced quickly (in large
part by Theo's tone) that Theo was in the wrong.

Theo took the NetBSD 1.1 release at the time, and
relabeled it OpenBSD. I forget whether he immediately jumped
the version to OpenBSD 2.0, or if that came a bit later.
- the BSD license terms allow this kind of thing. As long as
you acknowledge the contributors, you can do what you want 
with the code.

Theo has since then worked to raise the visibility of OpenBSD,
working specifically on security related work. (Part of his
argument with the NetBSD core team was over the speed with
which his changes weren't being integrated into the code -
it was taking longer than he would like.)

Theo has been very enthusiastic about calling NetBSD
an 'Academic research platform' - not worth considering
for production systems. That's just continuing spite
on his part. My usual response is to ask 'If NetBSD
is just an Academic research platform, why was OpenBSD
completely based on it?'

I mention this, because in your article you said you
were told by your 'anonymous informant' that:

"The NetBSD group... is more interested in experimentation
than in having a rock-stable version of BSD..."

That sounds like a small twist on the 'academic research'
line that OpenBSD tries to sell.

So here's the sales pitch :-)

Linux and FreeBSD claim to support multiple platforms.
I looked today at www.freebsd.org and www.linux.org, and
I couldn't find any mention of a non-Intel installation.
I know that Red-Hat and some of the other linux distributions
provide other platforms, I'm just indicating that it's still
not an important thing for them.

OpenBSD has support for 
           alpha    amiga    hp300    i386     mac68k   mvme88k 
           powerpc  pmax     sparc     


This list has grown shorter from previous releases because
they really don't have a large non-Intel installed base
like NetBSD does.

NetBSD has alpha    amiga    arm32    atari    bebox    hp300    
           hpcmips  i386     mac68k   macppc   mvme68k  newsmips 
           next68k  ofppc    pc532    pmax     sh3      sparc    
           sparc64  sun3     vax      x68k 

NetBSD has not been (and probably won't be in the future) about
being 'popular', it has been about doing it 'right'.
The same source tree compiles on all the above platforms. Yes,
there are some platform specific driver files, but they are kept
seperate in the system. The same Lance Ethernet driver runs on
Sun motherboard ethernet ports, ISA cards for PCs, arm32s, sparcs,
suns, amigas... One update to the driver benefits all the platforms.
(Lots of other drivers this is true for also)

Linux and FreeBSD may claim they support multiple platforms,
but the code is not integrated into their source at this time.
As changes are made to Intel Linux, the Alpha Linux and Sparc
Linux and PowerPC Linux(...) development teams must re-work
that code into their 'out of date' copy of the source tree -
they must constantly do code-pullups from the main development
branch. This may change at some date, but only if it becomes
important enough to the Intel developers - since for the most
part it doesn't cause them any extra work now, but after 
changing, it will - it'll be a hard sell.

NetBSD was the first free Unix with USB support, the first to
do binary emulation, and others, but I've babbled on long
enough I suspect. (Hope you're still reading ;-)

NetBSD is not about 'experimentation' or 'research', but it's
NOT about doing the 'popular' thing, or having a pretty
graphical install utility, or having version 0.001 drivers
for some new card. NetBSDers (and core in particular) isn't
into wild self-promotion, but what they have accomplished
deserves a tremendous amount of respect.

Incidentally, part of the 'research' tag comes from having
a very clean source-code base. Things are very well organized,
such that someone who wants to write something new has a
good idea of the structures they're diving into. Many advanced
things (software RAID, 0,1,4,5,10,+) such as RAIDframe were
developed, and integrated into the base code set. IPV6 support
is standard, as of Nov 21. IPSec is already available as
patches, and will be in the base very soon. UVM is amazing too.

Anyway, NetBSD deserved more than 4 lines of mention in
your article.

-- 
David Maxwell, david@vex.net|david@maxwell.net -->
All this stuff in twice the space would only look half as bad!
					      - me