What are your thoughts on NetBSD?
I know you asked the boneless peach man, but I still wanted to chime in because I too am an autist who dabbled in the BSD world. I will defer to AmpleApricots, where applicable because he's the more knowledgeable between the two of us.
FreeBSD, for all intents and purposes, is the
only BSD project that the "advanced" Linux user should care about if they're sincerely considering dipping their toes into a proper Unix-like operating system. For better or worse, it is the BSD project that receives the most "mainstream" attention and it is the most widely supported of the BSD operating systems by third party software developers. While FreeBSD (and Net/Open as well) has a reputation for being more amenable to servers than desktop/workstation usage, I found that FreeBSD really wasn't
that much of a chore to set up. Certainly not any more of a chore to get off the ground and running than a typical Arch/Gentoo/Debian (minimal netinstall) release is.
Around February of 2022, I began tinkering around with FreeBSD and gave brief recaps of my experiences
here and
here (among other posts that I'm too lazy to look for). Xbox 360 (but not Xbox One) and DualShock4 controller support was added in FreeBSD 13, and it worked pretty damn well (though not before some quick edits to text files here and there). I was even able to make good use of said controllers with Citra and MelonDS and the emulators worked at full speed with no hiccups whatsoever. GPU support was more or less "instant" once I installed Xorg along with the relevant drivers. Linux binary compatibility works flawlessly too, as the module's built off of RHEL 9. I could go on, but I think you get my point.
If you've ever enjoyed installing and getting a usable Arch/Gentoo/Debian minimal netinstall system off the ground, FreeBSD will certainly make you feel comfortable. The real difficulties with FreeBSD are far more subtle and have to do with deep-seated design philosophy differences between the Linux world and the BSD world. FreeBSD's default shells are limited to tcsh
or sh (and no, it's not the Almquist shell); other shells are available via the ports collection (or pkgng nowadays), but that's not the only difference. Your home directory is located in the /usr hierarchy, as are all software packages that you install via pkgng or ports collection too. It's not too noticeable on a fresh install with only Xorg, a web browser, and 1-2 additional applications. But try using FreeBSD as your daily driver and then edit a text file you think is in /etc only to realise that it's in /usr/etc instead. You'll be groaning in frustration pretty quickly.
***
NetBSD is
not worth anyone's time, unless you have a specific use case for an obscure architecture that only the NetBSD project seems to support. NetBSD has a singular focus:
portability at all costs. Portability does
not, however, translate into usability. The NetBSD ports collection is half the size of the FreeBSD ports collection and the binary package management tools are horrendously outdated and poorly documented (last time I tried messing with NetBSD was in 2016; take this with a grain of salt). This often means that you'll be resorting to compiling software from source on NetBSD... a lot. Software compile times are nowhere near as ludicrous as they were 10 or even 20 years ago because we have hex-core CPUs bog standard on everything nowadays, but I ain't waiting a couple of hours to compile all the Xorg bits I need, let alone Firefox.
NetBSD's obscurity also unfortunately means that getting meaningful assistance is a much more uphill endeavour. I believe that using the mailing lists is still the most efficient way to get assistance, though I could be mistaken about that. If you want to experiment with NetBSD, it's more or less an endeavour in "how much of this bullshit can I tolerate before I get fed up and install FreeBSD like I should have 4 hours ago?" Use it if you want, but I wouldn't bother.
***
OpenBSD isn't immediately "approachable" like FreeBSD is, but it rewards any seasoned Unix veteran exponential returns if they're willing to learn. OpenBSD's primary focus revolves around three things: providing best-in-class security and cryptography, code correctness and frequent audits, and remaining freely available under similar terms to the original Berkley license. I will address each one point by point.
1. Security and cryptography
Theo De Raadt et al take this point so seriously to the point of absurdity. The OpenBSD project is based in Canada, which actually has no provisions on the export of cryptographic software (a limitation in the USA that would make OpenBSD highly contentious to develop). OpenSSH was (and still is) a brainchild of the OpenBSD project, and LibreSSL was created after the first major vulnerability in OpenSSL was discovered, with the express intention of fundamentally redesigning it. The operating system revolves around "principle of least privilege," which means that the default permissions on a user account are highly limited with many redundancies in place to make sure that no retard can bork their system unintentionally. Sudo was scrapped in favour of another rewrite (doas) due to perceived vulnerabilities while making the relevant config file much easier to edit than
/etc/sudoers
. On the downside, you can't use more than two cores at a time because hyperthreading is apparently a security hazard which unfortunately limits OpenBSD dramatically in terms of usability. I can't comment much about their cryptography features because I never used them, but it must be reiterated: they had to be based in Canada for the sake of being able to distribute cryptographic software; they gotta be doing something, right?
2. Code correctness and frequent audits
The OpenBSD project regularly conducts frequent code audits to fix bugs, patch vulnerabilities/exploits quickly, among other such things. This is something I personally adore about the project, because they host all sorts of hackathons (and maybe a few bug bounties? I don't know for sure about that) to incentivise the community to assist developers in this endeavour. LibreSSL wasn't created because OpenSSL had one critical exploit; it's because OpenSSL was a bloated mess that needed to be cut down to size. CVE-2022-3602 and CVE-2022-3786 were two additional critical bugs similar to the one in 2014, and these ones were reported and fixed like... three weeks ago (further vindicating LibreSSL).
3. Remaining freely distributable under similar terms to the original Berkley copyright
In non-ludicrous English, this means "remaining under a lax license." While the FreeBSD project is willing to use GPL code in their base system to whatever degree, the OpenBSD project fundamentally objects to the inclusion of copyleft/GPL code (with the exception for GCC, readline, and a couple of other system libraries). Don't think they have an autistic crusade against GPL though, because they also reject any and all proprietary software and drivers (though with an exception for binary firmware).
Honourable mention: OpenBSD's documentation is also excellent. Most of it is available via man pages.
man afterboot 8
is an absolute lifesaver on any fresh OpenBSD installation.