ARC: FreeBSD vs. Linux

Last update: 20 February 2008.

How does FreeBSD differ from Linux?

"Linux" is technically the name of an OS kernel. FreeBSD has a different kernel -- the FreeBSD kernel.

Various Linux distributions include different lineups of default basic userland software and OS infrastructure, but they tend to have a lot of the core stuff in common (in particular the GNU toolset). FreeBSD shares a few tools in common with most Linux systems (GCC, for instance), but many of the basic userland and other core system tools are developed in tandem with the FreeBSD kernel, and are specific to FreeBSD.

Both Linux distributions and FreeBSD aspire (to varying degrees and in different ways) to a generalized Unix system design. FreeBSD is very much a descendant of the BSD Unix design (obviously) while Linux distributions tend more toward the SysV family of Unix. Because there is sort of a common Platonic ideal of Unix, however, they do tend to share a lot in common. Also, because Linux systems are not strictly descended from either the BSD Unix family or the SysV Unix family of operating systems, they differ from both approaches, and borrow a bit from both. Linux systems borrow a lot of code from the various BSD Unix systems, too, since three of the four major modern branches of BSD Unix are released under the BSD license.

In my experience:

  1. FreeBSD tends to be more stable than Linux distributions. I'm sure some of this is attributable to the fact that the core OS is all developed as part of a greater whole, with exceptions for only a few of the core tools (like GCC). If those tools could be replaced with FreeBSD specific equivalents, or at least non-GNU equivalents, this might even improve further over Linux distributions, which are put together from collections of available software developed with no significant cooperation (other than the GNU toolset itself, whose development isn't even coordinated with Linux kernel development).
  2. FreeBSD tends to be easier to work with "under the hood" than Linux distributions. This is in large part due to the more unified design process of FreeBSD, but also seems to be a result of some other forces at work, since there are characteristics of FreeBSD system configuration and design that do not seem related to the fact it's more of a coordinated effort, but still contribute to greater ease of use.
  3. Most Linux distributions default to bash as the shell, while FreeBSD's default is (t)csh. This is a difference that occasionally catches new immigrants to FreeBSD from the Linux world off-guard. It's not a bad thing, though. For one thing, there are fewer dependencies for tcsh than for bash, so it's less likely to break if some underlying piece of software gets a bad update.
  4. Linux distributions, because they're basically just a kernel and a bunch of disparate pieces of software collected into a running whole, tend to include everything outside the kernel in a single software management system (such as APT or YUM). FreeBSD differentiates between a "core" or "base" system and the ports system, which is the general software management system equivalent to the software management systems of Linux distributions. Because of this, your choice of software management system interface isn't so much a part of the identity of the OS you are using with FreeBSD, whereas with a Linux-based OS (aka "distribution"), your OS is differentiated from others of the same family by default install configuration, distribution project management of software archives, and the software management system.
  5. The FreeBSD community tends to be more knowledgeable and professional, and less crazy in its approach to OS advocacy, than the communities for most Linux distributions. There are exceptions, of course.
  6. FreeBSD documentation is some of the best OS documentation in the world. One of the reasons I made the switch from Linux-based systems to FreeBSD is that I noticed I was actually using official FreeBSD documentation for working with my Linux-based systems as often as I was using the official documentation that came with, or from, my Linux distribution. The distro-specific documentation wasn't as good as the FreeBSD-specific documentation, and the distro-agnostic Linux-based system documentation wasn't as coherent as similar FreeBSD documentation -- even though the distro-agnostic documentation and FreeBSD's equivalent OS-nonspecific documentation was almost identical in terms of the sort of software it covered. Once in a while I miss the slightly greater manpage coverage of Debian, but for the most part FreeBSD's documentation wins without breaking a sweat.
  7. The single most stable software management system in the Linux world that I've ever used was Debian's APT. It's slightly less stable than the FreeBSD ports system, and the software tends to be a step behind FreeBSD's in terms of version numbers available, too.

For some additional background about FreeBSD, check the About FreeBSD page.