What are the differences between OpenBSD and Linux?
Maybe you have been reading recently about the release of OpenBSD 6.5 and wonder, "What are the differences between Linux and OpenBSD?"
I've also been there at some point in the past and these are my conclusions.
They also apply, to some extent, to other BSDs. However, an important disclaimer applies to this article.
This list is aimed at people who are used to Linux and are curious about OpenBSD. It is written to highlight the most important changes from their perspective, not the absolute most important changes from a technical standpoint.
Please bear with me.
A terminal is a terminal is a terminal
The first thing to realize is that, on the surface, the changes are minimal. Both are UNIX-like. You get a terminal, X windows, Firefox, Libreoffice...
Most free software can be recompiled, though some proprietary software isn't on OpenBSD. Don't expect any visual changes. Indeed, the difference between KDE and GNOME on Linux is bigger than the difference between KDE on Linux and KDE on OpenBSD.
Under the hood, there are some BIG differences with relatively little practical impact:
- BSD licensing vs GNU licensing
- "Whole OS" model where some base packages are treated as first-class citizens with the kernel, VS bare Kernel + everything is 3rd party
- Documentation is considered as important as code VS good luck with Stack Overflow and reading mailing lists
- Whenever a decision has to be made, security and correctness is prioritized VS general-purpose and popularity and efficiency
Do these make little sense to you? I know, it's difficult to fully understand. Your reference is "Windows VS Linux" which are so different on many aspects, like an elephant with a sparrow. To the untrained eye, distinguishing a pigeon with a turtledove may not be so evident.
They're philosophical distinctions which ramifications are not immediately visible. They can't be explained, you need to understand them by usage. That's why the typical recommendation is "just try OpenBSD and see"
Practical differences
So, what are some of the actual, tangible, practical differences?
Not many, really. Some are "features" and some are "undesired" side effects. With every decision there is a trade-off. Let's see some of them.
First of all, OpenBSD is a simpler system. It's very comfortable for sysadmins. All pieces are glued together following the UNIX philosophy, focusing on simplicity. Not sure what this means? Think rc VS systemd. This cannot be understated: many people are attracted to OpenBSD in the first place because it's much more minimal than Linux and even FreeBSD.
OpenBSD also has excellent man pages with practical examples. Use man
. Really.
The base system prefers different default daemons/servers/defaults than Linux.
- apache/nginx: httpd
- postfix/sendmail: opensmtpd
- ntp: openntpd
- bash: ksh
Are these alternatives better or worse? Well, these cover 90% of the use cases, while being robust and simpler to admin. Think: "knowing what we now today about email, how would we write a modern email courier from scratch, without all the old cruft?"
Voilà, OpenSMTPd.
The same goes for the rest, and there are more projects on the way (openssl -> libressl)
Security and system administration
W^X, ipsec, ASLR, kernel relinking, RETGUARD, pledge, unveil, etc.
Do these sound familiar? Most were OpenBSD innovations which trickled down to the rest of the unices
"Does this mean that OpenBSD is more secure than Linux?"
I'd say it's different but equivalent, but OpenBSD's security approach is more robust over time.
System administration and package upgrading is a bit different, but equivalent too, at least on x86. If you use a different arch, you'll need to recompile OpenBSD stuff from time to time.
"But Carlos, you haven't yet told me a single feature which is relevant for my day to day use!"
That's because there is probably none. There are very few things OpenBSD does that Linux does not.
However, what they do, they do better. Is that important for you?
Why philosophical differences matter
Let's jump to some of the not-so-nice ramifications of OpenBSD's philosophy:
Most closed-source Linux software does not work: skype, slack, etc. If that's important for you, use the equivalent web apps, or try FreeBSD, which has a Linux compatibility layer
Some Linux-kernel-specific software does not work either. Namely, docker.
The same for drivers: OpenBSD has excellent drivers, but a smaller number of them. You need to choose your hardware carefully. Hint: choose a Thinkpad
This includes compatibility drivers: modern/3rd party filesystems, for example, are not so well supported.
Because of the focus on security and simplicity, and not on speed or optimizations, software runs a bit slower than on Linux. In my experience (and in some benchmarks) about 10%-20% slower.
Battery life on laptops is also affected. My x230 can run for 5 hours on Linux, 3:30 on OpenBSD. More modern laptops and bigger batteries are a practical solution for most of the people.
So what do I choose?
"Are you telling me that the positives are intangible and the negatives mean a slower system and less software overall?"
At the risk of being technically wrong, but with the goal of empathizing with the Linux user, I'll say yes.
But think about what attracted you to Linux in the first place. It was not a faster computer, more driver availability or more software than Windows. It was probably a sense of freedom, the promise of a more robust, more secure, more private system.
OpenBSD is just the next step on that ladder.
In reality: it means that the intangibles are intangible for you, at this point in time. For other people, these features are what draws them to OpenBSD. For me, the system architecture, philosophy, and administration is 10x better than Linux's.
Let me turn the question around: can you live with these drawbacks if it means you will get a more robust, easier to admin, simpler system?
Now you're thinking: "Maybe Linux is a good tradeoff between freedom, software availability, and newbie friendliness". And, for most people, that can be the case. Hey, I use Linux too. I'm just opening another door for you.
How to try OpenBSD
So what, did I pique your interest? Are you just going to close this browser tab without trying? Go ahead and spin up a VM or install OpenBSD on an old machine and see for yourself.
Life isn't black or white. Maybe OpenBSD can not be your daily OS, but it can be your "travel-laptop OS". Honestly, I know very few people that use OpenBSD as their only system.
That is my case, for example. My daily driver is OSX, not Linux, because I need to use MS Office and other software which is Windows or Mac only for work.
However, when I arrive home, I switch to OpenBSD on my x230 I enjoy using OpenBSD much more than OSX these days.
What are you waiting for? Download OpenBSD and learn what all the fuzz's about!