Why OpenBSD?

If you hadn’t noticed, I daily drive OpenBSD.

But why? What does it do that Linux doesn’t? admittedly, not much. This is a highly subjective opinion post, after all.

I’ll list my reasons in no specific order:

### The Ports System

I really liked the power that portage gave me with gentoo, which is what I came from before moving to OpenBSD. But- frankly, portage was too much of a headache to configure. I want the flexibility of making my own packages, without being burdened by compiling everything. I really liked the power that gentoo’s package system has, but at a certain point my frustration surpasses my fascination level. At the end of the day, all I want is flexibility that isn’t, what feels to me, needlessly complex for my purposes.

While yes, I lack the power of portages’s USE flags on the OpenBSD ports system, I see this as a minor loss. I seldom used this feature.

Also- for those uninitiated, building from the ports system is entirely optional and actually discouraged for average use. You should be using the binaries if you can for reliability and trust reasons. The only reason I keep the ports tree on my system despite not being a core contributor of the base system is that I maintain a few ports myself. https://izder456.neocities.org/ports

### Sound System

I really like how low latency sndiod is. It’s honestly incredible. Configuring it is painless compared to pulse/pipewire on linux. Its all just userland subcommands of sndioctl. Beautifully simple.

I also abuse it’s MIDI capabilities to make my music with LMMS. I would probably be using JACK + Pipewire if on Linux to do the same thing. This is already configured to work as-is out of the box. It works so well that I released a few albums using OpenBSD’s sndio and LMMS: https://izder456.bandcamp.com/

the tozok album was made in a combo of audacity & audiotool in late 2020 on gentoo Linux, I believe

#### But isnt sndio on Linux?

**Good question. It is.**

One of the reasons that I find OpenBSD as good as it is with sndio is that many programs are patched specifically for use with sndiod in the ports tree. Not many programs come unpatched with support for sndiod unfortunately (part of the “standardized” nature of gnu/linux, I guess). If on linux with the desire to use sndiod as my main audio subsystem, I would have to go out of my way to upstream these patches myself, and I only have so much time in my day.

I would love to be able to use linux with a nice simple uncrufted audio system- but for my purposes, that seems like a complete pipedream. I moved to OpenBSD cos it made these (imho) unnecessary trivialities of basic software less of a pain in my ass.

### Wi-Fi

Wi-Fi? Isn’t that supposed to suck on the *BSDs?

Eh, kinda? Honestly, it depends. You need to have a supported chipset. And there is in fact less support for chipsets on the \*BSDs than on Linux. But if you buy hardware with this in mind, OpenBSD’s Wi-Fi capabilities is so damn simplistic, its honestly a far better experience than any other \*NIX I have used.

*(side note, of all of the \*BSDs, at the time of writing, OpenBSD is the only to support Wi-Fi 5)*

Here how you connect to WPA2 Wi-Fi on OpenBSD:

       ifconfig [interface] scan
       ifconfig [interface] nwid [your SSID] wpakey [your network passphrase]
       ifconfig [interface] inet autoconf

but what if i want that to autoconf?

simple. put this in `/etc/hostname.[interface name]` (with `hostname` literally typed):

       join [your 1st SSID] wpakey [your 1st network passphrase]
       join [your 2nd SSID] wpakey [your 2nd network passphrase]
       join [your 3rd SSID] # this has no password, so dont specify
       inet autoconf # set up automatic ipv4 dhcp
       inet6 autoconf # optionally, set up ipv6 dhcp

Whats beautiful is that these are just arguments to the `ifconfig` command. yes, you read that right: the full WPA stack is in `ifconfig`.

Wonderful, right? No tinkering with `wpa_supplicant`, no annoying `NetworkManager` setup if you borked it, no `connmand`, just pure simplicity. Working out of the box (provided you have firmware and chipset support).

### Simplistic system is good.

I don’t need to heavily configure my system if I don’t want to. The things like backlight, volume keys, brightness keys, sound system, suspend/resume on laptops, etc are all fully functional OOTB from my experience. I have yet to have serious issues with this on any system I threw OpenBSD on.

### Documentation.

It is a BSD system. The documentation on this side of the pond is well known to be some of the best ever. 9 times out of 10, my question is answered by a simple man or apropos command. This is very different than how you normally get docs on, say, Linux, where you usually do an online search for whatever you need, then usually find the answer. That sorta annoyance isn’t the case here. Yeah- there is less online resources on OpenBSD outside of say, the FAQ pages, but you have some of the best documentation already available on your system for you for use OFFLINE! Crazy right?

I had to break some “default search engine” habits I’ll admit, but it’s nothing to adjust to if you are already familiar with a *NIX command line. I promise.

### The community.

While much smaller of a community, I have had really good experience with OpenBSD people, both on the mailing lists, and in IRC. Generally really level headed people with a technical and pragmatic mindset, much like myself.

### Stability, as well as design.

Everything that is required for basic functionality is centralized, so you know damn well stability will be a primary focus. I also like how the packages are kept completely separate from the base system, usually on a different partition, so a faulty package, or some bug in some software installed from packages, is easily revertible. Unlike linux where the only truly centralized piece of software is the kernel itself, and basic system software is hung in this tightrope dance of dependencies. Less need for stuff like ZFS or BTRFS, or even declarative package managers like Nix or Guix, for this reason (although OpenBSD supports neither ZFS or BTRFS, and idk about Nix or Guix).

### So what gives?:

I daily drive OpenBSD, and I don’t even use it for the security features! While those features are nice, I really just like it’s simplicity and stable nature. I more prefer the largely politics free, and technically minded userbase. We don’t really concern ourselves with many ways to do things. Things are consistent and predictable, which stubborn me appreciates heavily.

tags: openbsd, linux