Why I Don't Use BSD

• # bsd • 1750 words • 9m to read

In idle Youtube watching, I came across a video where DistroTube talks about why he doesn't use a BSD operating system. So I figure, why not write about why I don't use a BSD system either?

For reference, I have two computers that I use, one of which runs Artix, the other of which runs Arch. However, on the machine that now is running Arch, I did for some time trial both OpenBSD and DragonFlyBSD. I ran each system for maybe a month or two, perhaps longer, before finally switching back to Arch. So what was my experience?

The Appeal of OpenBSD

I initially trialled OpenBSD, which had two main appeals to me. Firstly, I wanted to try a Unix that wasn't Linux. As we all know, Linux dominates the Unix scene now, in fact, Unix basically is Linux nowadays, and I wanted to try something that was different, but obviously not too different (i.e. still POSIX). Secondly, OpenBSD obviously has a strong focus on security, and features such as pledge and unveil, alongside the other security features relating to ROP, etc. interested me. Now, I'm not a big security guy, so likely a lot of the OpenBSD security features are in Linux as well, and frankly I didn't understand much of it, but this was a system that brought a lot of these kinds of things to my attention, which I appreciated.

Thirdly, I found out that OpenBSD used very little RAM. A minimal installation of OpenBSD for me used 17MB of RAM. This was really impressive, and frankly, I marvelled that there was a modern-day system that respected memory that much. A minimal Linux for me is already 200 MB. So the fact that OpenBSD was so little gave me great respect for the project.

The Reality of OpenBSD

The reality was different. And this was unfortunate.

Firstly, the installation was a bit of a nightmare. I did figure it out in the end, but for a purportedly easy installation, I found myself struggling with how to get the sets. I did figure it out in the end, but I wish there were more guidance for the installation process. Arch for instance is "difficult" to install, but in reality is dead easy, because of the extensive documentation on the Arch Wiki.

Another thing that disappointed me was encrypted partitions. In the Arch installer, setting up an encrypted partition is easy. The reason why, is that almost everybody would want an encrypted partition. Aside from making data recovery harder (not impossible) if the drive fails, it is almost always a net positive. But for OpenBSD, the first time I installed I don't think I even saw a way to set up encryption. And when I researched it, it was a fairly involved process as compared to the normal install, and took a decent amount of time. An OS as concerned with security as OpenBSD should really be making it easier to install with an encrypted drive.

Once it was installed though, the documentation on OpenBSD was impressive. Now, it was not god-tier, and certainly not all it was hyped up to be, but it was very good. With a little bit of searching around in the manpages, I managed to get WiFi set up, which I believe required dynamically loading the iwm driver, but I didn't need to consult the internet at all for the process. Just a bit of patience, and the manpages was sufficient.

I set up X, and dwm (with the pledge call added in, I just needed to change the config.mk) and set about using the system. And at first, it was all lovely! But then, I began to see the flaws.

With a window manager as minimal as dwm, anything can appear fast. But then, I wanted to use Firefox, to, well, browse the web for solutions if need be. And Firefox, my, oh my, was slow on OpenBSD.

If you've ever opened Adobe Acrobat, or Visual Studio, or any of the other bloated proprietary software that is commonplace on Windows, you will be familar with the click-wait cycle. You click the icon to open Visual Studio - then you wait a few seconds, and a splash screen appears. Then you wait another thirty seconds, and it loads up the "Open Solution" page. Then you click on a solution, and you wait another minute or two to load your code. And watch whilst it individually syntax-highlights each keyword, which apparently is so slow a process you can see it happening in real time.

Firefox was like that. It took a small eternity to open, a slightly smaller eternity to open a new tab, an eternity again to navigate to the webpage... it was horrible. Chromium wasn't much better. The problem was with OpenBSD. Something between the browser and the OS wasn't working nicely.

I did notice, dwm was at times even slow. Now, by slow, I mean, fraction of a second, but a noticeable fraction of a second. The whole OS was actually just a bit sluggish compared to Linux. And when you use it everyday, that latency, even if small, makes a world of difference.

