Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Feb 2005 03:37:54 -0700
From:      Scott Long <scottl@freebsd.org>
To:        freebsd-current@freebsd.org
Subject:   The case for FreeBSD
Message-ID:  <4205F382.8020404@freebsd.org>

next in thread | raw e-mail | index | archive | help
All,

There has been a lot of recent talk and advocacy for NetBSD 2.0 from the
NetBSD team.  Most recently there were a series of articles posted my
Chritos Zoulas describing why NetBSD is relevant and why it's a better
choice than either FreeBSD or OpenBSD.  While I strongly applaud the
accomplishments of the NetBSD team and happily agree that NetBSD 2.0 is
a strong step forward for them, I take a bit of exception to many of
their claims and much of their criticisms of FreeBSD.

First of all, the last decade has been ripe with cooperation between all
three of the major BSD projects.  Each projects gives and takes from the
others, and there are a number of developers that have commit
privileges to multiple BSD projects.  Drivers, infrastructure,
bug fixes, and features readily flow between projects.  This benefits
everyone, especially since it allows each group to focus on unique
aspects of the system without having to be bogged down with other
aspects.  As the old saying goes, FreeBSD is about performance, NetBSD
is about platform portability, and OpenBSD is about security.

So is that still the case?  The NetBSD advocates are quick to claim that
NetBSD 2.0 now beats FreeBSD in both performance and features.
Fortunately, that just is not true.  There is a very long list of
reasons why FreeBSD is an excellent operating system and an ideal choice
for the enterprise and the desktop.  Briefly:

- Netgraph provides unparalleled flexibility to build complex network
environments.  Netgraph modules are available for packet filtering,
tunneling, redirection, inspection, and injection at any point in the
network stack in a transparent and quick fashion.  Modules can be
stacked together like bricks to meet just about any need.  Developing
custom modules is also easy and very well documented.  There simply is
not anything else in any other OS that is as flexible, easy to use, and
full-featured as netgraph.

- GEOM provides to the storage stack what netgraph provides to the 
network stack.  Transformations like mirroring, striping, spanning, and 
encryption can be configured for any storage object from the filesystem 
on up.  The vinum volume manager was recently converted to use GEOM and 
now provides high-availability and high-reliability redundancy to any 
storage object.  While NetBSD recently imported Vinum, it took the 
older, less stable and less functional version that has since been 
deprecated by its author in FreeBSD in favor of GEOM-Vinum.

- Advanced network features and protocols such as SACK, NFSv4,
SYN-cache/SYN-cookies, compressed TIME_WAIT, and accept filters allow
for fast, secure, and scalable network operations in an ever-increasing
hostile and busy Internet.  Packet filters like IPFW and PF provide
advanced filtering, shaping, and NAT sharing.  FreeBSD continues to run
some of the busiest and most important network sites in the world with
these technologies.

- Outstanding desktop and laptop support is provided by a number of
technologies.  Nvidia develops and distributes native 3D drivers for its
graphics cards for FreeBSD.  A team of FreeBSD developers works closely
with engineers at Intel to provide the best ACPI power management
support available in an open source operating system.  The Gnome and KDE
desktop environments work flawlessly under FreeBSD thanks to another
team of volunteers that work closely with those projects.

- The "Ports" collection provides one-step support for over 11,000 3rd
party application.  Compile-time and run-time dependencies between
applications and libraries are tracked and handled automatically,
eliminating conflicts and incompatibilities.  Pre-compiled binaries are
available for nearly every supported package for quick and easy
installation.  This system continues to be one of the crown jewels of
FreeBSD and has been copied by other OSes due to its overwhelming
popularity.

- Many commercial vendors also support FreeBSD.  Companies like Intel,
AMD, LSI, Adaptec, and 3Ware, just to name a few, provide development
staffing, direct developer resources, and end-user support for many of
their products.  The result is high quality drivers, applications, and
platform support for a wide range of modern hardware.

- Continuous testing and QA is performed by a number of teams within the
FreeBSD community.  Tests are runs every day that range from simple
full-tree compile runs to intensive network, I/O, and computational
stress tests.  Developers receive status emails and bug reports to help
identify, track, and resolve defects.  While no amount of testing is
perfect and bugs do slip through, the testing that exists vastly exceeds
the efforts of most other open source projects and contributes towards
every FreeBSD release being high quality.

NetBSD 2.0 is a significant step forward for NetBSD, but the large 
amount of stagnation cannot be overlooked.  Their claim at high 
portability should have been leveraged years ago to make them the leader 
in embedded OSes.  It's great that NetBSD is committed to supporting 
legacy architectures, but how does the effort to do so benefit modern 
architectures or encourage wider use and more adoption of NetBSD?

And while NetBSD now supports SMP, it uses the same low-efficiency model 
that FreeBSD used previously.  Scalability is significantly limited 
because only one CPU at a time can access kernel services or drive 
hardware devices.  The whole point of the 'SMPng' project for FreeBSD
5.x is to eliminate this problem and provide fine-grained parallelism in
the kernel.  Converting the traditional BSD design to this model is not 
trivial, but the work on this is very much alive, and each FreeBSD 5.x
release is faster, more scalable, and more stable than the previous release.

All of the open source BSD's have a place, whether it's OpenBSD, NetBSD,
or FreeBSD.  Each continues to excel at what they've shown to be good
at, and I expect the sharing and goodwill between them to continue.  And
in that vein, FreeBSD is still the 'silent workhorse' that runs
corporate networks and powers advanced appliances.  However, it's time
to drop the 'silent' part and start loudly advocating it.  FreeBSD is an
outstanding OS, and developers and users should be proud of it.

Scott



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