FreeBSD vs. Linux: A Matter Of Philosophy

freebsdvslinuxSomething about the saying, “If it ain’t broke, don’t fix it,” just doesn’t jive with tech philosophy (“if it ain’t broke, make it better,” sounds more accurate).  But that is more or less the accepted verdict when talking about the differences between Linux and FreeBSD.  To a certain extent, at least when comparing them against each other, this is true.  It’s difficult to say one is definitely better than the other, so why make the switch?  More important than assigning superlatives is determining which operating system is best suited for each user’s specific requirements, as each OS has its moment (or two) in the spotlight.  We’ll look at how Linux and FreeBSD differ and breakdown the ways in which these differences should be exploited.  History buffs should check out this introduction to Linux, complete with background information and common concepts.

Who’s in Charge?

Who controls the two operating systems isn’t the most important difference for users, but it does say something about their origins.  Let’s start with BSD.  By using the Concurrent Versions System (CVS), BSD allows public access to the source tree and therefore is much less restricted to users (distribution of binary-only source is acceptable, which is alluring for embedded applications).  No one person controls BSD; rather, a team oversees the project.  What’s so cool about this is that developers all over the world make contributions toward improving BSD.  You have “contributors,” who write code, and “committers,” who are granted access to make the actual changes to the source tree.  It feels like one big family.

On the other hand, Linux is controlled by its creator, Linus Torvalds, and is licensed under GPL.  You know what this means: good luck distributing binary-only source.  But I’ve made this sound more significant than it is, because access must be granted whether you work in Linux or BSD.  But once you’re in, you should know what you’re doing: learn tips and tricks for mastering the Linux command line.

UNIX-Sex

As most people like to say, “Linux and BSD are both UNIX-like.”  And both are developed by non-commercial entities.  But whereas BSD is truly UNIX-like (in that it is a derivative of UNIX), Linux is actually the more innovative of the two, being a truly new operating system that is not even technically based on UNIX, but on a UNIX derivative, Minix.  So now you know.

Memory Issues?

Naturally this is dependent on usage, but it’s interesting to not that FreeBSD is often reported as using up to 50% less memory than Linux.  Needless to say, that extra 50% can come in handy, so if you’re facing insufficient memory issues, you might be able to save an extra 500MB with FreeBSD.

Releases

Both Linux and FreeBSD releases are numbered by version with a suffix specifying purpose, i.e. 2.0 or 3.1.  In BSD, the current version is the one being developed, and several times a year this is released as the release version, which in turn becomes the new default.  As bugs are fixed and a final product takes shape, it finally becomes the stable version.

Conversely, Linux operates a development and stable version simultaneously, in which vendors add programs and utilities to certain “releases” (3.0, 3.2.12, etc.).  But if you’re new to Linux don’t feel overwhelmed: it’s easy to learn how to run Linux servers from scratch.

The Bases

Herein lies one of the more considerable differences between Linux and BSD, and of course this is where the debate really begins.  With Linux, you essentially have a base system that is a kernel, and yet the base system doesn’t really exist because the hardware interface is separated from everything else (core tools, shell, etc.).  So the “base system” is more or less useless because it lacks applications; Linux can’t boot without the core tools, and vise versa.

You probably already know what I’m going to say about FreeBSD.  It’s the complete package.  BSD’s base system is truly a “base” because it contains many necessary tools.  Not only are the base and tools packaged together, they can be developed together, too.  For this reason, BSD supporters claim that such a unified configuration is an outright advantage.

BSD and Linux?

Linux is hands-down more widely used than BSD, and subsequently benefits from a more diverse offering of applications.  Thankfully, BSD developed a compatibility package that allows BSD users to run some of these applications, and performance is similar in both operating systems.  It’s a bit more work, of course, to get the apps up and running on BSD, but once installed they actually become easier to upgrade than Linux versions due to the unified configuration discussed above.

Unfortunately for Linux users, Linux does not return the favor; you cannot run BSD applications on Linux.

The Right Choice For You?

I want to reiterate what I said at the beginning: the differences, while notable, are not drastic enough to allow us to settle the argument once and for all.  If you’re an average user and you’re comfortable with either Linux or BSD, it probably isn’t worth your time to change your allegiance.  But whatever operating system you use, fortify your skill set with the fastest, easiest way to learn to program C.

  • As far as reputation goes, BSD puts up a fight.  Granted, none of these claims have been proved definitively, one way or another, but rumor has it:
  • As I already mentioned, BSD offers better performance, although Linux users argue the difference is negligible.
  • BSD’s base is a huge advantage when it comes to reliability.  There’s just no two ways about it.
  • BSD, largely due to the nature of its worldwide contributors, also has a better reputation when it comes to perfection.  The releases are simply more perfected than their Linux counterparts.
  • On the other hand, Linux supports new software much sooner than BSD, and many claim that it supports more software, as well  In either case, Linux is on the front lines on this one.  On a similar note, Linux offers distributions with bleeding edge packaging, which BSD does not.  Again, Linux is quicker to the draw.

The way I see it, the right choice comes down to personal preference, and you’ll probably form your allegiance based on the philosophical differences more than anything else.  It’s time to choose sides.  Which community do you want to be a part of?