Another problem came up a bit later. I don't know why, but OpenBSD had a tendency to just... crash on me. I never could figure out what would cause it. But a panic would happen, and then I would end up losing what I was working on. Sometimes nvim would save it, or it would be saved somehow. But it wasn't reliable. Sometimes the data would be corrupted when I booted up, or fsck would delete it whilst booting. And so, I gave up on the operating system. It could be the best OS in the world, but if it isn't stable, and able to stay on without panicking out of the blue, then I can't really use it as my OS of choice. For reference, I have had plenty of issues on Linux, but most of them are higher level: say, problems with the package manager, or problems with X needing some love. But I've never had an operating system panic on Linux. I think the panics came from uvm if I recall correctly. To be honest, I don't really know what uvm is - I believe it has to do with virtual memory, but I'm not that sure. Either way, it really shouldn't be panicking.

So I gave up. I went back to Linux for a short while, and then decided to give DragonFlyBSD a try. Why DragonFlyBSD, not FreeBSD, NetBSD, etc.? Well, because dragonflies are cool.

Oh, and, another thing that annoyed me about OpenBSD: date does not have a -d flag. That actually managed to break several of my scripts, which was a bit annoying. Guess it is my fault though for relying on GNU functionality. Also, the font on the TTY was ugly. Not a major deal, and if I really cared I could have recompiled the kernel. But it was just a bit of a shame.

The Appeal of DragonFlyBSD

Honestly, dragonflies. HAMMER is cool I guess, but I'm not really a filesystems nerd. My opinion of a filesystem is, if it keeps out my way, then I like it. I of course prefer ext4 to FFS which OpenBSD uses, and btrfs seems cool but last I checked does not properly support encrypted partitions (I'm probably wrong on that). But really, I also thought, maybe it'll be faster than OpenBSD, as speed was one of the things they advertise on their website, and I really just wanted something that rivalled the speed of Linux. I saw on some Phoronix benchmarks that DragonFlyBSD was the closest of the BSDs to Linux-like performance, and thought, yeah, why not?

The Reality of DragonFlyBSD

From what I remember, the installation process was much more pleasant than OpenBSD's, and it even supported LUKS for encryption! Not bad at all. I do appreciate having a familiar tool to work with.

Getting everything (dwm, etc.) set up, I realised something. The baseline RAM usage of DragonFlyBSD was around 1.2GB. Now, the system I had this on only has 8 GB, and of course, browsers are RAM-hungry beasts, so this sort of worried me. Why is it using this much RAM? To do just about nothing at all?

Secondly, whilst it certainly was faster than OpenBSD, it was less consistently fast. It occasionally had moments where it would just freeze, and I would have to wait for a second or two for it to fix itself. I don't know why it happened, but it did, and it was very annoying. Again, things like this never happen on Linux.

Thirdly, the filesystem did in fact get in the way. When you delete files on HAMMER, it doesn't properly delete them. It does what I believe btrfs also does, which is keep them around in case you want to role back to a previous snapshot. This is annoying. There are ways to get around this using commands for the filesystem, but I couldn't make heads or tails of them, because frankly I didn't want to. I don't care to learn how to use a filesystem. I want it to just work.

Also, ports are a hassle. Not too bad, but compared to just running pacman -Syu, or apt install, they are a bit hassle.

Eventually, I gave up. I returned to Linux, Arch Linux (btw), and frankly am happier for the fact. Linux never causes me problems like this; it, for the most part, just works, and does not get in my way. OpenBSD and DragonFlyBSD could not seem to provide that. And so, I am back safe at home, on Linux where I belong.

Maybe one day in the future I will try FreeBSD, or GhostBSD, or return to OpenBSD or DragonFlyBSD. Don't get me wrong, I really commend the projects. OpenBSD especially has done a lot not just for their OS, but for the entire Unix world. In fact, even Windows uses some OpenBSD software I do believe. And I do enjoy the idea of using it. But the actual day-to-day problems make it more difficult. I think, if OpenBSD wouldn't have panicked so much, I could have even put up with the lack of speed. I may well return to them one day. But for now, Linux does the job, and does it well, and that is all I really want from an operating system.