Subject: Re: We have an image problem...
To: Hubert Feyrer <hubert@feyrer.de>
From: Jesper Louis Andersen <jlouis@mongers.org>
List: netbsd-advocacy
Date: 01/08/2005 01:31:39
Quoting Hubert Feyrer (hubert@feyrer.de):

> Sort of - it needs people that don't (just) talk.

Dispelling NetBSD myths. 
------------------------

It is almost geek folklore that the various 4.4BSD derived operating
systems; FreeBSD, NetBSD, OpenBSD and DragonflyBSD are at continious
war at each other, that their development is split and that they each
work solely on a single pillar. FreeBSD adresses performance, NetBSD
portability and OpenBSD security. DragonflyBSD has yet to find a
base pillar to build the hype upon. 

This document is about dispelling the myth of NetBSD. We wish to 
address the portability myth and show that NetBSD first and foremost is
a UNIX operating system capable of fulfilling many tasks, including
desktop systems, servers, embedded devices, firewalls and routers.

Fact is that NetBSD is portable. Currently the port count 
exceeds 50. To most users, running the i386 port, this would seem to be
a mere curiosity, but as we shall see, this guiding principle leads to
a very flexible system. What makes the myth is the fact that NetBSD 
uses portability as a philosophy for creating an UNIX-like operating
system.

First of all, if the same machine independent code gets to run on 
different architectures, more bugs are weeded. This is because 
different ports use the system differently and thus the critical parts
of the kernel gets exercised in different ways. The net result is 
increased stability, something most users would want. Also, the
many ports guides the principle of clean code and simplicity. The
system has to be composed in a modularised way such that the many 
architectures can utilize each part optimally. This gives readability
to the source code. 

Now the ball is rolling. Given a clean, stable and readable base, one
can quickly change the base, tuning it for performance. This is indeed
what happens in NetBSD. In 2003, Felix von Leitner did a scalability
test of various free UNIX systems. NetBSD-current was amongst the
contenders and did perform quite good, but had regressions with some
tests, which exhibited O(n) behaviours. In 14 days of time, the 
NetBSD developers was able to push many of these O(n) 
behaviours to O(1) behaviours. The reason this could be done so fast
is a testament to the principle of clean, readable code.

Security is also helped by clean, readable code. Programmers make 
fewer errors and so, there are less opportunities for a security hole
to sneak in. NetBSD also supports various proactive approaches to
security: non-executeable stack and heap, sandboxing of processes
with fine granularity for which system calls the process is allowed
to make (systrace), cryptographic disks (cgd), RAID functionality 
(RAIDFrame) and protection against file trojaning (veriexec) to name
a few. 

...

There should probably be much more here. I would love to mention
rcNG, build.sh, pkgsrc, the pkgtools section and the ease of 
administrating more than one server of NetBSD by the use of these tools.

-- 
jlouis