BSD Overview, and Resources - eviltoast

Salutations, and welcome to the BSD community of programming.dev!

The BSDs are a family of operating systems that derive from the original Berkeley Software Distribution. They are UNIX like, therefore much of the same software that is on Linux, can be found on the BSDs (including the shell).

The three main BSDs that are currently being maintained are FreeBSD, NetBSD, and OpenBSD.

FreeBSD:

https://www.freebsd.org/

FreeBSD is what I think is the general-purpose BSD. FreeBSD comes with many useful tools out of the box (particularly for SysAdmins), along with a very handy dandy manual (handbook). The handbook details the install process, along with many tools that come out of the box. The tools include: Clang (C++ compiler), Bhyve (hypervisor), Jails (docker alternative), networking tools, ETC. A more comprehensive list can be found here: https://www.freebsd.org/applications/.

OpenBSD:

https://www.openbsd.org/

The same team that curated OpenSSH, presents OpenBSD. The folks behind OpenBSD are far more security-minded. Their methods of security are described here: https://www.openbsd.org/security.html. Due to increased security, users may notice a drop in performance compared with Linux, or the other BSDs. However, it may be worth the benefit within more secure environments. OpenBSD also puts a focus on cryptography, along with portability, correctness, and standardization.

NetBSD:

https://www.netbsd.org/

I consider NetBSD to be the hobbyist BSD. You can run this thing on anything from a yellowed-out Dreamcast from a century ago, to your ordinary x86_64 supercomputer. It is also fast. Therefore, your average home toaster has a chance at browsing the internet in the modern day. Just make sure to bring a fire extinguisher, before you enable JavaScript ;). Besides being a toaster’s lord and savior, it is also easy to modify NetBSD’s source code (You can also do it with the other three). NetBSD has been used as a teaching source for operating system development. It may be a smaller project than the other two, but I believe it is worth having a look at.

All three of these BSDs have their own personality, and I believe getting to know them better will make you a better programmer. They have a lot to offer on the table, and I hope all of you who stumble upon this page will give them a fighting chance! :)