I run a small IT company and have a network of six servers. Four of them are FreeBSD, and also form the core of the network (for example; the main backup server is FreeBSD, stuff like that).
As to why, that is not easily answered.
First and foremost because using FreeBSD constantly brings me back to my Sun Solaris days. Although I consider the OS to be dead and buried by now (with many "thanks" to Oracle) Solaris is and has always been my favourite Unix environment. Even though I never intend to use it again.
When I first started with FreeBSD (beginning last year) I was immediately hooked on the familiar environment (for example;
sh instead of
bash), the extensive documentation, the specific but still logical approach on certain things (for example; using
csh for the root user) and the OS in general.
Most of all the feeling that I was in total control over my environment (or could be, obviously I wasn't in the beginning).
So that's why I started using it. As for me continuing to use it, well, that sort of boils down to this:
Secure environment
No, I'm not talking about "It's BSD so it's more secure", that comment is in my opinion bogus. I'm talking about all the failsaves in the environment itself. By separating between the base system and the extra software (
/usr/local) the system doesn't only give you full control over your additional installs. It
also protects itself from accidental tampering.
It doesn't matter how many libraries I remove from the list of installed packages; my OS will continue to work and at the very least boot normally.
On Linux this sense of security doesn't really exist, not in the likes of this anyway. Because its basically a kernel with the userland installed on top of it. Ergo: were I to remove
libc on Linux then bye bye to your
getty powered login prompt. On FreeBSD?
Well, lets check, shall we?
Code:
smtp2:/home/peter $ pkg info -x libc
libcheck-0.9.14
libcroco-0.6.8_2
Oh, that's right, I forgot
The required
libc.so.7 is part of the base system, thus secured from tampering through the package management system
Now; don't get me wrong... I'm not claiming this to be a major problem on Linux, but it is one of the reasons why I use FreeBSD (to each his own, guys).
(Native) ZFS support
One of the reasons I adored
Sun Solaris was ZFS. It's simply one of the most brilliant file systems devised. In my humble opinion of course! Enter FreeBSD. Where rumour has it that Sun Microsystems, in their good days, even provided company resources to help the FreeBSD team port the whole thing into the kernel. You can't get more "real" or "native" than that in my opinion: getting help from the guys who developed the file system in the first place!
(Note: I'm well aware that my "fanboyism" towards Solaris may also make me a little biased.)
Excellent documentation
I don't think much needs to be said here, but I just can't help being utterly impressed and sometimes even overwhelmed when looking at the extensive amount of documentation. Especially (no sneer, just a statement): in comparison with your average Linux distribution.
Don't take my word for it; just compare the documentation which comes with the Linux kernel with
chapter 9 of the FreeBSD handbook. Please note: I'm not trying to be overly negative towards Linux here. Nonsense.
But in all fairness: a well laid out chapter in a good manual is hard to compare to
a huge collection of text files. Once again: this doesn't take away any of the credit and hard work which people put into that collection of text files. Its not as if I'm saying that it has no value at all.
But documentation isn't only valued by quantity. Quality, or better put:
accessibility should also be taken into consideration.
(You know: "I downloaded the Linux kernel source, where do I start reading? How do I compile it?")
TRUE "Long Term Support"
The FreeBSD 9.x branch started around December 2012 and the current 9.3 version is said to be EOL'd at December 2016 (see
release overview).
Make no mistake here: this isn't merely four years worth of update support. It's four years of
continuous update support. Meaning so much as: both versions (9.x and 10.x) are being supported and in the end you'll be doing one major update (from 9 to 10) but won't be forced to go from 9 to 11 for example.
The reason I mention this is because of Ubuntu (and partly Debian, but my experience here was with Ubuntu). They also provided LTS versions which worked quite well. However, the problems began when you wanted to upgrade from one LTS to the next.
Because the name "LTS" was just that: a name. In reality you were basically using a specific version, while others continued to be developed. To such extend that it wasn't always unthinkable that by going from one LTS to the other you were actually skipping two major releases. And such upgrade procedures don't always go as smoothly as they should
It becomes worse when you end up manually installing all the individual versions in between because in the end that was the only reliable way to upgrade. Thus losing time and for me time is money (do note that this happened five to six years ago, they may have changed a lot since then).
Reliability over 'fanciness'
Simple example: from
pkg_* to
pkgng. So we have a new package manager, I bet that we have to keep some heavy changes in mind, right? With the new and 'fancy'
pkg system we'll have to relearn all that we knew. Nope!
pkg_info -ix tmux
vs.
pkg info -ix tmux
. This would be different on Linux, I'm sure of it.
Even the revision control shows as much:
svn instead of all the new and fancy tools we currently have. Now, change isn't always bad, but why re-invent the wheel when you have something that works?
I'm personally very attached to that reasoning. So yeah; it needs to be reliable, which is what FreeBSD is. Anything fancy can be grabbed from the ports collection if you so desire.
I'm in control
/usr/src contains the source code of the base OS I'm using. All my servers were customized; both the base OS as well as the kernel. So they don't contain anything I don't want or need, but do contain that which I do want to keep around.
Wireless tools, on my server? Yeah right! (
WITHOUT_WIRELESS). Or what to think about the updater; I use the source so I have no use for that either (
WITHOUT_FREEBSD_UPDATE). Floppy disk, what's that? (
WITHOUT_FLOPPY).
The fun part?
My old 586 computer from years ago (which
does have a 3.5" diskdrive
) would like these things to be present. And it has. I'm in full control here.
Now, the reason I mention this is because many Linux distributions suffer from, what I call, dependency hell. Sometimes you need to have certain libraries and things installed because some programs rely on it. Even if it is kind of silly (like wireless tools on a wired computer).
3-way awesomeness
Now this section is pure bias and fanboyism for you. Or better put: strictly my own opinion. You have been warned
To me FreeBSD is a 3-way SVN system. First of all there is the source code (
/usr/src) from which you can configure and build the base OS. You can check it out using
svn.
Second, just as important, is the documentation. You can also grab that using
svn, and this time it'll end up in
/usr/doc. Also "source code", you'll need a specific set of tools to set it up:
textproc/docproj.
Which brings me to the third part, which can funnily enough also be described as the "third-party software collection". Of course I'm referring to the ports collection here (
/usr/ports). Which can be kept up to date using
portsnap (it's how I do it as well) but essentially you could also easily use
svn once more.
I'm basically saying that one 'simple' RCS system can get you a full operating system with everything you might want from it.
Community
Lets be realistic; in our field of work we often deal with specific people who sometimes also tend to hold strong opinions. But in the 1.5 years that I've been here I hardly noticed anything uncivil or childish. I'm not saying that it doesn't happen at all, but even so...
I do think that if someone enters the forum and rants a little about how "FreeBSD sucks" then he won't be approached with the same amount of disdain as you sometimes see in "other forums".
Sometimes people use strong words out of frustration, and without the intent to insult others. And a "more mature" community usually spots that and deals with it appropriately.
Sure; no big deal (and I'm well aware of the trolls). But that does make a more mature community for you, IMO of course.
So yeah... That's why I use FreeBSD, more or less...
The last reason isn't mentioned but should be obvious enough: also because I actually like using it
PS: Sorry for the small rant