This may be a little rusty, but from ~2002 to ~2008, I ran my modest home server on NetBSD.
Why did I choose it? Because at the time, I was still living with my parents and needed to get Internet access working via dial-on-demand ISDN-card. The only OS I found a tutorial for how to do that was NetBSD.
What were my impressions? Compared to, say, Debian, NetBSD takes more effort on the side of the user/sysadmin. But once something was in place, it stayed in place. I also liked the clear distinction between the base system and third-party software installed via pkgsrc (which ends up in /usr/pkg). These days, NetBSD has binary packages for the most mainstream architectures, so it less of a problem.
I liked the system - it was simple enough to get a realistic idea of what is going on under the hood, even for a Unix-newbie, but also powerful enough that it did not stop there. Also when a friend of mine got me a Sun SparcStation he had salvaged from his university's garbage pile, NetBSD was the only system I could get to boot on that machine.
Yeah I have, but that happened 1 or 2 decades ago so take it with a grain of salt.
NetBSD's strength is portability (or "ports" not to be confused with FreeBSD's ports collection). So any software written for it, is going to have portability in high regard. If you don't want to live in a monolithic world (example: the PC world went towards x86-32 in 90s, then shifted away to AMD64. ARM/ARM64 are market leader in embedded industry, though MIPS is also still being used) and if you believe in postmarket options (devices shipped with proprietary firmware/OS) though Linux is also strong in that regard. If you like RISC-V existence, software such as NetBSD helps its existence.
Yes, I had hardware on which of recent software basically only NetBSD ran on, or maybe a (broken/outdated) proprietary OS, or "Linux" (but some vague old port, or requiring patches, blahblah). It could be old/ancient hardware, proprietary firmware, obscure hardware. I ran NetBSD for example on Sharp Zaurus, various SGI MIPS (some of which Linux worked less good or not at all on), DEC Alpha (at least a DS10L), and various Sun hardware. The orig. Sharp Zaurus firmware for that specific Zaurus was in Japanese, and the OpenBSD port I couldn't get to work. So I experimented with a lot of alternative firmware, mostly based on Linux.
Back then the package management was slightly different than the other two popular BSDs. They work together a lot, but there's also fractures. For example, FreeBSD and NetBSD don't have unveil, but they do have PF these days. ZFS has been stable on FreeBSD for ages, yet on OpenBSD it isn't available and on NetBSD its only in -CURRENT. Another difference could be amount of binary packages available, or amount of packages/ports (terminology differs per *BSD).
Another choice could be that the BSD license is more attractive than the more strict Linux-related licenses such as GPLv2 or GPLv3.
So yeah, in short, strong focus points of the 3 major BSDs:
Popularity (amount of software, size of community): FreeBSD
Security: OpenBSD
Portability: NetBSD
DragonFly: I've never used this, ever. Can only speculate. I mean, I'm not sure the orig. focus still matters.
I used it in production along together with Linux at a startup as it was a fairly robust Xen guest circa 2008-11. I was having a ton of stability issues with CentOS and Fedora DomU on PV Xen with CentOS 5 as the dom0. For some reason NetBSD ran great as a DomU on the same Dom0 so I went with it. I liked how Postifx was the base MTA, and was able to configure a useful systems with pkgsrc pretty easy.
The strongest case today is probably for embedded use. build.sh is unlike any other OS build system, you can happily do development of a firmware on a Linux or OS X machine for instance and splat out results for a target device.
It's also one of the better choices for learning about OS development because of build.sh, small size, fairly clean codebase etc. And those skills are fairly transportable to Linux (which is a bit of a fire hose and probably not the easiest to start out on) or commercial operating systems like OS X or real time for a career path.
i have played with it on and off for years. when i was helping with an open source project i used it to test portability. what i really liked it about it was the simplicity. its like you can learn a lot about your own home by traveling somewhere else that is different.
i learned a lot about linking and linker flags by working with it since it didnt use the "standard way", it used something simpler.
1. Why did you choose it?
2. What are your impressions?