At the start of the year I said I was going to try using Guix and OpenBSD for my personal / hobby computing in 2020. Didn't take me long to stop using Guix - but for reasons around the politics of GNU projects rather than technical things. I still think Guix is quite nice. It's not an easy thing to use daily but the whole approach is very interesting. I'm back to Fedora on any Linux machines.
I held out using OpenBSD a bit longer as I wanted something that's not Linux, and is interesting to use in hobby time. In the past couple of months I have ended up switching to the even less-used NetBSD instead. But why?
- NetBSD has better support for ARM boards (or at least the ones I have). These are the computers I have lying around that I can play around with but not worry if I make them unusable now and then. OpenBSD will run on many ARM chips, but e.g. on a Pi you'll need a serial console, whereas the excellent NetBSD ARM images from Jared McNeil can give you HDMI out and a graphical desktop that works.
- NetBSD seems quite a bit faster to me. OpenBSD has a goal of security and quality code, and partly because of the choices made in this regard I/O is slower and it generally feels less nimble on the machines I am using. The ARM boards and $5 VPS aren't the fastest things out there, so every little helps.
- My aim is to eventually play around a bit deeper in the code of the OS. Because that'll be on these ARM boards, and I don't want to use my limited remaining brain cells remembering the differences between multiple BSDs, NetBSD is the best single choice.
- It has better (more complete) virtualization options than OpenBSD, especially the new NVMM.
- I'm hanging around on SDF quite a bit these days, which is a mostly NetBSD environment, and it generally seems to work okay.
As a side benefit, and partly because NetBSD is less used, the mailing lists are practically devoid of the trolling, arguments, and brusk responses seen on the OpenBSD side. Generally the OpenBSD community is very helpful as long as you ask questions carefully, and avoid 'demanding' that the developers do work on feature X for you. However, the mailing lists don't make it look like the friendliest place.
NetBSD is really not something to use unless you are excited about the prospect of needing to learn a bunch, and dig around to make things work that are taken for granted elsewhere. Some stuff that comes up often:
- The binary packages on mirrors are incomplete, and you'll be trying different mirrors or compiling from pkgsrc. This isn't as bad as it seems, except time-wise, as pkgsrc works nicely at least for the things I've been using.
- WiFi, graphics cards etc. can be expected to be less broadly supported than elsewhere. For example, the DRM/KMS port from Linux (to support GPUs) is behind other BSDs. It's at Linux 4.4 currently, so newer Intel, AMD, and NVIDIA cards don't work well.
- The wiki / guide content is somewhat out of date. There's a lot of it, which is nice, but the people working on it are a small group.
I'm running the primary services for my lab / hobby domain on NetBSD 9.0 now, and it works nicely. It's not too much effort to do so as I'm only using a couple of things that aren't in the base OS, and binary packages for them have been up-to-date.
I have NetBSD on a Pi3B and another ARM SBC to mess around with. I also have an install on a spare small drive in my main Ryzen desktop. That install is really pretty impractical as a desktop OS for the things I often want to do, but it's fun to play around in on the weekend every now and again. It's also a fast machine to compile packages on.
If you have a hobby that overlaps with the day job it can be interesting and refreshing to use different stuff just for fun. Things don't always have to have a practical purpose. Let's see if I'm still on Fedora and NetBSD at the end of the year.
This post is day 9 of my #100DaysToOffload challenge.
If you want to get involved, you can get more info from https://100daystooffload.com.