First of all this is a rave, a hyped and biased praise, full of opinionated zealotry, I figured that's just what the internet needed :) On a more serious note, adjectives are relative, so read them in context (Linux is bloated compared to OpenBSD, as OpenBSD is bloated compared to FreeRTOS). I also find that the most violently opposed to BSD, and UNIX in general, are usually the ones who have never seriously tried it. Don't criticize a system you have never used. At any rate I am merely expressing my personal thoughts in a blog, so take my opinions for what they are worth.
It is quite impossible to nominate the numero uno operating system. Simply because the term is too broad. Windows can probably run the most programs, and MacOS might be the prettiest of them all, but that doesn't mean that they are the "best" in all other aspects. No system is perfect, they all have different strengths and weaknesses, and more importantly, their strengths are weaknesses, from a different angle. To quote Obi-Wan Kenobi: "You're going to find that many of the truths we cling to depend greatly on our own point of view." Finding the right OS, is therefore not a question of finding the "perfect" system, but rather, one with strengths that you care about and weaknesses you can live with. I cannot tell you which is your numero uno operating system, but I can tell you about mine.
Well, honestly my favorite is Plan 9, but I do not recommend this to others unless they are certifiable *. Lets face it, sane people "need" a working web browser, office suit, games and thousands of other popular day-to-day apps. So we're talking mainstream operating systems today, and not my usual weird stuff. What's my numero uno (mainstream) OS? OpenBSD. Now, I know what you're thinking, but hear me out. Articles about OpenBSD on the net usually talk about security and/or networking, but I don't care much about that. I'm just an average computer hobbyist who want to boot up a desktop and goof around. And yes, OpenBSD is my numero uno choice in this capacity. I'll get to the "why" in a moment, but first, let's start with a short howto:
Take five minutes out of you busy day; install OpenBSD by hitting Enter a few times.
There isn't much more to say. I mean, surely I don't need to explain how you use Google Chrome, VLC, Battle of Wesnoth, LibreOffice, ect, ect..? Just install OpenBSD and use it, run man afterboot and help if you need to, and be sure to check out the faq. IRC (channel #OpenBSD) and mailing lists are also available, just remember to ask stupid questions politely. You may have questions or objections to my guide though, so let's look at some of them:
No problem. You will find about 50 alternatives in the Ports collection, here is a Youtube video showing how to install the Xfce desktop for instance. The process isn't much more difficult then installing an alternative desktop in a Linux distro (if you must use KDE, go with FreeBSD).
Ah, you are one of the unlucky ones then. You could try to work this out with the developers, they will appreciate your patient support, or you could fork out ~400$ on a second hand ThinkPad.
That could be true. There are ~10,000 packages available in the Ports collection, but if that doesn't meet your requirements, you can give FreeBSD a try. It has ~40,000 packages and can also run Linux and Windows (with wine) binaries.
Well again, I don't know what kind of features you need. FreeBSD has some important industry features lacking in OpenBSD, such as ZFS and jails. Maybe it will meet your requirements.
No, some programs are slow and crashy in OpenBSD. I'll get back to this issue later, but if you are having a lot of problems here, you may want to give FreeBSD a try.
What are you trying to say? That you can't read English? How did you manage to get this far into my article..? Well anyway, it's possible to set up a nice GUI desktop with non-English support in OpenBSD, but you may need a bit of hand-holding from an English speaking friend to get to that point.
Ah, Ok. Look, everyone is entitled to their opinion. For what it's worth, here is mine: OpenBSD is not ugly, it's plain. There is a difference. In my mind, saying that you will not work with a plain looking OS that gives you textual feedback, is a bit like saying, "I'm not working with a secretary that doesn't wear makeup, and who TALKS back to me!" If that is your attitude, I'm not sure I can help you. Might I suggest a Mac perhaps?
Why on Earth would I want to use BSD when Linux has newer, more, and at times, faster, applications? For two reasons: OpenBSD is a lot easier, and second, I love UNIX. BSD users actually read manpages and source code, not because they are Teenage Mutant Ninja Nerds, but because manpages and source code in BSD are readable. Really, if you need to work as a sysadmin, or if you just want to learn how a UNIX system works, going BSD instead of Linux will save you a world of hurt! I have tremendous respect for anyone who can work efficiently in that Brazillian penguin nightmare (the movie, not the country), but a lazy bum like me haven't got a chance!
I am not saying Linux is less capable, on the contrary, it's precisely because Linux tries hard to do everything and please everyone that it's such a bloody mess. More features means more complexity means more headache. OpenBSD has constraints like none other and is therefore elegant and pleasant like none other. It's tempting to give you a long list of examples, but I'm not going to bore you. Just fire up OpenBSD and poke around long enough to get over that first unfamiliarity bump, and you cannot fail to appreciate the beauty (if you want to read about the benefits though, Peter Hansteen wrote a recent blog about it: part 1, part 2 and part 3 - it's all about security and/or networking). Of course, hitting the sweet spot between simplicity and functionality, is a tricky balance. Pros and cons must be weighed carefully, so let's look at some specifics:
Unlike the FreeBSD developers (and everyone else), the OpenBSD team are not overly preoccupied with speed. Specifically, they have been slow to adopt multiprocessing support in the kernel. For an operating system to balance many processes across many cores efficiently, it needs a great deal of sophistication. The OpenBSD devs take a careful and simple approach to the problem. More sophisticated SMP have been introduced step by step, and the OpenBSD kernel is getting there, but they are in no immediate rush to compete with FreeBSD.
Because OpenBSD is developed so carefully, you will see a drop in performance in other areas as well. An obvious example is the many security mitigations throughout the system. Boot time is quite bad for instance, since the kernel is relinked after every reboot. A more shocking example is that the filesystem doesn't do journaling by default. Certain ports, especially big programs like browsers og desktops, might also struggle with performance on OpenBSD (usually due to a combination of OpenBSD being an unsophisticated brute, and the program in question being a misbehaving brat). The developers do not seem to loose any sleep over this.
The small drop in performance is the price for greater simplicity, stability and security. Even if the OpenBSD developers could outperform FreeBSD, they would have to sacrifice that which makes their operating system so great. Don't get me wrong, speed has value too. And if you have a big server company that needs to burn the metal in order to compete, then go with FreeBSD, it rocks under under that kind of pressure. But personally, I don't much care if a program is 1% slower on my OpenBSD box. And though security mitigations have a performance cost, it's by no means prohibitive. OpenBSD can run on a VAX, and it's more then fast enough for my humble needs.
You can do some simple tweaks to improve performance. First, the default login class has conservative limits on how much resources a user is allowed to use. Log in as root and run chpass myuser, then change the Class line to read Class: staff. You can now run around like you own the place. While you're at it, run echo permit persist myuser > /etc/doas.conf, and echo boot > /etc/boot.conf. It will allow your user to run privileged commands with doas command (doas is a simpler sudo), and it will make your system boot immediately without delay. Finally, enable journaling * on your ffs partitions by adding softdep (and optionally noatime to increase battery longevity) to your /etc/fstab, so that it looks something like this:
09bfb74fd6bf43b2.b none swap sw 09bfb74fd6bf43b2.a / ffs rw,noatime,softdep 1 1 09bfb74fd6bf43b2.e /home ffs rw,noatime,softdep,nodev,nosuid 1 2 09bfb74fd6bf43b2.d /usr ffs rw,noatime,softdep,wxallowed,nodev 1 2
Compared to the other BSD's, not to mention Linux, OpenBSD has few packages in its repository. And there are some big candidates missing, such as wine and KDE Plasma. Such limitations are compounded by the fact that OpenBSD, unlike the other BSD's, cannot run Linux binaries, nor do they have common virtualization options, such as Docker/jails or VirtualBox/kvm.
In a related topic, the OpenBSD developers show little regard for industry standards and backward compatibility, which makes it harder to port software and less desirable to do so (who knows if it will run in the next release...). If that wasn't bad enough, the developers are totally adamant in their refusal to allow binary blobs into their kernel, which makes it impossible to run important 3rd party drivers, such as anything from Nvidia.
Although the ports collection is small compared to its competitors, we are still talking about ~10,000 packages. Including over ~50 desktops and ~400 games, and so on. Make no mistake, whatever you need to do with a computer, OpenBSD has your back, all 99% of the way! Speaking of which, you might be able to use OpenBSD's pledge, unveil and vmd, to do your containerizing and virtualization. You won't know until you've tried.
The repo limitations are mainly due to the developers uncompromising stand on quality (the OpenBSD team has strong aversion to anything closed source, not because of moral zealotry, but because you cannot check the quality of proprietary code). There is a very good reason why flash, wine and Oracle Java has never been supported, and why Linux emulation was eventually dropped. If OpenBSD does not run something, then you really shouldn't be running it, regardless of operating system (and yes, tossing binary Nvidia wrenches into the cogs of a running kernel is a bad idea!). I find this idealistic stands useful, through negative reinforcement, OpenBSD teaches me what applications I need to avoid. The lack of strict standards compliance and backward compatibility, is just another way of saying progress.
You do not have to use OpenBSD very long before you notice programs crashing, especially if you use huge bloated stuff like web browsers and desktops. Not only is this annoying, but it might make you seriously question the quality of the operating system itself!
OpenBSD is renowned for being the worlds most secure operating system, it has earned this reputation by actively combating faulty software. You know, faulty software, such as: your web browser and desktop. If an application does anything to threaten the operating system, by violating memory or doing something else it's not supposed to, OpenBSD will summarily kill it on the spot. The crappiness of these programs may be more noticeable in OpenBSD because it runs a tight ship, but the very same problems, though unnoticed, may cause serious security breaches and other issues on operating systems that ignore such misconduct. Don't scream insults at the dead canary, or conversely, gold fish, in the coal mine, take heed!
Both the default window manager and OpenBSD's website look like an eyesore from the 90's! It's like they go out of their way to make it look ugly! Ugh! Seriously, what kind of circus freaks would use this?!?
We've been through this. People who judge a book by its cover are shallow, sir. I for one am glad that the developers spend their time and focus on important matters. I have nothing against sex appeal per se, but I also don't need that sort of thing from my operating system. In any event, it takes 5 minutes to dress up a desktop, so stop whining.
OpenBSD is the "perfect" (mainstream) OS for me, it has strengths like none other in areas that I care about: ease of use and maintenance, quality of code and documentation. And its weaknesses, less and slower software with more crashes, are slight enough that it doesn't really bother me. It is a matter of taste of course, * but I do feel that OpenBSD is the most elegant modern UNIX system today, if, and I stress if, you can live with its limitations. If you can't, loosen the belt buckle a bit, and give FreeBSD a try.
Much like a public forum, there can be no doubt that Linux is a chaotic mess. But that doesn't mean that a free exchange of ideas has no value. Linux is a breeding ground for all kinds of useful programs and technologies. Virtually all of the BSD's Ports collection comes from Linuxland, and many of its developers and users, myself included, come (at times running) from this messy background. Linux is an important reason why BSD is so great, without it BSD would probably be less useful then Plan 9! And few indeed would abandon their Windows machines. Thank you Linux for dragging me away from the clutches of that corporate monster. For showing me a better way, for many years of frivolous fun and serious work, and last but not least, for making my OpenBSD box so darn practical!
When discussing BSD, one usually ends up talking about the big two: FreeBSD and OpenBSD. In comparison NetBSD is near totally anonymous. One would think that this OS is as useless as it's unpopular. One would be wrong. Although not quite as featureful as FreeBSD, and not quite as simple as OpenBSD, NetBSD is still a very capable and beautiful UNIX system. For what it's worth, it would probably have been my numero uno recommendation, if it hadn't been for OpenBSD, and just maybe it will hit your sweet spot in the balance between simplicity and usefulness? The biggest challenge is simply NetBSD's lack of manpower. I have had significantly more issues with network mirrors, drivers and glitchy ports there, then its big brother BSD's. Still, it's nice to root on the under dog. And you can choose to view these problem as an opportunity. The NetBSD community need you, and they are a very friendly and grateful bunch!
Glendy was a genetically engineered, but weirdly lovable, bunny created in the bowels of the Bell laboratories, by the mythological UNIX progenitors of the past millennium. "An argument", it's lead developer lovingly called it, then left it for dead. And die it did, unnoticed and unloved in a cold and uncaring cybervirtualreality. Then one fateful night, a group of outcast "scientists" broke into the dusty tar archive and downloaded the remains. They took the corpse back to their basement, and performed unspeakable programming experiments on it, and they... brought it BACK TO LIFE!!! Well... maybe not "life" exactly, not dead anyway. (cough!)
Now ignorant peasants gather in social medias over a black mug of coffee and grumble over our glorious achievement, muttering hurtful comments like, "outdated C witchcraft", "evil windows without boundaries nor crosses with vile themeing", "blasphemy against UNIX", "mice lovers", "browserless fanatics..." Bah! Fools!!! The world is not ready for our genius, the scientists exclaimed and headed back into the basement from which they came, the concrete walls echoing their hollow voices all through the night as the experiments continued, MWAHAHAHAHAHAHAHAHAH!!!
"You are not expected to understand this." - J. Lions