But the biggest differential factor between BSDs and GNU/Linux is the way it is structured.
In Linux, all components are designed to work together, but are completely separate. You’ve got the kernel, init systems, multimedia daemons, userland, bootloader, virtualization and containerization mechanisms, package managers, and so on. They are all separate projects with their own goals and are operated by separate entities. This is why we’ve got different Linux Distributions instead of Operating System. Everyone can take the kernel, start adding components on top of it, and a few minutes later the DistroWatch is even harder to keep up with.
Each BSD on the other hand is designed as single system. All components are created and developed together. Things work together perfectly, because they are designed, coded, tested and released as one.
Michal Sapka
As I’ve mentioned here and there over the past few weeks, I’ve been exploring the world of BSD lately, and after bouncing of FreeBSD I’ve found a very happy home on OpenBSD. Now, this doesn’t mean I’m now a full-time OpenBSD user or anything like that – Linux is the main operating system on my gaming PC, my laptop, and my workstation, and that’s not going to be changing any time soon. However, after installing, exploring, and using OpenBSD on a machine cobbled together from spare and older parts, I can definitely see the appeal.
OpenBSD feels more coherent than a Linux distribution – I use Fedora KDE, if that matters – and the various lower-level systems seem to talk to each other in ways that make more intuitive sense than the individually developed systems in a Linux distribution do. Diving into the command-line interface of a Linux distribution can sometimes feel confusing because different tools use different conventions, because they’re developed by entirely different people and projects, with different ideas about how flags should work, how output should be presented, and so on. On OpenBSD, it seems much easier to carry over something you learn from one tool to the next. I simply feel more secure and knowledgeable, even if it’s still the same idiot me.
The documentation plays a big role here. They’re in one place, written in a consistent style, and reference each other left and right, making it easy to find your way around to other commands or tools you haven’t yet considered using. On Linux, you’re going from one project’s documentation to another project’s documentation, and not only will the style change, the quality will also vary greatly.
That’s not to say everything’s perfect on OpenBSD – it’s clearly a hardened server operating system, and its focus on security will definitely throw up annoying hurdles if you’re just trying to do workstation things. Firefox, for instance, is hobbled by strict security rules through unveil, which makes perfect sense for what OpenBSD is first and foremost trying to be, but if you’re just a regular user like me, it’s annoying that Firefox can only access ~/Downloads, or that it can’t set itself as the default browser so unless you disable that check, Firefox will keep complaining about it. Diving into Firefox and unveil is on my list, though, because you should be able to ‘fix’ this.
Furthermore, while every piece of software, or an equivalent, is pretty much always available for Linux, on OpenBSD it’s more hit and miss, and it seems to take a bit longer for new releases of especially bigger software packages to get updated. I mean, there’s obviously no Steam on OpenBSD, but smaller, less well-known projects generally also don’t support OpenBSD, so you’re either going to be compiling things yourself or hope someone packages it up for OpenBSD.
Then there’s the various vanity things we’ve come to expect from modern Linux distributions, like slick, fully graphical boot and shutdown sequences, detailed graphical tools for managing your packages, graphical firmware and driver managers, and so on. OpenBSD has none of these things, and while that’s no issue for me, I can see how it would throw other people off.
FreeBSD, OpenBSD, NetBSD, and the few others often kind of get lost in all the Linux, Windows, and macOS violence, and to be quite honest – I feel like many people in the BSD community seem mostly okay with that. If you’ve never spent any serious time using any of the BSDs, but you’re interested in operating systems and don’t mind spending a few hours learning how to manipulate your system through CLI tools – dive in. There’s a ton of fun to be had, and things to learn.
For now, I’m continuing my exploration of OpenBSD, and if things keep going as well as they are, I may consider at least switching over the workstation in my office from Fedora KDE to OpenBSD – but I highly doubt it’ll ever make its way to my gaming desktop or my laptop.
In the past there were some scientific research projects that I worked on that required a BSD, so I’ve used it a bit and largely agree with the comments.
Historically I’ve found FreeBSD to offer better hardware support than OpenBSD or NetBSD, but my hardcore BSD colleagues tend to use NetBSD I suppose due to Unix heritage stuff.
Thom, I’m glad to hear you’re doing well with your exploration of OpenBSD, and I’m happy to have helped you get started with it.
I suffer the same little “paper cuts” you do with using it as a desktop OS, which is why I eventually switched back to Void Linux on my main workstation. With that said, I find it to be the perfect fit for older hardware that I’m not in front of for hours at a time (I have it set up on an old laptop as a mobile workstation in my office at work; perks of being the sysadmin!) and of course it makes for an excellent server and network appliance OS. As I mentioned in my guide, I used it for over a year as my main workstation at home and apart from the same struggles with Firefox and unveil, it was perfect for my needs. I learned most of what is in my guide while doing so, and I’m going to give it another go soon with a focus on tackling the unveil issue as my security needs don’t require it.
I’m excited to hear more about your adventures with it!
“Each BSD on the other hand is designed as single system. All components are created and developed together. ”
Maybe if you`re doing nothing, but when you install GUI or just other apps than default install, then it`s the same mix as Linux distros.
” Everyone can take the kernel, start adding components on top of it, and a few minutes later the DistroWatch is even harder to keep up with”
The same can be done with *BSD, just there is not so much interest in forking it, so Distrowatch don`t post them so much
https://www.openbsd.org/faq/pf/example1.html
https://www.openbsd.org/faq/pf/example1.html#pf
https://www.openbsdhandbook.com/services/webserver/basic_webserver/
https://paedubucher.ch/articles/basic-printing-on-openbsd/
Router, firewall, web server, printing documents…all without a single “pkg_add”. That’s an awful lot of “nothing”. That’s just the use cases I know off the top of my head, there’s more to a base install than you seem to realize.
No need to install a GUI when two window managers come installed by default:
https://man.openbsd.org/man1/cwm.1
https://man.openbsd.org/man1/fvwm.1
Neither of which is GNOME or KDE.
In the words of the wise Obi-Wan Kenobi: “That’s…why I’m here.”
Gross. Luckily WindowMaker just a pkg_add away.
I’m using GhostBSD and found it to be good desktop OS – https://ghostbsd.org/