What is FreeBSD, and how is it different from Linux?
FreeBSD isn't a Linux distribution - it's a separate Unix operating system with its own kernel and base system. Here's what that actually means for you.
31 December 2024 5 min read
If you’ve just provisioned a FreeBSD VPS and you’re used to Linux, the first thing worth clearing up is this: FreeBSD is not a distribution of Linux, and it isn’t built on Linux in any way. It’s a separate, complete operating system with its own history, its own kernel, and its own way of doing things. Some of your instincts will transfer. Some won’t. This post is about which is which.
Where FreeBSD actually comes from
FreeBSD descends directly from the Berkeley Software Distribution (BSD), the Unix variant developed at the University of California, Berkeley from the late 1970s onwards. Linux, by contrast, started from scratch in 1991 as a kernel written by Linus Torvalds, which was then paired with the GNU userland tools (the shell, compilers, core utilities) that Richard Stallman’s GNU Project had been building since 1983 to create a free Unix-like system. That’s why you’ll sometimes see Linux referred to as “GNU/Linux” – the kernel and the userland came from two different projects and were assembled together.
FreeBSD doesn’t work that way. The kernel, the core utilities, the C library, and the base system tools are all developed and released together as one coherent project, by one team, under one release process. There’s no equivalent of “which distro” for FreeBSD – there’s just FreeBSD, and then whatever packages you choose to add on top via pkg.
Kernel, licence, and philosophy
The Linux kernel and the FreeBSD kernel are entirely different codebases with no shared lineage. They’re both Unix-like, and a lot of the same POSIX-standard commands and system calls work on both, but under the bonnet they’re unrelated engineering projects with different design decisions, different device driver models, and different network stacks.
Licensing differs too. Linux is licensed under the GNU General Public License (GPL), which requires that modifications to GPL-covered code be released under the same terms if distributed. FreeBSD uses the BSD licence, a much more permissive licence that lets anyone – including commercial vendors – take FreeBSD code, modify it, and ship it as part of a closed product without having to release their changes. This is a large part of why FreeBSD code turns up inside products you wouldn’t necessarily think of as “running FreeBSD”: it’s used as the base for entire commercial and appliance operating systems, including networking gear and even parts of other major operating systems’ TCP/IP stacks historically.
What FreeBSD is genuinely good at
FreeBSD has a long-standing reputation for stability, predictable performance, and strength in networking and storage – this isn’t marketing, it’s a fair reflection of where the project has focused its engineering effort for decades. A few areas where it’s a genuinely strong choice:
- Network appliances and firewalls. FreeBSD’s network stack is the basis for widely used firewall/router platforms, and its packet filter (
pf) is well regarded for both performance and clarity of configuration. - Storage servers. ZFS is a first-class, native part of FreeBSD (not a bolt-on filesystem), which makes FreeBSD a strong fit for anything where data integrity and snapshotting matter – file servers, backup targets, database hosts.
- Jails. FreeBSD’s lightweight OS-level virtualisation has been part of the base system since the late 1990s and is mature, well documented, and genuinely lightweight – useful if you want to isolate several services on a single VPS without the overhead of full virtual machines.
- A coherent base system. Because the kernel and userland are maintained together, upgrades, documentation, and behaviour tend to be more consistent across the whole system than “kernel plus whatever your distro maintainer packaged”.
When Linux is the more practical default
Honestly, for a lot of workloads Linux remains the easier and more practical choice, and it’s worth saying so plainly:
- Software and driver compatibility. The overwhelming majority of commercial software, deployment tooling, and pre-built Docker images target Linux first. If a vendor only publishes a Linux binary or a Linux-specific installer, you’ll spend time working around that on FreeBSD.
- Community size and troubleshooting. Linux simply has a much larger user base, so Stack Overflow answers, blog posts, and tutorials are far more abundant. FreeBSD’s community is knowledgeable and the official documentation is excellent, but there’s less of it, and less of it is written for beginners.
- Container ecosystems. If your workflow is built around Docker, Kubernetes, or a specific Linux-only container toolchain, FreeBSD jails are a different (and in many ways more lightweight) technology, but they aren’t a drop-in replacement for that tooling.
The practical takeaway
Choose FreeBSD when you want a coherent, well-integrated system with excellent networking and storage fundamentals, or when you specifically want ZFS or jails. Choose Linux when you need the widest possible software compatibility and the largest community to lean on. Neither is “better” in the abstract – they’re different tools shaped by different histories, and the right one depends on what you’re actually running. The rest of this series covers the FreeBSD side in practical detail, starting with the basics of getting a new user set up.