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
- FreeBSD is quick to install. Twice as fast as Debian.
- 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.
- 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.
- 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.
- 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.
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:
- 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.confand not tucked away behind a
- Separation of OS & User-Installed Packages - It seems trivial, but having FreeBSD keep its configs in
/etcand me keep my configs in
/usr/local/etcmakes things much more clear over time. Mostly it's clear everything in
/usr/local/etcis 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 :-)