(Note: I'm currently investigating a "cheapest to maintain" solution, and by this I mean man-hours, not upfront costs, so I could choose Windows Server just as well - not that I would do that - for both my personal server and the servers of a bunch of NGOs that I help with sysadmin stuff for free... and was wondering if something like FreeBSD was better than Ubuntu Server LTS ...I want something that I could just "drop it there and leave it running for 5 years", but at the same time there will be some packages - like webserver and related that I will want to keep to the latest stable versions, like upgrading every few months or so; and yes, I do care about security, so being of to date on all security fixes and at the same time not having to keep fixing an recompiling stuff...)
Disclaimer: I am an OpenBSD fanboy because it opened my eyes. OpenBSD's base system already solves 90% of my problems with exactly one, perfectly maintained and documented solution. You want a firewall? Choose between pf, netfilter or something else on FreeBSD. On OpenBSD the answer is "use pf" (which is btw by far the best paket filter I every experienced). The port system just works, is up-to-date and has good default configurations (and I never missed a package). Maintenance is very easy. It is not as easy as apt-get update && upgrade but the release upgrade (every 6 months) never broke anything on my systems (and takes just 10 minutes). Besides that, there is nearly nothing to do. Here is the bug/update list of the current release (5 months old): http://openbsd.org/errata51.html The last thing I want to mention now is the consistency in all tools. For network configuration there is ifconfig which can just handle everything (e.g. on linux you have to use special tools for wlan). You have great manual pages. The manual pages are real manual pages with introductions to the systems, various high level topics down to device nodes etc. They are completely up-to-date and the best source for all informations.
I think that sums it up. Why should I use Linux?
BSD definitely can't do everything that Linux can do, but it can do most things, normally the most important things, and it can do some interesting things that Linux cannot.
For programs that only are available on Linux, BSD kernels can run Linux applications.
It's a little painful using Linux after you become accustomed to BSD. Linux is really fast, but it's too random, sometimes even chaotic, and it seems disorganized by comparison.
But for people who are used to Linux there seems no reason to switch. Linux has lots of resources behind it to keep up with new hardware. BSD will never be as quick to produce drivers.