Every Linux distribution on this site is an assembly: the kernel from one project, the C library from another, the userland from GNU, the init system from somewhere else, all integrated by the distribution. That is the model, and it is why “which distribution” is a real question.
The BSDs are not built that way. Each is a single project producing a complete operating system — kernel, C library, shell, userland, documentation, all developed together in one source tree by one group of people. There is no such thing as a FreeBSD distribution, because FreeBSD is already the whole thing.
What that changes in practice
| Linux | The BSDs | |
|---|---|---|
| What ships together | Kernel plus a distribution’s choices | Kernel and userland, one tree, one release |
| Documentation | Varies by project and distribution | Man pages are authoritative and maintained |
| Base vs add-ons | Everything is a package | A base system, then packages on top |
| Upgrading the OS | Upgrade all the packages | Upgrade the base system, separately |
| Licence | GPL for the kernel | Permissive BSD or ISC |
The base-versus-packages split is the one that reshapes your habits. On a BSD, the operating system is one thing you upgrade as a unit, and third-party software is a separate concern layered on top. Coming from Linux, where apt upgrade touches both, it takes a while to stop conflating them.
The other immediate difference is that the manual is worth reading. BSD man pages are written as documentation rather than as a reference of last resort, kept current with the code, and it is entirely normal to answer a question by reading one rather than searching the web.
The licence, and why it is not a detail
A company can take BSD code, put it in a product, and release nothing back — legally and by design. FreeBSD publishes a two-clause BSD licence; NetBSD moved to the same and says plainly that Berkeley-style licences “make no requirement that licensees give away the source code, even if they’re selling binaries”; OpenBSD prefers ISC and states outright that no new GPL-licensed software will be considered for its base system, because the GPL’s source-distribution requirement is “typically unacceptable for commercial use”. This is not a loophole others discovered. It is the stated intent, and it is the clearest philosophical difference between the BSDs and Linux — the GPL exists to guarantee that changes come back, and these licences exist to guarantee that nobody has to.
Which of those you prefer is a genuine values question, and it is worth knowing which one you hold before choosing an operating system on other grounds.
FreeBSD: the practical one
The one you are most likely to actually run. Current release is 15.0, from December 2025, with 14.4 still supported alongside it. The support model is worth understanding before you commit: a point release is supported for three months after the next one appears, but from 15 onwards each stable branch is supported for four years from its dot-zero release. Track the branch, not the point release.
Three things FreeBSD is genuinely known for:
- OpenZFS, fully integrated with an entire handbook chapter to itself — root-on-ZFS, boot environments, snapshots and replication as first-class parts of the system rather than something you bolt on.
- Jails, its container mechanism, which predates Linux containers by many years and is still the primary isolation tool.
- bhyve, a hypervisor in the base system since 10.0, running FreeBSD, Linux, OpenBSD and Windows guests — and able to run inside a jail itself.
Software comes from packages or Ports, and these are complementary rather than competing: pkg installs prebuilt binaries and is enough for most people, while Ports builds from source with your own options. The handbook is explicit that pkg handles binary packages only and is not a replacement for the ports tooling.
pkg install nginx # binary package
pkg upgrade
cd /usr/ports/www/nginx && make install clean # from source, with options
freebsd-update fetch install # the base system, separatelyContainers on FreeBSD, honestly
This has changed and is worth stating carefully, because both the optimistic and the dismissive versions circulating are wrong.
What is true: FreeBSD 14.3 and later support OCI-compatible images on amd64 and arm64, there is now an official handbook chapter on OCI containers, and Podman is usable on both architectures. Jails remain the underlying technology — the handbook’s own analogy is that base.txz is roughly a container image and jail.conf is roughly a Containerfile.
What is not true: that you can run Linux container images. FreeBSD’s Linux binary compatibility layer is real and works well for ordinary programs, but the handbook states that features “specific to hardware or related to system management, such as cgroups or namespaces” are not supported, and systemd does not work inside it. Linux containers are built out of exactly those primitives. So: native OCI containers, yes; your existing Docker Hub images, no.
The Linux layer itself needs enabling and a Linux userland underneath it — Rocky, CentOS or a debootstrapped Debian under /compat/linux. Once configured, Linux binaries behave almost exactly like native processes.
OpenBSD: the uncompromising one
Current release is 7.9, from May 2026 — the sixtieth release. Releases have landed reliably around May and October for a very long time, which is a pattern you can plan around even though the project does not publish it as a policy.
OpenBSD is where a great deal of the software you already use comes from. OpenSSH is an OpenBSD project; so are LibreSSL, tmux and doas. If you have ever used any of them on Linux, you were running OpenBSD code.
Its distinguishing work is security by construction rather than by configuration. The two mechanisms worth knowing:
pledge— a program declares what classes of system call it will need from this point on, and the kernel kills it if it tries anything else. A parser that has promised only to read files cannot open a socket, even if you find a bug in it.unveil— the same idea for the filesystem: a program restricts itself to the paths it needs, and the rest of the filesystem ceases to exist as far as it is concerned.
These are not legacy features. The 7.9 release added a new system call to let libc reach restricted files under pledge without weakening it, tightened filesystem scanning in pledged processes, and retired one pledge promise in favour of a more precise combination — which tells you the model is still being refined rather than maintained.
The project’s front page carries a claim it has earned: “Only two remote holes in the default install, in a heck of a long time!” Note the qualifier — that is the default install, which is deliberately tiny. The security comes substantially from what is not there.
OpenBSD also removes things. Recent releases dropped LACP support from one bridging driver in favour of another, removed an old disklabel format, and dropped experimental key types from OpenSSH. If a feature is judged not worth its complexity, it goes, and your configuration is your problem.
NetBSD: the portable one
Current release is 11.0, from July 2026 — the nineteenth major release. Its stated focus has always been portability, and the architecture list is the evidence: amd64 and ARM boards you would expect, alongside MIPS routers, SPARC64, PowerPC including the Wii, and genuinely old hardware such as Amiga, VAX and Alpha.
Its package system, pkgsrc, is unusual in being useful off NetBSD entirely — it runs on other operating systems, including Linux and macOS, which makes it the most portable thing about the most portable BSD.
NetBSD is the one you are least likely to run on a server and the most likely to reach for when you have unusual hardware and want a current, maintained system on it.
What you will miss coming from Linux
- Hardware support, especially recent laptops and Wi-Fi. The FreeBSD Foundation has funded work here — improving Intel wireless drivers and 802.11ac, and adding S0ix sleep support for modern laptops where the operating system rather than the firmware handles suspend — but it is catching up rather than level.
- Vendor software. Docker images, proprietary drivers, commercial agents and anything shipped as a
.debor.rpmassume Linux. - The volume of answers. Fewer people have hit your problem and written about it — offset, genuinely, by better documentation.
- Muscle memory. Different flags, different networking tools, different init,
/etc/rc.confinstead of what you know.
Who should run a BSD
You should try FreeBSD, if you are building a storage or virtualisation server and want ZFS as a designed-in part of the system, or if you want jails and bhyve without assembling them. It is a genuinely excellent server operating system and the coherence between kernel and userland is not a marketing claim — you feel it the first time you read a man page that describes precisely the version you are running.
You should try OpenBSD, if you are building something whose job is to be exposed — a router, a firewall, a bastion host, a small mail or web server — and you value a small attack surface over convenience. It is also, for what it is worth, the most enjoyable system here to read the source of.
You should try NetBSD, if you have hardware nothing else supports and want it running something current.
You should not, on a laptop you depend on, unless you have checked that specific model — Wi-Fi, suspend and graphics are where the disappointment lives, and finding out afterwards is miserable. You should not, if your work involves running Linux containers, because that is the one thing the compatibility layer cannot do. And you should not, if you are choosing a BSD as a reaction against systemd rather than for anything the BSDs actually offer; Void, Slackware and Gentoo will all give you that without leaving the ecosystem your tools were built for.
The cheapest way to find out is a virtual machine and a weekend. Install FreeBSD, read the handbook chapter on jails, and see whether the coherence is worth the friction to you.
Related reading
- What the kernel actually does — the boundary the BSDs draw differently
- Containers explained — namespaces and cgroups, and why jails are not the same
- Void Linux — independent and systemd-free, without leaving Linux
- Slackware — the most BSD-like Linux distribution
- Filesystems — including ZFS, and what it is for
