This is part of an ongoing discussion we have at work. After many moons, we came to the following conclusions...

FreeBSD is best for a server enviornment, PROVIDED that you have mostly stock hardware. FreeBSD lags a little behind the competition with cutting edge driver support. (Of course, some people say that this is one of the causes of the stability.) People love the ports collection.

NetBSD is best for when you have that toaster you just NEED Unix to run on. But, seriously, if you have a VAX it's pretty much either VMS, NetBSD, or Ultrix on those. (I'd take VMS) It's super-ultra-mega portable.

OpenBSD has pretty anal security, and they are part of an ongoing proactive security audit, which is good++. They also have a ports collection.

So, remember, choose your BSD wisely. There is no one right answer.
To add to VAXGeeks writeup, here are some additional points that your should bear in mind:

  • If you are looking at trying out BSD on your home PC, FreeBSD is the one to choose.
  • FreeBSD has one of the best ports (application) collection of all the 'free' Unix OSes located at http://www.freebsd.org
  • FreeBSD has better documentation than Net/OpenBSD and Linux for beginners. Linux has a whole series of unrelated HOW-TO documents on a variety of topics which is fine for intermediate to advanced users, but FreeBSD has detailed step by step instructions that lead you through the install process and common tasks once you've installed it the base OS. This is better for beginners.
  • FreeBSD (and possibly all the *BSDs) have Linux compatability. Therefore if you haven't been running FreeBSD because you thought it would be incompatible with Linux applications, fear not, BSD has total Linux compatibility.
  • Based on the CERT mailings, it would appear that BSD have less security issues than Linux - and certainly, OpenBSD kicks the butt of Linux in terms of security.
  • You must know Unix/BSD before you even think of installing OpenBSD. OpenBSD is designed to be ultra secure and you really need to know what you are doing before you try and use it.

You might also consider Mac OS X and its open source BSD foundation, Darwin. Mac OS X is mostly proprietary, but everything up to its BSD layer is available for free download at http://publicsource.apple.com/ - it can be made to compile on PowerPC and Intel x86, and John Carmack has succeeded in porting X Windows to it.

I've not had a chance to use it myself, but from all accounts it will mostly be of interest to BSD fans who want to experiment.

Just a quick comment in favor of NetBSD (my favorite flavor):

That ultra-portability that VAXGeek described has some wonderful technical side-effects. It has led to a very clean and well thought-out design, and some very clean code. Due to the decisions made by the design team, there is very little in the src/arch branch of the NetBSD source tree, where all the platform-dependant code is. This makes it very consistent across platforms and remarkably stable, even on newer ports.

NetBSD strikes me as being more anal about code cleanliness, which is a good thing. For instance, NetBSD requires that all code in the main source tree compile with the -Wall and -Werror flags set. This turns on all compile-time warnings, and makes all warnings fatal errors. It cuts down on the most common classes of errors, which result from poor variable scoping, poor variable typing, and many stupid typos that result in syntactically valid but semantically ridiculous code.

NetBSD renamed the ports tree the package tree, usually located in /usr/pkgtree. It works precisely the same, as it came from the same root code, and generally contains the same things as the OpenBSD version.

NetBSD is fully binary compatible with Linux.

Log in or register to write something here or to contact authors.