Skip to content

FreeBSD vs. Linux: Summary

Several features of FreeBSD have contributed to me preferring FreeBSD over Linux. Each on its own may not be a big deal, but together they create an experience I enjoy. (I still make use of Linux. It is excellent too.)

Rather than write one large article, I've broken my thoughts into separate articles that you can find in the navigation menu under the "FreeBSD vs. Linux" header, or just use the links below. Or, if you just want the TL;DR, the points below hit the highlights.

Reasons with Details

  • SR-IOV is a First Class Feature - Hardware virtualization is more apparent in FreeBSD. There are dedicated tools for setup, and those tools are well documented and part of the OS.
  • ZFS Boot Environments. Every time you update FreeBSD, it snapshots the whole OS. In Linux it's common to be able to boot to a previous kernel, but in FreeBSD you can revert the entire environment.
  • Shutdown & Boot Are Fast. Several minutes difference between FreeBSD and Debian.
  • The FreeBSD boot process is cohesive. Linux usually has two or three independent steps during boot that each have their own configuration and are not consistent between distributions. You'll likely be scouring the internet to figure out how to setup simple things like a SOL console.
  • SES-2 Utility. If a disk fails, you want to quickly know the physical location of the device, ideally without shutting down the whole system. FreeBSD has simple support for this in the base OS.
  • FreeBSD is quick to install. Twice as fast as Debian.

More Straightforward Reasons

Other stuff that's cool about FreeBSD, but not enough to warrant a separate article on each:

  • Release Cadence - It's stable like Debian but its quarterly package releases are a bit more recent than what you'll find in Debian.
  • In-system docs (e.g., man pages) are better - Many examples in the points above.
  • Option to compile from source - And aside from doing it manually, advanced tools like synth(1) and poudriere(8) make it quite easy to do.
  • Service management - init(8), rc(8), and service(8) are simpler than systemd. systemd is great, but I prefer the orientation toward "do one thing well". And I like that I can see my service setup in one place: /etc/rc.conf
  • Managing Jails is Simple - Similar to service management, I find it's easier to manage jail(8)s than Docker or LXD/LXC. Those technologies are awesome, but I love having everything in /etc/jails.conf and not tucked away behind a lxc config command.
  • Managing Bhyve VMs is Simple AND PCI passthrough is easier - Tools like vm-bhyve make it dead simple to create and manage VMs. More importantly, passing through a GPU is a trivial one-line config in FreeBSD, but in Linux, you may find yourself adding half a dozen non-obvious kernel parameters to get Linux to leave your GPU alone (which is a prerequisite for passing any PCI through to a VM).
  • Separation of OS & User-Installed Packages - It seems trivial, but having FreeBSD keep its configs in /etc and me keep my configs in /usr/local/etc makes things much more clear over time. Mostly it's clear everything in /usr/local/etc is my fault.
  • ZFS is Recently Flexible - I'm a big fan of Linux's Btrfs because of its flexibility. It's still more flexible than ZFS, but recent versions made that less true by adding the ability to remove vdevs and other things that you might want to do if you're a lowly home user and not a data center admin.
  • I like the logo :-)