4 ms·
First of all, yes they all are viable as a backend OS. While I don't disagree with the other answers I think they are an oversimplification. All BSDs are gener
by tete 3y ago
First of all, yes they all are viable as a backend OS.
While I don't disagree with the other answers I think they are an oversimplification. All BSDs are general purpose operating systems. All of them do care about security, and invest tons of time into making their OS secure, all of them care about performance, yes also OpenBSD and they invest a ton of time into security. All of them even care for simplicity.
To underline this. There's two more BSDs to think of, DragonFly, which though tiny in terms of developer surpassed at various points in time the "big" FreeBSD in things like performance, driver support (including stuff like Intel DRM, where OpenBSD was faster than FreeBSD as well at times), but also things like file system encryption. I also think that all BSDs sometimes have drivers that Linux doesn't yet have, or doesn't yet have in a stable version.
The other BSD worth mentioning might be macOS (and iOS), which share huge amounts of code. Take bhyve which over the xhyve project allows Docker to run as it does on macOS, take a look at the version output of tools like grep, you'll find it outputs its the FreeBSD version, even things like dtrace and various other tech is constantly ported over.
And then take a look at Android, which took quite a bunch of stuff from the various BSDs, among the a bunch of things from NetBSD.
NetBSD was the operating system to use with early Xen. NetBSD also has pkgsrc. which is a highly portable ports tree supporting tons of operating systems and architectures. On Minix, DragonFly, Windows subsystem for Unix, various hobby projects, some Linux distributions, various illumous and many other it has been or is the default way to install third party software.
OpenBSD shines through simplicity. It's so nice to come to an OS where instead of fiddling with wpa_supplicant, NetworkManager, etc. where your Networks wifi just works with a three line straight forward configuration. So many things that one has to fiddle even with bigger Linux distributions just work as they should if you put OpenBSD on, even when you didn't even yet set up any graphical stuff.
The BSDs have a thing where stuff works and doesn't break. It often feels more practical. Take packages. FreeBSD's ports tree is nothing any operating system even remotely comes close to. It's huge, it's flexible, you can just say "use Postgres version 14, and this and that PostGIS version" without stuff breaking, without third party repos, you can say "install nginx with these and these patches, so it feels like their pro version", and you can say "I don't want pulseaudio, give me sndio, pipewire or OSS for all packages instead".
To me these packages also have the right amount of customization. Something I tend to dislike about Debian/Ubuntu based systems is the whole splitting up into so many tiny packages, all with patches, that not too rarely break stuff, that typically mean that the project cannot help you. FreeBSD has some tiny pataches for portability reasons and has some integrations, like putting a config to use on your periodics (which are kind of pre-defined configurable scripts for crom). So you can just set a flag in the options so your letsencrypt cert will be update, or some reporting, maintenance, DB vaccuum, backup etc. happens.
They feel way more developed to just work than most other OSs, which tend to feel more attention grabby. And while that might be bad for marketing, the lack of grabbing your attention all the time and things just working is exactly what I want from an OS.
I think the BSDs are very different OSs that basically only denote heritage in their names. It's not like with Linux distributions where "that distro is more made for X". Yes, there is hard blockers obviously. Like, if you want to use something only available on another BSD then obviously, that's what you should use, but at the same time, if that's not the case the situation isn't so clear cut. In the Linux world people used to say "and then I have that windows system for gaming", and now we have SteamOS, but also FreeBSD used to (still does?) run certain games faster, and hey, Playstation's OS was based on FreeBSD. Does that mean that regular FreeBSD is the best gaming experience? Probably not, but that doesn't matter if your favorite games just work as well on FreeBSD, or you play in your browser or not at all.
I think it's a bit with programming languages. Most of them seem to use some C-style syntax, and there is dominating paradigms, and they might all run on LLVM, but they also can be highly different, and just because C, C++, Rust, etc. might run the compiler, and just because of that benchmark, your project might still be more or less secure or performant, than the piece of software written in that other language, maybe simply because of that one person sitting down for a week and improving that. And it's the same with the BSDs.
NetBSD is a great example, some guy decided to write a new packet filter (NPF), some guy decided to use an among the BSDs pretty unique approach to create an VMM (NVMM).
And didn't OpenBSD surpass pretty much every other open source OS by getting their stuff to work on Apple Silicon?
So in short: It's really not that black and white. And like with programming languages, comparisons when you haven't seriously used it for a year or two barely make much sense. And then one dev being annoyed enough and having the time can change everything. See how what is now called containers originated on the BSDs and Solaris. Weaknesses turning into strengths happens so frequently. It just helps to be able to base off other people's work and findings and start out on a clean slate.
And then see small things, like the OpenBSD community that, OS that people call "for routers only" now having compared to the project size vocal gaming community, with no WINE support and probably currently giving the best out of the box experience among the BSDs on ThinkPads.